body {
  margin: 0;
  padding: 0;
}
article,
aside,
details,
figcaption,
figure,
main,
footer,
header,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
nav ul,
nav ol {
  list-style: none none;
}
img {
  max-width: 100%;
  height: auto;
  border: 0;
}
video,
embed,
object {
  max-width: 100%;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 0;
}
html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size-adjust: 100%;
}
body {
  color: #333333;
  font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
  line-height: 1.42857143;
  font-size: 1.4rem;
}
p {
  margin-top: 0rem;
  margin-bottom: 1rem;
}
abbr[title] {
  border-bottom: 1px dotted #d1d1d1;
  cursor: help;
}
b,
strong {
  font-weight: 700;
}
em,
i {
  font-style: italic;
}
a,
.alink {
  color: #1979c3;
  text-decoration: none;
}
a:visited,
.alink:visited {
  color: #1979c3;
  text-decoration: none;
}
a:hover,
.alink:hover {
  color: #006bb4;
  text-decoration: underline;
}
a:active,
.alink:active {
  color: #ff5501;
  text-decoration: underline;
}
ul,
ol {
  margin-top: 0rem;
  margin-bottom: 2.5rem;
}
ul > li,
ol > li {
  margin-top: 0rem;
  margin-bottom: 1rem;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
dl {
  margin-bottom: 20px;
  margin-top: 0;
}
dt {
  font-weight: 700;
  margin-bottom: 5px;
  margin-top: 0;
}
dd {
  margin-bottom: 10px;
  margin-top: 0;
  margin-left: 0;
}
table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  max-width: 100%;
}
table th {
  text-align: left;
}
table > tbody > tr > th,
table > tfoot > tr > th,
table > tbody > tr > td,
table > tfoot > tr > td {
  vertical-align: top;
}
table > thead > tr > th,
table > thead > tr > td {
  vertical-align: bottom;
}
table > thead > tr > th,
table > tbody > tr > th,
table > tfoot > tr > th,
table > thead > tr > td,
table > tbody > tr > td,
table > tfoot > tr > td {
  padding: 8px 10px;
}
button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
form {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
address {
  font-style: normal;
}
*:focus {
  box-shadow: none;
  outline: 0;
}
._keyfocus *:focus,
input:not([disabled]):focus,
textarea:not([disabled]):focus,
select:not([disabled]):focus {
  box-shadow: 0 0 3px 1px #68a8e0;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.abs-reset-list {
  margin: 0;
  padding: 0;
  list-style: none none;
}
.abs-reset-list > li {
  margin: 0;
}
.abs-action-link-button,
.abs-action-addto-product {
  border-radius: 3px;
}
.abs-product-options-list dt {
  clear: left;
  float: left;
  margin: 0 10px 5px 0;
}
.abs-product-options-list dt:after {
  content: ': ';
}
.abs-product-options-list dd {
  display: inline-block;
  float: left;
  margin: 0 0 5px;
  word-break: break-all;
}
.abs-button-responsive {
  width: 100%;
}
.abs-reset-image-wrapper {
  height: auto;
  padding: 0 !important;
}
.abs-reset-image-wrapper .product-image-photo {
  position: static;
}
.abs-adaptive-images {
  display: block;
  height: auto;
  max-width: 100%;
}
.abs-adaptive-images-centered,
.product.media .product.photo .photo.image {
  display: block;
  height: auto;
  margin: 0 auto;
  max-width: 100%;
}
.abs-login-block-title {
  font-size: 1.8rem;
  border-bottom: 1px solid #e8e8e8;
  margin-bottom: 15px;
  padding-bottom: 12px;
}
.abs-login-block-title strong {
  font-weight: 500;
}
.abs-block-title,
.abs-account-blocks .block-title {
  margin-bottom: 15px;
}
.abs-block-title > strong,
.abs-account-blocks .block-title > strong {
  font-weight: 300;
  line-height: 1.1;
  font-size: 1.8rem;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
}
.abs-account-blocks .block-title > .action {
  margin-left: 15px;
}
.abs-account-blocks .box-title {
  display: inline-block;
  margin: 0 0 5px;
}
.abs-account-blocks .box-title > span {
  font-weight: 700;
  line-height: 1.1;
  font-size: 1.4rem;
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.abs-account-blocks .box-title > .action {
  font-weight: 400;
  margin-left: 10px;
}
.abs-account-blocks .block-content p:last-child {
  margin-bottom: 0;
}
.abs-account-blocks .block-content .box {
  margin-bottom: 20px;
}
.abs-dropdown-simple {
  display: inline-block;
  position: relative;
}
.abs-dropdown-simple:before,
.abs-dropdown-simple:after {
  content: '';
  display: table;
}
.abs-dropdown-simple:after {
  clear: both;
}
.abs-dropdown-simple .action.toggle {
  cursor: pointer;
  display: inline-block;
  text-decoration: none;
}
.abs-dropdown-simple .action.toggle:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 22px;
  line-height: 22px;
  color: inherit;
  content: '\e607';
  font-family: 'icons-blank-theme';
  margin: 0 0 0 5px;
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-dropdown-simple .action.toggle:hover:after {
  color: inherit;
}
.abs-dropdown-simple .action.toggle:active:after {
  color: inherit;
}
.abs-dropdown-simple .action.toggle.active {
  display: inline-block;
  text-decoration: none;
}
.abs-dropdown-simple .action.toggle.active:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 22px;
  line-height: 22px;
  color: inherit;
  content: '\e618';
  font-family: 'icons-blank-theme';
  margin: 0 0 0 5px;
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-dropdown-simple .action.toggle.active:hover:after {
  color: inherit;
}
.abs-dropdown-simple .action.toggle.active:active:after {
  color: inherit;
}
.abs-dropdown-simple ul.dropdown {
  margin: 0;
  padding: 0;
  list-style: none none;
  background: #ffffff;
  border: 1px solid #bbbbbb;
  margin-top: 4px;
  min-width: 200px;
  z-index: 100;
  box-sizing: border-box;
  display: none;
  position: absolute;
  top: 100%;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);
}
.abs-dropdown-simple ul.dropdown li {
  margin: 0;
  padding: 5px 5px 5px 23px;
}
.abs-dropdown-simple ul.dropdown li:hover {
  background: #e8e8e8;
  cursor: pointer;
}
.abs-dropdown-simple ul.dropdown:before,
.abs-dropdown-simple ul.dropdown:after {
  border-bottom-style: solid;
  content: '';
  display: block;
  height: 0;
  position: absolute;
  width: 0;
}
.abs-dropdown-simple ul.dropdown:before {
  border: 6px solid;
  border-color: transparent transparent #ffffff transparent;
  z-index: 99;
}
.abs-dropdown-simple ul.dropdown:after {
  border: 7px solid;
  border-color: transparent transparent #bbbbbb transparent;
  z-index: 98;
}
.abs-dropdown-simple ul.dropdown:before {
  left: 10px;
  top: -12px;
}
.abs-dropdown-simple ul.dropdown:after {
  left: 9px;
  top: -14px;
}
.abs-dropdown-simple.active {
  overflow: visible;
}
.abs-dropdown-simple.active ul.dropdown {
  display: block;
}
.abs-input-qty,
.table.grouped .control .qty {
  text-align: center;
  width: 47px;
}
.abs-margin-for-blocks-and-widgets {
  margin-bottom: 40px;
}
.abs-remove-button-for-blocks {
  display: inline-block;
  text-decoration: none;
}
.abs-remove-button-for-blocks > span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.abs-remove-button-for-blocks:before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 26px;
  line-height: 15px;
  color: #303030;
  content: '\e616';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-remove-button-for-blocks:hover:before {
  color: #303030;
}
.abs-remove-button-for-blocks:active:before {
  color: #303030;
}
.abs-product-link {
  font-weight: 400;
}
.abs-product-link > a {
  color: #333333;
  text-decoration: none;
}
.abs-product-link > a:visited {
  color: #333333;
  text-decoration: underline;
}
.abs-product-link > a:hover {
  color: #333333;
  text-decoration: underline;
}
.abs-product-link > a:active {
  color: #333333;
  text-decoration: underline;
}
.abs-reset-left-margin,
.form-new-agreement .actions-toolbar {
  margin-left: 0;
}
.abs-action-remove,
.abs-add-fields .action.remove {
  left: 10px;
  margin-left: 70%;
  position: absolute;
  top: 31px;
  width: auto;
}
.abs-add-fields .fieldset {
  margin-bottom: 50px;
}
.abs-add-fields .fieldset .field:not(.choice) .control {
  width: 70%;
}
.abs-add-fields .fieldset .actions-toolbar:not(:first-child) > .secondary {
  float: left;
}
.abs-add-fields .fieldset .actions-toolbar:not(:first-child) > .secondary .action.add {
  margin-top: 30px;
}
.abs-add-fields .fieldset .fields .actions-toolbar {
  margin: 0;
}
.abs-add-fields .message.notice {
  margin: 30px 0 0;
}
.abs-add-fields .additional {
  margin-top: 55px;
  position: relative;
}
.abs-hidden,
.order-details-items .order-items .order-gift-message:not(.expanded-content) {
  height: 0;
  visibility: hidden;
}
.abs-visually-hidden,
.swatch-attribute-label.visually-hidden,
.swatch-attribute-selected-option.visually-hidden,
.swatch-input,
.page-product-giftcard .fieldset.giftcard > .legend,
.opc-wrapper .form-discount .field .label {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.abs-visually-hidden-reset {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}
.abs-add-clearfix:before,
.abs-add-clearfix:after,
.abs-add-fields .fieldset .actions-toolbar:not(:first-child):before,
.abs-add-fields .fieldset .actions-toolbar:not(:first-child):after,
.gift-options:before,
.gift-options:after,
.gift-item-block .content:before,
.gift-item-block .content:after,
.order-details-items .order-gift-message:before,
.order-details-items .order-gift-message:after,
.order-details-items .block-order-details-gift-message:before,
.order-details-items .block-order-details-gift-message:after,
.map-popup .map-info-price:before,
.map-popup .map-info-price:after {
  content: '';
  display: table;
}
.abs-add-clearfix:after,
.abs-add-fields .fieldset .actions-toolbar:not(:first-child):after,
.gift-options:after,
.gift-item-block .content:after,
.order-details-items .order-gift-message:after,
.order-details-items .block-order-details-gift-message:after,
.map-popup .map-info-price:after {
  clear: both;
}
.abs-add-box-sizing,
.abs-field-date .control,
.abs-field-tooltip,
.columns .column.main,
.columns .sidebar-main,
.columns .sidebar-additional,
.search-autocomplete {
  box-sizing: border-box;
}
.abs-navigation-icon {
  display: block;
  text-decoration: none;
}
.abs-navigation-icon:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 34px;
  line-height: 1.2;
  color: inherit;
  content: '\e622';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-navigation-icon:after {
  position: absolute;
  right: 5px;
  top: 0;
}
.abs-split-button {
  display: inline-block;
  position: relative;
  vertical-align: middle;
}
.abs-split-button:before,
.abs-split-button:after {
  content: '';
  display: table;
}
.abs-split-button:after {
  clear: both;
}
.abs-split-button .action.split {
  float: left;
  margin: 0;
}
.abs-split-button .action.toggle {
  float: right;
  margin: 0;
}
.abs-split-button button.action.split {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.abs-split-button button + .action.toggle {
  border-bottom-left-radius: 0;
  border-left: 0;
  border-top-left-radius: 0;
}
.abs-split-button .action.toggle {
  padding: 4px 5px;
}
.abs-split-button .items {
  margin: 0;
  padding: 0;
  list-style: none none;
  background: #ffffff;
  border: 1px solid #bbbbbb;
  margin-top: 4px;
  min-width: 100%;
  z-index: 100;
  box-sizing: border-box;
  display: none;
  position: absolute;
  top: 100%;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);
}
.abs-split-button .items li {
  margin: 0;
  padding: 3px 5px;
}
.abs-split-button .items li:hover {
  background: #e8e8e8;
  cursor: pointer;
}
.abs-split-button .items:before,
.abs-split-button .items:after {
  border-bottom-style: solid;
  content: '';
  display: block;
  height: 0;
  position: absolute;
  width: 0;
}
.abs-split-button .items:before {
  border: 6px solid;
  border-color: transparent transparent #ffffff transparent;
  z-index: 99;
}
.abs-split-button .items:after {
  border: 7px solid;
  border-color: transparent transparent #bbbbbb transparent;
  z-index: 98;
}
.abs-split-button .items:before {
  right: 10px;
  top: -12px;
}
.abs-split-button .items:after {
  right: 9px;
  top: -14px;
}
.abs-split-button.active {
  overflow: visible;
}
.abs-split-button.active .items {
  display: block;
}
.abs-action-addto-product {
  font-size: 1.1rem;
}
.abs-actions-addto-gridlist {
  display: inline-block;
  text-decoration: none;
}
.abs-actions-addto-gridlist > span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.abs-actions-addto-gridlist:before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 29px;
  line-height: 24px;
  color: #7d7d7d;
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-actions-addto-gridlist:hover:before {
  color: #333333;
}
.abs-button-l {
  font-size: 1.8rem;
}
.abs-action-button-as-link,
.abs-action-remove,
.cart-summary .block.giftcard .action.check,
.gift-options .actions-toolbar .action-cancel,
.paypal-button-widget .paypal-button,
.abs-add-fields .action.remove {
  border-radius: 0;
  font-size: inherit;
  font-weight: 400;
}
.abs-action-button-as-link:active,
.abs-action-button-as-link:not(:focus),
.abs-action-remove:active,
.abs-action-remove:not(:focus),
.cart-summary .block.giftcard .action.check:active,
.cart-summary .block.giftcard .action.check:not(:focus),
.gift-options .actions-toolbar .action-cancel:active,
.gift-options .actions-toolbar .action-cancel:not(:focus),
.paypal-button-widget .paypal-button:active,
.paypal-button-widget .paypal-button:not(:focus),
.abs-add-fields .action.remove:active,
.abs-add-fields .action.remove:not(:focus) {
  box-shadow: none;
}
.abs-box-tocart {
  margin: 10px 0;
}
.abs-adjustment-incl-excl-tax .price-including-tax,
.abs-adjustment-incl-excl-tax .price-excluding-tax,
.abs-adjustment-incl-excl-tax .weee {
  font-size: 1.4rem;
  display: inline-block;
  white-space: nowrap;
}
.abs-adjustment-incl-excl-tax .price-including-tax + .price-excluding-tax {
  display: inline-block;
  font-size: 1.1rem;
}
.abs-adjustment-incl-excl-tax .price-including-tax + .price-excluding-tax:before {
  content: '(' attr(data-label) ': ';
}
.abs-adjustment-incl-excl-tax .price-including-tax + .price-excluding-tax:after {
  content: ')';
}
.abs-tax-total,
.price-including-tax .cart-tax-total,
.price-excluding-tax .cart-tax-total {
  cursor: pointer;
  padding-right: 12px;
  position: relative;
  display: inline-block;
  text-decoration: none;
}
.abs-tax-total:after,
.price-including-tax .cart-tax-total:after,
.price-excluding-tax .cart-tax-total:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 26px;
  line-height: 10px;
  color: inherit;
  content: '\e622';
  font-family: 'icons-blank-theme';
  margin: 3px 0 0 0;
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-tax-total:after,
.price-including-tax .cart-tax-total:after,
.price-excluding-tax .cart-tax-total:after {
  position: absolute;
  right: -10px;
  top: 3px;
}
.abs-tax-total-expanded:after {
  content: '\e621';
}
.abs-tax-total-expanded:after,
.price-including-tax .cart-tax-total-expanded:after,
.price-excluding-tax .cart-tax-total-expanded:after {
  content: '\e621';
}
.abs-methods-shipping-title {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 15px;
}
.abs-account-title {
  border-bottom: 1px solid #d1d1d1;
  margin-bottom: 25px;
  padding-bottom: 10px;
}
.abs-account-title > strong,
.abs-account-title > span {
  font-size: 2.2rem;
  font-weight: 300;
}
.abs-rating-summary .rating-summary {
  display: table-row;
}
.abs-rating-summary .rating-label {
  display: table-cell;
  padding-bottom: 5px;
  padding-right: 25px;
  padding-top: 1px;
  vertical-align: top;
}
.abs-rating-summary .rating-result {
  display: table-cell;
  vertical-align: top;
}
.abs-colon:after,
.order-details-items .order-gift-message .label:after,
.order-details-items .block-order-details-gift-message .label:after {
  content: ': ';
}
.abs-icon-add,
.abs-dropdown-items-new .action.new {
  display: inline-block;
  text-decoration: none;
}
.abs-icon-add:before,
.abs-dropdown-items-new .action.new:before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 10px;
  line-height: 10px;
  color: inherit;
  content: '\e61c';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-dropdown-items-new .items .item:last-child:hover {
  background: #e8e8e8;
}
.abs-dropdown-items-new .action.new:before {
  margin-left: -17px;
  margin-right: 5px;
}
.abs-no-display,
.abs-sidebar-totals .table-caption,
.page-product-giftcard .fieldset.giftcard > .legend + br,
.order-details-items .order-items .order-gift-message .action.close {
  display: none;
}
.abs-status {
  display: inline-block;
  margin-bottom: 20px;
}
.abs-block-items-counter {
  color: #7d7d7d;
  font-size: 1.2rem;
  white-space: nowrap;
}
.abs-shopping-cart-items .action.continue {
  border-radius: 3px;
  font-weight: 700;
}
.abs-shopping-cart-items .action.continue:active {
  box-shadow: inset 0 2px 1px rgba(0, 0, 0, 0.12);
}
.abs-shopping-cart-items .action.update {
  padding-left: 5px;
}
.abs-field-date .control {
  position: relative;
}
.abs-field-date-input,
.abs-field-date input {
  margin-right: 10px;
  width: calc(100% - 50px);
}
.abs-field-tooltip {
  position: relative;
}
.abs-field-tooltip input {
  margin-right: 10px;
  width: calc(100% - 16.4rem);
}
.abs-checkout-tooltip-content-position-top {
  right: 0;
  top: 0;
  left: auto;
}
.abs-checkout-tooltip-content-position-top:before,
.abs-checkout-tooltip-content-position-top:after {
  border: 1.4rem solid transparent;
  height: 0;
  width: 0;
  margin-top: 0;
  right: 10px;
  left: auto;
  top: 0;
}
.abs-checkout-tooltip-content-position-top:before {
  border-bottom-color: #ffffff;
}
.abs-checkout-tooltip-content-position-top:after {
  border-bottom-color: #ffffff;
  top: 1px;
}
.abs-checkout-title {
  border-bottom: none;
  padding-bottom: 2rem;
  color: #333333;
  font-weight: 600;
  font-size: 1.8rem;
}
.abs-sidebar-totals .mark {
  font-weight: 400;
  padding-left: 4px;
}
.abs-sidebar-totals .mark strong {
  font-weight: 400;
}
.abs-sidebar-totals .amount {
  padding-right: 4px;
  text-align: right;
  white-space: nowrap;
}
.abs-sidebar-totals .amount strong {
  font-weight: 400;
}
.abs-sidebar-totals .grand .mark,
.abs-sidebar-totals .grand .amount {
  padding-top: 20px;
}
.abs-sidebar-totals .grand .amount {
  padding-right: 4px;
  text-align: right;
}
.abs-sidebar-totals .grand .amount strong {
  font-weight: 700;
}
.abs-sidebar-totals .msrp {
  margin-bottom: 10px;
}
.abs-sidebar-totals .totals-tax-summary .mark,
.abs-sidebar-totals .totals-tax-summary .amount {
  border-top: 1px solid #d1d1d1;
  border-bottom: 1px solid #d1d1d1;
  cursor: pointer;
}
.abs-sidebar-totals .totals-tax-summary .amount .price {
  display: block;
  text-decoration: none;
  padding-right: 25px;
  position: relative;
}
.abs-sidebar-totals .totals-tax-summary .amount .price > span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.abs-sidebar-totals .totals-tax-summary .amount .price:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 30px;
  line-height: inherit;
  color: inherit;
  content: '\e622';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-sidebar-totals .totals-tax-summary .amount .price:after {
  position: absolute;
  right: -5px;
  top: -12px;
}
.abs-sidebar-totals .totals-tax-summary.expanded .mark,
.abs-sidebar-totals .totals-tax-summary.expanded .amount {
  border-bottom: 0;
}
.abs-sidebar-totals .totals-tax-summary.expanded .amount .price:after {
  content: '\e621';
}
.abs-sidebar-totals .totals-tax-details {
  border-bottom: 1px solid #d1d1d1;
  display: none;
}
.abs-sidebar-totals .totals-tax-details.shown {
  display: table-row;
}
.abs-discount-block > .title {
  border-top: 1px solid #d1d1d1;
  cursor: pointer;
  font-weight: 600;
  display: block;
  text-decoration: none;
  margin-bottom: 0;
  overflow: hidden;
  padding: 7px 30px 7px 5px;
  position: relative;
}
.abs-discount-block > .title:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 30px;
  line-height: inherit;
  color: inherit;
  content: '\e622';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.abs-discount-block > .title:after {
  position: absolute;
  right: -5px;
  top: -5px;
}
.column.main .abs-discount-block > .title strong {
  font-size: 1.8rem;
  font-weight: 400;
}
.abs-discount-block > .content {
  display: none;
}
.abs-discount-block.active > .title:after {
  content: '\e621';
}
.abs-discount-block.active > .content {
  display: block;
}
.items {
  margin: 0;
  padding: 0;
  list-style: none none;
}
.columns {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  box-sizing: border-box;
}
.columns:after {
  clear: both;
  content: ' ';
  display: block;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}
.columns .column.main {
  padding-bottom: 40px;
  -webkit-flex-basis: 100%;
  flex-basis: 100%;
  -webkit-flex-grow: 1;
  flex-grow: 1;
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
  width: 100%;
}
.columns .sidebar-main {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  -webkit-flex-basis: 100%;
  flex-basis: 100%;
  -ms-flex-order: 1;
  -webkit-order: 1;
  order: 1;
}
.columns .sidebar-additional {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  -webkit-flex-basis: 100%;
  flex-basis: 100%;
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
}
/** Styles form _tables.less of theme blank are move to components/table.scss */
/** We have custom navigation component also. */
.tooltip.wrapper {
  position: relative;
}
.tooltip.wrapper .tooltip.content {
  background: #ffffff;
  max-width: 360px;
  min-width: 210px;
  padding: 12px 16px;
  z-index: 100;
  display: none;
  position: absolute;
  text-align: left;
  color: #333333;
  line-height: 1.4;
  border: 1px solid #bbbbbb;
  margin-top: 5px;
  left: 0;
  top: 100%;
}
.tooltip.wrapper .tooltip.content:after,
.tooltip.wrapper .tooltip.content:before {
  border: solid transparent;
  content: '';
  height: 0;
  position: absolute;
  width: 0;
}
.tooltip.wrapper .tooltip.content:after {
  border-width: 5px;
  border-color: transparent;
}
.tooltip.wrapper .tooltip.content:before {
  border-width: 6px;
  border-color: transparent;
}
.tooltip.wrapper .tooltip.content:after,
.tooltip.wrapper .tooltip.content:before {
  bottom: 100%;
}
.tooltip.wrapper .tooltip.content:after {
  border-bottom-color: #ffffff;
  left: 15px;
  margin-left: -5px;
}
.tooltip.wrapper .tooltip.content:before {
  border-bottom-color: #bbbbbb;
  left: 15px;
  margin-left: -6px;
}
.tooltip.wrapper .tooltip.toggle {
  cursor: help;
}
.tooltip.wrapper .tooltip.toggle:hover + .tooltip.content,
.tooltip.wrapper .tooltip.toggle:focus + .tooltip.content,
.tooltip.wrapper:hover .tooltip.content {
  display: block;
}
.tooltip.wrapper .tooltip.content dl {
  margin-bottom: 0;
}
.tooltip.wrapper .tooltip.content dd {
  white-space: normal;
}
.tooltip.wrapper .tooltip.content .subtitle {
  display: inline-block;
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 15px;
}
.tooltip.wrapper .tooltip.content .label {
  margin-top: 10px;
}
.tooltip.wrapper .tooltip.content .label:first-child {
  margin-top: 0;
}
.tooltip.wrapper .tooltip.content .values {
  margin: 0;
}
.ui-tooltip {
  position: absolute;
  z-index: 9999;
}
.load.indicator {
  background-color: rgba(255, 255, 255, 0.5);
  z-index: 9999;
  bottom: 0;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  position: absolute;
}
.load.indicator:before {
  background: transparent url('../../frontend/Creativestyle/theme-tuplex/pl_PL/images/loader-2.gif') no-repeat 50% 50%;
  border-radius: 5px;
  height: 160px;
  width: 160px;
  bottom: 0;
  box-sizing: border-box;
  content: '';
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
}
.load.indicator > span {
  display: none;
}
.loading-mask {
  bottom: 0;
  left: 0;
  margin: auto;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.5);
}
.loading-mask .loader > img {
  bottom: 0;
  left: 0;
  margin: auto;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
}
.loading-mask .loader > p {
  display: none;
}
body > .loading-mask {
  z-index: 9999;
}
._block-content-loading {
  position: relative;
}
[data-role='main-css-loader'] {
  display: none;
}
/** */
/** Removing default Magento 2 icons implementation. */
/** We have custom button component. */
/** We have custom pager component. */
/** Custom toolbar will be available in future */
/** Removing default Magento 2 breadcrumbs implementation. */
.ui-dialog.popup .action.close {
  position: absolute;
  height: 40px;
  right: 0;
  top: 0;
  width: 40px;
  z-index: 1001;
}
.popup-pointer {
  margin-left: -14px;
  position: absolute;
  top: -14px;
}
.popup-pointer:before,
.popup-pointer:after {
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-bottom-style: solid;
}
.popup-pointer:before {
  left: 2px;
  top: 2px;
  border: solid 6px;
  border-color: transparent transparent #ffffff transparent;
  z-index: 99;
}
.popup-pointer:after {
  left: 1px;
  top: 0px;
  border: solid 7px;
  border-color: transparent transparent #aeaeae transparent;
  z-index: 98;
}
.price-tier_price .price-excluding-tax,
.price-tier_price .price-including-tax {
  display: inline;
}
.price-including-tax,
.price-excluding-tax {
  display: block;
  font-size: 1.8rem;
  line-height: 1;
}
.price-including-tax .price,
.price-excluding-tax .price {
  font-weight: 700;
}
.price-including-tax + .price-excluding-tax,
.weee[data-label] {
  display: block;
  font-size: 1.8rem;
}
.price-including-tax + .price-excluding-tax:before,
.weee[data-label]:before {
  content: attr(data-label) ': ';
  font-size: 1.1rem;
}
.price-including-tax + .price-excluding-tax .price,
.weee[data-label] .price {
  font-size: 1.1rem;
}
body._has-modal {
  height: 100%;
  overflow: hidden;
  width: 100%;
}
.modals-overlay {
  z-index: 899;
}
.modal-slide,
.modal-popup {
  bottom: 0;
  left: 0;
  min-width: 0;
  position: fixed;
  right: 0;
  top: 0;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: visibility 0s .3s, opacity .3s ease;
  transition: visibility 0s .3s, opacity .3s ease;
}
.modal-slide._show,
.modal-popup._show {
  visibility: visible;
  opacity: 1;
  -webkit-transition: opacity .3s ease;
  transition: opacity .3s ease;
}
.modal-slide._show .modal-inner-wrap,
.modal-popup._show .modal-inner-wrap {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap {
  background-color: #ffffff;
  box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);
  opacity: 1;
  pointer-events: auto;
}
.modal-slide {
  left: 44px;
  z-index: 900;
}
.modal-slide._show .modal-inner-wrap {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.modal-slide .modal-inner-wrap {
  height: 100%;
  overflow-y: auto;
  position: static;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  width: auto;
}
.modal-slide._inner-scroll .modal-inner-wrap {
  overflow-y: visible;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.modal-slide._inner-scroll .modal-header,
.modal-slide._inner-scroll .modal-footer {
  -webkit-flex-grow: 0;
  flex-grow: 0;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
}
.modal-slide._inner-scroll .modal-content {
  overflow-y: auto;
}
.modal-slide._inner-scroll .modal-footer {
  margin-top: auto;
}
.modal-slide .modal-header,
.modal-slide .modal-content,
.modal-slide .modal-footer {
  padding: 0 2.6rem 2.6rem;
}
.modal-slide .modal-header {
  padding-bottom: 2.1rem;
  padding-top: 2.1rem;
}
.modal-popup {
  z-index: 900;
  left: 0;
  overflow-y: auto;
}
.modal-popup.confirm .modal-inner-wrap {
  max-width: 50rem;
}
.modal-popup._show .modal-inner-wrap {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.modal-popup .modal-inner-wrap {
  margin: 5rem auto;
  width: 75%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  height: auto;
  left: 0;
  position: absolute;
  right: 0;
  -webkit-transform: translateY(-200%);
  transform: translateY(-200%);
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: transform .2s ease;
}
.modal-popup._inner-scroll {
  overflow-y: visible;
}
.ie11 .modal-popup._inner-scroll {
  overflow-y: auto;
}
.modal-popup._inner-scroll .modal-inner-wrap {
  max-height: 90%;
}
.ie11 .modal-popup._inner-scroll .modal-inner-wrap {
  max-height: none;
}
.modal-popup._inner-scroll .modal-content {
  overflow-y: auto;
}
.modal-popup .modal-header,
.modal-popup .modal-content,
.modal-popup .modal-footer {
  padding-left: 3rem;
  padding-right: 3rem;
}
.modal-popup .modal-header,
.modal-popup .modal-footer {
  -webkit-flex-grow: 0;
  flex-grow: 0;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
}
.modal-popup .modal-header {
  padding-bottom: 1.2rem;
  padding-top: 3rem;
}
.modal-popup .modal-footer {
  margin-top: auto;
  padding-bottom: 3rem;
  padding-top: 3rem;
}
.modal-popup .modal-footer-actions {
  text-align: right;
}
.modal-custom .action-close,
.modal-popup .action-close,
.modal-slide .action-close {
  position: absolute;
  right: 0;
  top: 0;
}
.modal-custom .action-close:hover:before,
.modal-popup .action-close:hover:before,
.modal-slide .action-close:hover:before {
  color: #1a1a1a;
}
.modal-custom .action-close {
  margin: 25px;
}
.modal-popup {
  pointer-events: none;
}
.modal-popup .modal-title {
  border-bottom: 1px solid #c1c1c1;
  font-weight: 300;
  padding-bottom: 10px;
  font-size: 26px;
  margin-bottom: 0;
  min-height: 1em;
  word-wrap: break-word;
}
.modal-popup .action-close {
  padding: 10px;
}
.modal-slide .action-close {
  padding: 1.1rem 2rem;
}
.modal-slide .page-main-actions {
  margin-bottom: -12.9rem;
  margin-top: 2.1rem;
}
.modals-overlay {
  background-color: rgba(51, 51, 51, 0.55);
  bottom: 0;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
}
body._has-modal-custom .modal-custom-overlay {
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 899;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.form-discount .g-recaptcha {
  margin-top: 50px !important;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.login-container .g-recaptcha,
.form-login .g-recaptcha,
.form-edit-account .g-recaptcha {
  margin-bottom: 10px !important;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.required-captcha.checkbox {
  position: absolute;
  display: block;
  visibility: visible;
  overflow: hidden;
  opacity: 0;
  width: 1px;
  height: 1px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.block.newsletter .field-recaptcha .field .control:before {
  content: none;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.review-form .field-recaptcha {
  margin-bottom: 10px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.form.send.friend .g-recaptcha {
  margin-top: 40px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.product-info-stock-sku .configurable-variation-qty {
  display: none;
}
.amslick-slider-container {
  /* phpcs:ignore Magento2.Less.SemicolonSpacing.NotAtEnd */
}
.amslick-slider-container .slick-dots li button:focus,
.amslick-slider-container .slick-dots li button:hover,
.amslick-slider-container .slick-list:focus {
  outline: 0;
}
.amslick-slider-container .slick-list,
.amslick-slider-container .slick-slider,
.amslick-slider-container .slick-track {
  display: block;
  position: relative;
}
.amslick-slider-container .slick-loading .slick-slide,
.amslick-slider-container .slick-loading .slick-track {
  visibility: hidden;
}
.amslick-slider-container .slick-list {
  margin: 0;
  overflow: hidden;
  padding: 0;
}
.amslick-slider-container .slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}
.amslick-slider-container .slick-slider .slick-list,
.amslick-slider-container .slick-slider .slick-track {
  transform: translate3d(0, 0, 0);
}
.amslick-slider-container .slick-track {
  left: 0;
  margin: 0 auto;
  top: 0;
}
.amslick-slider-container .slick-track:after,
.amslick-slider-container .slick-track:before {
  content: '';
  display: table;
}
.amslick-slider-container .slick-track:after {
  clear: both;
}
.amslick-slider-container .slick-slide,
.amslick-slider-container .slick-slide.slick-loading img {
  display: none;
}
.amslick-slider-container .slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  vertical-align: middle;
}
.amslick-slider-container [dir=rtl] .slick-slide {
  float: right;
}
.amslick-slider-container .slick-slide.dragging img {
  pointer-events: none;
}
.amslick-slider-container .slick-vertical .slick-slide {
  border: 1px solid transparent;
  display: block;
  height: auto;
}
.amslick-slider-container .slick-arrow.slick-hidden {
  display: none;
}
.amslick-slider-container .slick-loading .slick-list {
  background: 0 0;
  position: relative;
}
.amslick-slider-container .slick-loading .slick-list:before {
  animation: loading 1s infinite linear;
  border-color: rgba(0, 0, 0, 0.2);
  border-radius: 100%;
  border-style: solid;
  border-top-color: #5c5c5c;
  border-width: 3px;
  content: '';
  display: block;
  height: 25px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 25px;
}
.amslick-slider-container .slick-next.slick-disabled,
.amslick-slider-container .slick-prev.slick-disabled {
  opacity: 0.25;
}
.amslick-slider-container .slick-dotted.slick-slider {
  margin-bottom: 30px;
}
.amslick-slider-container .slick-dots {
  display: block;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  text-align: center;
  width: 100%;
}
.amslick-slider-container .slick-dots li {
  cursor: pointer;
  display: inline-block;
  height: 20px;
  margin: 0 5px;
  padding: 0;
  position: relative;
  width: 20px;
}
.amslick-slider-container .slick-dots li button,
.amslick-slider-container .slick-slider .slick-arrow {
  box-shadow: none;
  cursor: pointer;
  display: block;
  outline: 0;
}
.amslick-slider-container .slick-dots li button {
  background: 0 0;
  border: 0;
  color: transparent;
  font-size: 0;
  height: 20px;
  line-height: 0;
  padding: 5px;
  width: 20px;
}
.amslick-slider-container .slick-dots li button:focus:before,
.amslick-slider-container .slick-dots li button:hover:before {
  opacity: 1;
}
.amslick-slider-container .slick-dots li button:before {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  color: #000000;
  content: '•';
  font-size: 16px;
  height: 20px;
  left: 0;
  line-height: 20px;
  opacity: 0.25;
  position: absolute;
  text-align: center;
  top: 0;
  width: 20px;
}
.amslick-slider-container .slick-dots li.slick-active button:before {
  color: #000000;
  opacity: 0.75;
}
.amslick-slider-container .slick-slider {
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
  padding: 0 20px;
  touch-action: pan-y;
  user-select: none;
}
.amslick-slider-container .slick-slider .slick-arrow {
  background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0uMi40QTEgMSAwIDAgMSAxLjYuMmwxMiAxMGExIDEgMCAwIDEgMCAxLjZsLTEyIDEwYTEgMSAwIDAgMS0xLjItMS42TDExLjMzMyAxMSAuNCAxLjhBMSAxIDAgMCAxIC4yLjR6IiBmaWxsPSIjQzRDNEM0Ii8+PC9zdmc+') center no-repeat !important;
  border: none;
  color: transparent;
  font-size: 0;
  height: 22px;
  line-height: 0;
  padding: 0;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  transition: background .3s ease;
  width: 15px;
}
.amslick-slider-container .slick-slider .slick-arrow:before,
.amslick-slider-container .slick-slider .slick-arrow:after {
  content: '';
}
.amslick-slider-container .slick-slider .slick-arrow:hover {
  background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0uMi40QTEgMSAwIDAgMSAxLjYuMmwxMiAxMGExIDEgMCAwIDEgMCAxLjZsLTEyIDEwYTEgMSAwIDAgMS0xLjItMS42TDExLjMzMyAxMSAuNCAxLjhBMSAxIDAgMCAxIC4yLjR6IiBmaWxsPSIjMTYxNjE2Ii8+PC9zdmc+') center no-repeat;
}
.amslick-slider-container .slick-slider .slick-arrow.slick-next {
  right: 0;
}
.amslick-slider-container .slick-slider .slick-arrow.slick-prev {
  left: 0;
  transform: rotate(180deg) translate(0, 50%);
}
.amslick-slider-container .slick-initialized .slick-slide {
  display: inline-block !important;
  float: none !important;
  height: auto;
}
.amslick-slider-container .product-items.slick-slider > .slick-list {
  padding: 15px 0;
}
.amslick-slider-container .product-items.slick-slider .slick-slide .product-item {
  display: block !important;
  margin: auto !important;
  max-width: 205px;
}
.amslick-slider-container .sidebar.sidebar-additional {
  width: 100%;
}
@keyframes loading {
  0% {
    transform: translate(-50%, -50%) rotate(0);
  }
  100% {
    transform: translate(-50%, -50%) rotate(359.9deg);
  }
}
.am-recaptcha-container .messages-container {
  margin-top: 15px;
}
.am-recaptcha-container .hidden {
  left: -10000px;
  position: absolute;
  visibility: hidden;
}
.am-recaptcha-place-order .grecaptcha-badge {
  z-index: 1000;
}
.recaptcha-error {
  border: 1px solid #dd4b39;
  padding: 5px;
}
.recaptcha-error .recaptcha-error-message {
  color: #dd4b39;
  font-size: 12px;
  padding: 4px 0;
}
/* phpcs:ignore Magento2.Less.AvoidId.IdSelectorUsage */
.am-submit-summary #checkout-payment-method-load .actions-toolbar:has(#am-recaptcha-block) {
  /* phpcs:ignore Magento2.Less.AvoidId.IdSelectorUsage */
  display: block;
}
.am-submit-summary #checkout-payment-method-load .actions-toolbar:has(#am-recaptcha-block) .primary > *:not(#am-recaptcha-block) {
  display: none;
}
.am-submit-summary #checkout-payment-method-load .actions-toolbar:has(#am-recaptcha-block) .primary:has(.grecaptcha-badge) {
  display: none;
}
.field .control._with-tooltip .choice.field {
  width: calc(100% - 16.4rem);
}
.field .control._with-tooltip .choice.field input {
  width: auto;
}
.field .control._with-tooltip select,
.field .control._with-tooltip textarea {
  margin-right: 10px;
  width: calc(100% - 16.4rem);
}
.field .control select[multiple] {
  height: auto;
  background: #ffffff;
}
tr.order-attributes td {
  padding-left: 0;
  padding-right: 0;
}
.order-attributes .order-attributes-form {
  /* phpcs:ignore Magento2.Less.SemicolonSpacing.NotAtEnd */
  margin-top: 20px;
}
.order-attributes .order-attributes-form.fieldset .field:last-child {
  margin-bottom: 20px;
}
.order-attributes .file-uploader .file-uploader-meta {
  color: #727272;
}
/* phpcs:ignore Magento2.Less.AvoidId.IdSelectorUsage */
#store-pickup.selected-store-pickup {
  /* phpcs:ignore Magento2.Less.AvoidId.IdSelectorUsage */
}
#store-pickup.selected-store-pickup ~ #shipping,
#store-pickup.selected-store-pickup ~ #opc-shipping_method {
  position: absolute;
}
.opc-block-summary .order-attributes-form .field-tooltip-content {
  left: -270px;
  top: -55px;
}
.opc-block-summary .order-attributes-form .field-tooltip-content:before {
  left: 270px;
  top: 44px;
  transform: rotate(-90deg);
}
.opc-block-summary .order-attributes-form .field-tooltip-content:after {
  border-width: 9px;
  left: 271px;
  top: 44px;
  transform: rotate(-90deg);
  width: 0;
}
.amrates-shipping-rates .field.choice.item {
  padding: 8px;
}
.swatch-attribute-options:after {
  clear: both;
  content: '';
  display: block;
  height: 0;
  visibility: hidden;
}
[class*='swatch-opt'] .swatch-attribute-options {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
[data-rendered='true'] .swatch-attribute-options,
.swatch-opt--light .swatch-attribute-options {
  cursor: pointer;
  opacity: 1;
  pointer-events: auto;
}
.swatch-attribute.image,
.swatch-attribute.color {
  background: no-repeat center;
  background-size: initial;
}
.swatch-opt--light .swatch-option[data-option-empty='true'] {
  opacity: 0.5;
}
.swatch-more ~ .swatch-option {
  display: none;
}
.logo.logo-mobile {
  display: none;
}
.block-search {
  margin-bottom: 0;
}
.block-search .block-title {
  display: none;
}
.block-search .block-content {
  margin-bottom: 0;
}
.block-search .label {
  text-decoration: none;
  display: inline-block;
  float: right;
}
.block-search .label > span {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.block-search .label:before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 35px;
  line-height: 33px;
  color: #8f8f8f;
  content: '\e615';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.block-search .label:hover:before {
  color: #333333;
}
.block-search .label:active:before {
  color: #333333;
}
.block-search .label.active + .control input {
  position: static;
}
.block-search .action.search {
  display: none;
}
.block-search .control {
  border-top: 1px solid #d1d1d1;
  clear: both;
  margin: 0 -15px -1px;
  padding: 0 15px;
}
.block-search input {
  font-size: 16px;
  left: -300%;
  margin: 15px 0;
  position: absolute;
}
.block-search .nested {
  display: none;
}
.search-autocomplete {
  display: none;
  margin-top: -15px;
  overflow: hidden;
  position: absolute;
  z-index: 3;
}
.search-autocomplete ul {
  margin: 0;
  padding: 0;
  list-style: none none;
}
.search-autocomplete ul li {
  border-top: 1px solid #e5e5e5;
  cursor: pointer;
  margin: 0;
  padding: 5px 40px 5px 10px;
  position: relative;
  text-align: left;
  white-space: normal;
}
.search-autocomplete ul li:not(:empty) {
  border-top: 0;
  border: 1px solid #c2c2c2;
  background: #ffffff;
}
.search-autocomplete ul li:first-child {
  border-top: none;
}
.search-autocomplete ul li:hover,
.search-autocomplete ul li.selected {
  background: #e8e8e8;
}
.search-autocomplete ul li .amount {
  color: #999999;
  position: absolute;
  right: 7px;
  top: 5px;
}
.form.search.advanced .fields.range .field:first-child {
  position: relative;
}
.form.search.advanced .fields.range .field:first-child .control {
  padding-right: 25px;
}
.form.search.advanced .fields.range .field:first-child .control:after {
  content: ' \2013 ';
  display: inline-block;
  position: absolute;
  right: 0;
  text-align: center;
  top: 6px;
  width: 25px;
}
.form.search.advanced .fields.range .field:last-child {
  position: relative;
}
.form.search.advanced .fields.range .field:last-child div.mage-error {
  left: 0;
  position: absolute;
  top: 32px;
}
.form.search.advanced .fields.range .field.with-addon .control {
  padding-right: 45px;
}
.form.search.advanced .group.price .addon .addafter {
  background: none;
  border: 0;
  padding-top: 6px;
  position: absolute;
  right: 0;
  top: 0;
}
.search.summary {
  margin-bottom: 10px;
}
/* Override cart */
/* Override checkout */
.cart-summary .block.giftcard .action.check {
  font-size: 1.1rem;
  margin-top: 20px;
}
.page-product-giftcard .giftcard-amount {
  margin-bottom: 0;
  text-align: left;
}
.page-product-giftcard .giftcard-amount .field:last-child {
  padding-bottom: 20px;
}
.page-product-giftcard .product-options-wrapper .field:first-of-type {
  margin-top: 20px;
}
.gift-message .field {
  margin-bottom: 20px;
}
.gift-message .field .label {
  color: #666666;
  font-weight: 400;
}
.gift-options .actions-toolbar .action-cancel {
  display: none;
}
.gift-options-title {
  margin: 0 0 20px;
}
.gift-options-content .fieldset {
  margin: 0 0 20px;
}
.gift-summary .actions-toolbar > .secondary {
  float: none;
}
.gift-summary .actions-toolbar > .secondary .action {
  margin: 10px 20px 0 0;
}
.action-gift.active:after,
.action-gift._active:after {
  content: '\e621';
}
.cart.table-wrapper .gift-content {
  box-sizing: border-box;
  clear: left;
  display: none;
  float: left;
  margin: 10px 0 20px;
  text-align: left;
  width: 100%;
}
.cart.table-wrapper .gift-content._active {
  display: block;
}
.gift-item-block {
  margin: 0;
}
.gift-item-block._active .title:after {
  content: '\e621';
}
.gift-item-block .title {
  font-weight: 700;
  border-radius: 3px;
}
.gift-item-block .title:active {
  box-shadow: inset 0 2px 1px rgba(0, 0, 0, 0.12);
}
.gift-item-block .content {
  border-bottom: 1px solid #c1c1c1;
  padding: 10px 10px 20px;
  position: relative;
}
.order-details-items .order-gift-message .item-options dt,
.order-details-items .block-order-details-gift-message .item-options dt {
  font-weight: 400;
  margin: 10px 0;
}
.order-details-items .order-gift-message dt:after,
.order-details-items .block-order-details-gift-message dt:after {
  content: '';
}
.order-details-items .order-gift-message .item-message,
.order-details-items .block-order-details-gift-message .item-message {
  clear: left;
}
.order-details-items .order-items .action.show {
  display: inline-block;
  text-decoration: none;
  padding-right: 20px;
  position: relative;
}
.order-details-items .order-items .action.show:after {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 22px;
  line-height: inherit;
  color: inherit;
  content: '\e622';
  font-family: 'icons-blank-theme';
  vertical-align: middle;
  display: inline-block;
  font-weight: normal;
  overflow: hidden;
  speak: none;
  text-align: center;
}
.order-details-items .order-items .action.show:after {
  position: absolute;
  right: 0;
  top: -4px;
}
.order-details-items .order-items .action.show.expanded:after {
  content: '\e621';
}
.block-order-details-gift-message {
  border-top: 1px solid #d1d1d1;
  padding-top: 10px;
}
.table.grouped > thead > tr > th,
.table.grouped > tbody > tr > th,
.table.grouped > tfoot > tr > th,
.table.grouped > thead > tr > td,
.table.grouped > tbody > tr > td,
.table.grouped > tfoot > tr > td {
  border-top: 1px solid #d1d1d1;
}
.table.grouped > caption + thead > tr:first-child > th,
.table.grouped > colgroup + thead > tr:first-child > th,
.table.grouped > thead:first-child > tr:first-child > th,
.table.grouped > caption + thead > tr:first-child > td,
.table.grouped > colgroup + thead > tr:first-child > td,
.table.grouped > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table.grouped > tbody + tbody {
  border-top: 1px solid #d1d1d1;
}
.table.grouped > thead > tr > th {
  border-bottom: 0;
}
.table.grouped .product-item-name {
  font-weight: 400;
}
.table.grouped .price-box .price {
  font-size: 14px;
}
.table.grouped .stock.unavailable {
  font-weight: normal;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
}
.table.grouped .row-tier-price td {
  border-top: 0;
}
.table.grouped .row-tier-price .prices-tier {
  margin: 0 -10px 10px;
}
.map-popup-wrapper.popup .action.close {
  top: 10px;
}
.map-popup {
  background: #ffffff;
  border: 1px solid #aeaeae;
  padding: 22px;
  width: 100%;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);
  transition: opacity 0.3s linear;
  left: 0;
  margin-top: 10px;
  position: absolute;
  top: 0;
  z-index: 1001;
  display: none;
  opacity: 0;
  box-sizing: border-box;
}
.map-popup .popup-header {
  margin: 0 0 25px;
  padding-right: 22px;
}
.map-popup .popup-header .title {
  font-weight: 300;
  line-height: 1.1;
  font-size: 1.8rem;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
}
.map-popup .popup-content {
  margin: 10px 0 0;
}
.map-popup .popup-actions .action.close {
  position: absolute;
  right: 10px;
  top: 10px;
}
.map-popup.active {
  opacity: 1;
}
.map-popup .map-info-price {
  margin-bottom: 15px;
}
.map-popup .map-info-price .price-box {
  margin: 0 0 20px;
}
.map-popup .map-info-price .price-box .label:after {
  content: ': ';
}
.map-popup .regular-price .price-label {
  display: none;
}
.map-old-price:not(:last-child),
.product-info-price .map-show-info:not(:last-child) {
  margin-right: 10px;
}
.map-fallback-price {
  display: none;
}
.map-old-price {
  text-decoration: none;
}
.map-old-price .price-wrapper {
  text-decoration: line-through;
}
.map-form-addtocart {
  display: inline-block;
  text-align: center;
}
.map-form-addtocart img {
  display: block;
  margin: 0 auto;
}
.payment-method-content .pay-later-message {
  margin-bottom: 10px;
  margin-top: 10px;
}
.paypal.after:before {
  content: '- ' attr(data-label) ' -';
  display: block;
  margin: 5px 5px 10px;
  text-transform: uppercase;
}
.paypal.before:before {
  content: '- ' attr(data-label) ' -';
  display: block;
  margin: 10px 5px;
  text-align: center;
  text-transform: uppercase;
}
.paypal.acceptance {
  display: block;
  margin: 0 0 20px;
}
.paypal.acceptance img {
  max-width: 100%;
}
.box-tocart .paypal img,
.block-minicart .paypal img {
  display: block;
  margin: 0 auto;
}
.fotorama-video-container:after {
  background: url('../../frontend/Creativestyle/theme-tuplex/pl_PL/Magento_ProductVideo/img/gallery-sprite.png') bottom right;
  bottom: 0;
  content: '';
  height: 100px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 12px;
  width: 100px;
}
.fotorama-video-container .magnify-lens {
  display: none !important;
}
.fotorama-video-container.video-unplayed:hover img {
  opacity: .6;
}
.fotorama-video-container.video-unplayed:hover:after {
  transform: scale(1.25);
}
.video-thumb-icon:after {
  background: url('../../frontend/Creativestyle/theme-tuplex/pl_PL/Magento_ProductVideo/img/gallery-sprite.png') bottom left;
  bottom: 0;
  content: '';
  height: 40px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 10px;
  width: 49px;
}
.product-video {
  bottom: 0;
  height: 75%;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
}
.product-video iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 9999;
}
.fotorama__stage__shaft:focus .fotorama__stage__frame.fotorama__active:after {
  bottom: 0;
  content: '';
  height: 100px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 12px;
  width: 100px;
}
.fotorama__product-video--loading:after {
  visibility: hidden;
}
@media only screen and (min-device-width: 320px) and (max-device-width: 780px) and (orientation: landscape) {
  .product-video {
    height: 100%;
    width: 81%;
  }
}
.opc-wrapper .form-discount {
  max-width: 500px;
}
.my-credit-cards .status {
  font-style: italic;
}
.my-credit-cards-popup .modal-footer {
  text-align: right;
}
.my-credit-cards-popup .action.secondary {
  margin-right: 20px;
}
.minilist .weee {
  display: table-row;
  font-size: 1.1rem;
}
.minilist .weee:before {
  display: none;
}
.price-container.weee:before {
  display: none;
}
.field.downloads .price-container:before {
  content: ' + ';
  display: inline;
}
.field.downloads .price-excluding-tax {
  display: inline;
}
.field.downloads .price-excluding-tax:before {
  content: ' (' attr(data-label) ': ';
}
.field.downloads .price-excluding-tax:after {
  content: ')';
}
/** Removing default layered navigation styles because we're using custom plugin for it. */
.frmb.ui-sortable {
  min-height: 300px;
}
.form-builder-wrap {
  min-height: 600px;
}
.form-builder-wrap div.form-actions.btn-group {
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0;
  padding: 0;
}
div#frmb-0-cb-wrap {
  position: relative;
  padding-bottom: 40px;
  min-height: 300px;
}
#loading_image_container {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 9999;
}
#form_submit_loading {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100000;
  width: 100%;
  height: 100%;
  background: -moz-linear-gradient(rgba(11, 11, 11, 0.1), rgba(11, 11, 11, 0.6)) repeat-x rgba(11, 11, 11, 0.2);
  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(11, 11, 11, 0.1)), to(rgba(11, 11, 11, 0.6))) repeat-x rgba(11, 11, 11, 0.2);
}
.fb-date .ui-datepicker-trigger {
  margin-left: 10px;
}
.fb-date input {
  cursor: pointer;
}
.am-picker-year .ui-datepicker-calendar td a {
  padding: 8px;
}
.amform-form {
  margin: 0 auto 10px;
  max-width: 700px;
}
.amform-form-fieldset.fieldset {
  margin-bottom: 10px;
}
.amform-form .fb-number {
  max-width: 200px;
}
.amform-groupv2 {
  display: inline-block;
}
.amcform-gdpr {
  display: none;
  margin-bottom: 20px;
}
.amform-versiontwo-label {
  display: inline;
  margin-right: 10px;
  padding-right: 20px;
  word-break: break-all;
}
.amform-form .amform-hide-formload,
.amform-form .amform-hide-formload.action.primary {
  display: none;
}
.amform-form .action.primary,
.amform-parent .action.primary {
  padding: 9px;
  min-width: 120px;
  background: #ffa500;
}
.amform-form .action.primary:hover,
.amform-parent .action.primary:hover {
  background: #2f5bcd;
}
.amform-form .action.primary:disabled,
.amform-parent .action.primary:disabled {
  background: #c4d1f3;
}
.amcform-toolbar {
  text-align: right;
}
.amcform-toolbar > div {
  display: inline-block;
}
.amform-form:not(.default) .amform-checkbox,
.amform-form:not(.default) .amform-radio,
.amform-form:not(.default) .amform-checkboxtwo,
.amform-form:not(.default) .amform-radiotwo {
  display: block;
  opacity: 0;
}
.amform-form:not(.default) .amform-checkbox + label,
.amform-form:not(.default) .amform-radio + label,
.amform-form:not(.default) .amform-checkboxtwo + label,
.amform-form:not(.default) .amform-radiotwo + label {
  position: relative;
  padding-left: 26px;
  line-height: 16px;
}
.amform-form:not(.default) .amform-checkbox + label:before,
.amform-form:not(.default) .amform-radio + label:before,
.amform-form:not(.default) .amform-checkboxtwo + label:before,
.amform-form:not(.default) .amform-radiotwo + label:before {
  position: absolute;
  top: 2px;
  left: 0;
  display: block;
  box-sizing: border-box;
  margin-right: 10px;
  width: 16px;
  height: 16px;
  border: 1px solid #e3e3e3;
  border-radius: 1px;
  content: '';
}
.amform-form:not(.default) .amform-checkbox:checked + label:before,
.amform-form:not(.default) .amform-radio:checked + label:before,
.amform-form:not(.default) .amform-checkboxtwo:checked + label:before,
.amform-form:not(.default) .amform-radiotwo:checked + label:before {
  border-color: #ffa500;
  background: #ffa500;
}
.amform-form:not(.default) .amform-checkbox:checked + label:after,
.amform-form:not(.default) .amform-checkboxtwo:checked + label:after {
  position: absolute;
  top: 3px;
  left: 5px;
  width: 4px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: '';
  transform: rotate(45deg);
}
.amform-form:not(.default) .amform-radio + label:before,
.amform-form:not(.default) .amform-radiotwo + label:before {
  border-radius: 50%;
}
.amform-form:not(.default) .amform-radio:checked + label:before,
.amform-form:not(.default) .amform-radiotwo:checked + label:before {
  border-width: 4px;
  background: #fff;
}
.amform-form:not(.default) .kc-toggle {
  margin: 0 4px 0 0;
  width: 26px;
  height: 16px;
  border: 0;
  border-radius: 20px;
  background: #e3e3e3;
}
.amform-form:not(.default) .kc-toggle.on {
  background: #ffa500;
}
.amform-form:not(.default) .kc-toggle .kct-inner {
  top: 2px;
  left: 2px;
  width: 12px;
  height: 12px;
  border: 0;
  border-radius: 12px;
  background: #fff;
}
.amform-form:not(.default) .kc-toggle.on .kct-inner {
  left: 12px;
}
.amform-form:not(.default) .kct-on,
.amform-form:not(.default) .kct-off,
.amform-form:not(.default) .kct-handle {
  display: none;
}
.amcform-page-titles {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  overflow: hidden;
  padding: 0;
  list-style: none;
}
.amcform-title {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0 10px;
  color: #333333;
  text-align: center;
  font-size: 14px;
  line-height: 19px;
}
.amcform-title:hover {
  text-decoration: none;
}
.amcform-step {
  margin: 0 auto 20px;
  width: 38px;
  height: 38px;
  border: 1px solid #ffa500;
  border-radius: 50%;
  background-color: #ffa500;
  color: #ffffff;
  font-weight: 400;
  font-size: 14px;
  line-height: 36px;
}
.amcform-title-wrap {
  position: relative;
  flex-grow: 1;
  margin-bottom: 18px;
  min-width: 90px;
  max-width: 148px;
  text-align: center;
}
.amcform-title-wrap:before,
.amcform-title-wrap:after {
  position: absolute;
  top: 17px;
  right: 51%;
  display: block;
  width: 100%;
  height: 4px;
  background: #e3e3e3;
  content: '';
}
.amcform-title-wrap:after {
  right: auto;
  left: 50%;
  content: none;
}
.amcform-title-wrap:first-child:before,
.amcform-title-wrap:last-child:after {
  content: none;
}
.amcform-title-wrap.-done + .amcform-title-wrap:before {
  background: #92b0ff;
}
.amcform-title-wrap.ui-state-active ~ .amcform-title-wrap:before {
  background: #e3e3e3;
}
.amcform-title-wrap.-disabled {
  pointer-events: none;
}
.amcform-title-wrap.-disabled .amcform-step {
  border-color: #e3e3e3;
  background: #ffffff;
  color: #b8b8b8;
}
.amcform-title-wrap.-error .amcform-step {
  border-color: #eb5757;
  background: #eb5757 url() center center no-repeat;
  color: #fff;
  font-size: 0;
}
.amcform-title-wrap.-disabled .amcform-label {
  color: #b8b8b8;
}
.amcform-title-wrap.ui-state-active .amcform-label {
  color: #ffa500;
}
.amcform-title-wrap.-error .amcform-label {
  color: #eb5757;
}
.action.primary.amcform-next,
.action.primary.amcform-prev {
  display: inline-block;
  margin: 20px auto;
}
.action.primary.amcform-prev {
  margin-right: 15px;
}
.action.primary.amcform-submit {
  float: none;
}
.amcform-popup-block {
  z-index: 9999;
  box-sizing: border-box;
}
.amcform-popup-block .modal-title {
  padding: 0;
  border: none;
}
.amcform-popup-block .modal-inner-wrap {
  max-width: 520px;
  width: 100%;
  border: 1px solid #fff;
  border-radius: 4px;
}
.amcform-popup-block .modal-header {
  box-sizing: border-box;
  margin: 0;
  padding: 40px 10px 10px;
  width: 100%;
  border: none;
  text-align: center;
}
.amcform-popup-block .modal-title {
  font-weight: 700;
  font-size: 18px;
}
.amcform-popup-block .amcform-notice {
  display: block;
  margin: 0;
  padding: 0 0 10px;
  width: 100%;
  border-bottom: 1px solid #c1c1c1;
  text-align: center;
  word-break: break-word;
  font-weight: 400;
  font-size: 12px;
}
.amcform-popup-block .modal-footer {
  padding: 15px 15px 25px;
}
.amcform-popup-block .amcform-button {
  margin: 0 10px 0 0;
}
.amform-popup-close {
  position: absolute;
  top: 5px;
  right: 20px;
  display: inline-block;
  float: right;
  color: #aaa;
  font-weight: bold;
  font-size: 20px;
  cursor: pointer;
}
.amform-popup {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  display: none;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}
.amform-show {
  display: inline-block;
  margin: 10px;
  vertical-align: middle;
}
.amform-popup-close .amform-close {
  position: fixed;
}
.amform-content {
  position: relative;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 20px;
  max-height: 80%;
  height: auto;
  border: 1px solid #888;
  border-radius: 2%;
  background-color: #fefefe;
}
.linear-theme.rendered-form {
  max-width: 720px;
}
.linear-theme .fields {
  margin: 0 -20px;
  padding: 0 20px;
}
.linear-theme.rendered-form .form-control,
.linear-theme.rendered-form .amform-date,
.linear-theme.rendered-form .amform-time {
  position: relative;
  z-index: 1;
  padding: 0;
  min-height: 30px;
  max-width: 100%;
  width: 100%;
  border: 0;
  border-bottom: 1px solid #ccc;
  background-color: transparent;
  color: #333333;
}
.linear-theme.rendered-form .form-control:focus,
.linear-theme.rendered-form .amform-date:focus,
.linear-theme.rendered-form .amform-time:focus {
  outline: none;
  border-color: #ffa500;
  box-shadow: none;
}
.linear-theme.rendered-form .form-control:focus:-ms-input-placeholder,
.linear-theme.rendered-form .amform-date:focus:-ms-input-placeholder,
.linear-theme.rendered-form .amform-time:focus:-ms-input-placeholder {
  color: #b8b8b8;
}
.linear-theme.rendered-form .form-control:focus::placeholder,
.linear-theme.rendered-form .amform-date:focus::placeholder,
.linear-theme.rendered-form .amform-time:focus::placeholder {
  color: #b8b8b8;
}
.linear-theme.rendered-form .form-control.mage-error,
.linear-theme.rendered-form .amform-date.mage-error,
.linear-theme.rendered-form .amform-time.mage-error {
  border-color: #eb5757;
}
.linear-theme.rendered-form .form-control[multiple],
.linear-theme.rendered-form .amform-date[multiple],
.linear-theme.rendered-form .amform-time[multiple] {
  padding-top: 10px;
}
.linear-theme.rendered-form .form-control:-ms-input-placeholder,
.linear-theme.rendered-form .amform-date:-ms-input-placeholder,
.linear-theme.rendered-form .amform-time:-ms-input-placeholder {
  color: transparent;
}
.linear-theme.rendered-form .form-control::placeholder,
.linear-theme.rendered-form .amform-date::placeholder,
.linear-theme.rendered-form .amform-time::placeholder {
  color: transparent;
}
.linear-theme.rendered-form textarea.form-control {
  padding-top: 6px;
  min-height: 46px;
}
.linear-theme.rendered-form .field,
.linear-theme.rendered-form .fieldset > .field.form-group,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group {
  position: relative;
  margin-bottom: 24px;
  padding: 0 20px;
}
.linear-theme.rendered-form .field.amform-layout-two,
.linear-theme.rendered-form .fieldset > .field.form-group.amform-layout-two,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.amform-layout-two {
  margin-right: 0;
  max-width: 50%;
}
.linear-theme.rendered-form .field.amform-layout-three,
.linear-theme.rendered-form .fieldset > .field.form-group.amform-layout-three,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.amform-layout-three {
  margin-right: 0;
  max-width: 33.33333333%;
}
.linear-theme.rendered-form .field .required,
.linear-theme.rendered-form .fieldset > .field.form-group .required,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group .required {
  color: inherit;
}
.linear-theme.rendered-form .field .tooltip-element,
.linear-theme.rendered-form .fieldset > .field.form-group .tooltip-element,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group .tooltip-element {
  z-index: 2;
  background: #ffa500;
}
.linear-theme.rendered-form .field > .label,
.linear-theme.rendered-form .fieldset > .field.form-group > .label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group > .label {
  position: absolute;
  top: 6px;
  display: block;
  margin: 0;
  width: 100%;
  font-weight: 400;
  font-size: 14px;
  transition: top 0.2s ease-in-out, font-size 0.2s ease-in-out;
}
.linear-theme.rendered-form .field > .label.fb-checkbox-group-label,
.linear-theme.rendered-form .fieldset > .field.form-group > .label.fb-checkbox-group-label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group > .label.fb-checkbox-group-label,
.linear-theme.rendered-form .field > .label.fb-radio-group-label,
.linear-theme.rendered-form .fieldset > .field.form-group > .label.fb-radio-group-label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group > .label.fb-radio-group-label,
.linear-theme.rendered-form .field > .label.fb-file-label,
.linear-theme.rendered-form .fieldset > .field.form-group > .label.fb-file-label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group > .label.fb-file-label {
  position: relative;
  top: -8px;
  color: #737373;
  font-size: 10px;
  line-height: 12px;
}
.linear-theme.rendered-form .field.-active > .label,
.linear-theme.rendered-form .fieldset > .field.form-group.-active > .label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.-active > .label,
.linear-theme.rendered-form .field.-has-content > .label,
.linear-theme.rendered-form .fieldset > .field.form-group.-has-content > .label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.-has-content > .label,
.linear-theme.rendered-form .field.fb-time > .label,
.linear-theme.rendered-form .fieldset > .field.form-group.fb-time > .label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.fb-time > .label {
  top: -8px;
  color: #737373;
  font-size: 10px;
  line-height: 12px;
}
.linear-theme.rendered-form .field.-active > .label,
.linear-theme.rendered-form .fieldset > .field.form-group.-active > .label,
.linear-theme.rendered-form .fieldset > .fields > .field.form-group.-active > .label {
  color: #ffa500;
}
.linear-theme.rendered-form div.mage-error[generated] {
  margin-top: 2px;
  color: #eb5757;
  font-size: 10px;
  line-height: 12px;
}
.linear-theme.rendered-form .amform-date._has-datepicker ~ .ui-datepicker-trigger {
  margin-left: -15px;
}
.linear-theme.rendered-form .amform-date._has-datepicker ~ .ui-datepicker-trigger:before {
  width: 12px;
  height: 13px;
  background-image: url();
  content: '';
}
.linear-theme.rendered-form input[type=checkbox],
.linear-theme.rendered-form input[type=radio] {
  margin-right: 5px;
  width: 16px;
  height: 16px;
  outline: none;
}
.linear-theme.rendered-form input[type=checkbox]:focus,
.linear-theme.rendered-form input[type=radio]:focus {
  outline: none;
}
/* Pagination */
.linear-theme .amcform-page-titles {
  align-items: stretch;
  padding: 0 20px;
}
.linear-theme .amcform-step {
  display: none;
}
.linear-theme .amcform-title-wrap {
  display: block;
  flex: 1;
  margin: 0 0 16px 0;
  text-align: left;
}
.linear-theme .amcform-title-wrap:after,
.linear-theme .amcform-title-wrap:before {
  display: none;
}
.linear-theme .amcform-title-wrap.ui-state-active .amcform-title {
  border-color: #ffa500;
}
.linear-theme .amcform-title-wrap.-disabled .amcform-title {
  border-color: #e3e3e3;
}
.linear-theme .amcform-title-wrap.-error .amcform-title {
  border-color: #eb5757;
}
.linear-theme .amcform-title {
  display: block;
  margin: 0;
  padding-bottom: 7px;
  min-height: 100%;
  max-width: 100%;
  border-bottom: 7px solid #92b0ff;
  text-align: left;
}
.circle-theme.rendered-form .form-control,
.circle-theme.rendered-form .amform-date,
.circle-theme.rendered-form .amform-time {
  padding: 9px;
  min-height: 40px;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
}
.circle-theme.rendered-form .form-control:focus,
.circle-theme.rendered-form .amform-date:focus,
.circle-theme.rendered-form .amform-time:focus {
  outline: none;
  border-color: #ffa500;
  box-shadow: none;
  color: #333333;
}
.circle-theme.rendered-form .form-control.mage-error,
.circle-theme.rendered-form .amform-date.mage-error,
.circle-theme.rendered-form .amform-time.mage-error {
  border-color: #eb5757;
}
.circle-theme.rendered-form .form-control::-webkit-input-placeholder,
.circle-theme.rendered-form .amform-date::-webkit-input-placeholder,
.circle-theme.rendered-form .amform-time::-webkit-input-placeholder {
  color: #b8b8b8;
}
.circle-theme.rendered-form .form-control::-moz-placeholder,
.circle-theme.rendered-form .amform-date::-moz-placeholder,
.circle-theme.rendered-form .amform-time::-moz-placeholder {
  color: #b8b8b8;
}
.circle-theme.rendered-form .form-control:-moz-placeholder,
.circle-theme.rendered-form .amform-date:-moz-placeholder,
.circle-theme.rendered-form .amform-time:-moz-placeholder {
  color: #b8b8b8;
}
.circle-theme.rendered-form .form-control:-ms-input-placeholder,
.circle-theme.rendered-form .amform-date:-ms-input-placeholder,
.circle-theme.rendered-form .amform-time:-ms-input-placeholder {
  color: #b8b8b8;
}
.circle-theme.rendered-form input[type='file'].form-control {
  padding: 0;
  border: 0;
}
.circle-theme.rendered-form input[type=checkbox],
.circle-theme.rendered-form input[type=radio] {
  margin-right: 5px;
  width: 16px;
  height: 16px;
  outline: none;
}
.circle-theme.rendered-form input[type=checkbox]:focus,
.circle-theme.rendered-form input[type=radio]:focus {
  outline: none;
}
.circle-theme.rendered-form div.mage-error[generated] {
  position: relative;
  top: -2px;
  z-index: -1;
  margin-top: 0;
  padding: 2px 10px 0 10px;
  border-radius: 0 0 4px 4px;
  background: #eb5757;
  color: #fff;
  font-size: 10px;
  line-height: 16px;
}
.circle-theme.rendered-form .field .label,
.circle-theme.rendered-form .fieldset > .field.form-group .label,
.circle-theme.rendered-form .fieldset > .fields > .field.form-group > .label {
  font-weight: 400;
}
.circle-theme.rendered-form .required {
  color: inherit;
}
.circle-theme.rendered-form .tooltip-element {
  background: #ffa500;
}
/* Pagination */
.circle-theme .amcform-page-titles {
  align-items: center;
}
.circle-theme .amcform-title {
  display: flex;
  align-items: center;
  max-width: initial;
}
.circle-theme .amcform-step {
  margin: 0 10px 0 0;
  min-width: 38px;
  border-radius: 15px;
}
.circle-theme .amcform-label {
  text-align: left;
}
.circle-theme .amcform-title-wrap:after,
.circle-theme .amcform-title-wrap:before {
  display: none;
}
.circle-theme .amcform-title-wrap + .amcform-title-wrap {
  margin-left: 30px;
}
.circle-theme .amcform-title-wrap:nth-child(3n + 1) {
  margin-left: 0;
}
.circle-theme .amcform-title-wrap.-disabled .amcform-step {
  border-color: #bfd1ff;
  background: #bfd1ff;
  color: #fff;
}
.circle-theme .amform-form .action.primary {
  text-transform: uppercase;
  font-weight: 700;
}
.amform-body .ui-datepicker {
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.amform-body .ui-datepicker .ui-datepicker-header {
  padding: 16px 22px;
}
.amform-body .ui-datepicker .ui-datepicker-title {
  margin: 0;
  text-align: left;
  text-transform: uppercase;
  font-weight: 700;
}
.amform-body .ui-datepicker .ui-datepicker-title .ui-datepicker-month {
  margin-right: 0;
  width: auto;
}
.amform-body .ui-datepicker .ui-datepicker-title .ui-datepicker-year {
  width: 70px;
  border: 0;
}
.amform-body .ui-datepicker .ui-datepicker-title .ui-datepicker-year:focus {
  outline: none;
  box-shadow: none;
}
.amform-body .ui-datepicker .ui-datepicker-prev,
.amform-body .ui-datepicker .ui-datepicker-next {
  top: 20px;
  right: 22px;
  left: auto;
}
.amform-body .ui-datepicker .ui-datepicker-prev {
  right: 38px;
}
.amform-body .ui-datepicker .ui-datepicker-prev span.ui-icon,
.amform-body .ui-datepicker .ui-datepicker-next span.ui-icon {
  width: 7px;
  height: 7px;
  border: 0;
  border-top: 1px solid #333;
  border-left: 1px solid #333;
  transform: rotate(-45deg);
}
.amform-body .ui-datepicker .ui-datepicker-next span.ui-icon {
  transform: rotate(135deg);
}
.amform-body .ui-datepicker .ui-datepicker-calendar {
  margin-bottom: 10px;
  border: 0;
}
.amform-body .ui-datepicker .ui-datepicker-calendar th {
  border: 0;
  border-bottom: 1px solid #e3e3e3;
  background: transparent;
  color: #b8b8b8;
  text-align: center;
  font-weight: 400;
}
.amform-body .ui-datepicker .ui-datepicker-calendar td {
  padding: 0;
  border: 0;
  text-align: center;
}
.amform-body .ui-datepicker .ui-datepicker-calendar td.ui-state-disabled,
.amform-body .ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today {
  background: none;
}
.amform-body .ui-datepicker .ui-datepicker-calendar td:first-child {
  padding-left: 10px;
}
.amform-body .ui-datepicker .ui-datepicker-calendar td:last-child {
  padding-right: 10px;
}
.amform-body .ui-datepicker .ui-datepicker-calendar tr:first-child td {
  padding-top: 10px;
}
.amform-body .am-picker-year .ui-datepicker-calendar td a {
  display: block;
  padding: 0;
  width: 43px;
  height: 43px;
  border-radius: 42px;
  text-align: center;
  line-height: 42px;
}
.amform-body .am-picker-year .ui-datepicker-calendar td a.ui-state-hover {
  background: #edf4ff;
  color: #333333;
}
.amform-body .am-picker-year .ui-datepicker-calendar td a.ui-state-highlight {
  background: #e3e3e3;
}
.amform-body .am-picker-year .ui-datepicker-calendar td a.ui-state-active {
  background: #ffa500;
  color: #fff;
  font-weight: 700;
}
.am-attachments .am-fileline {
  margin-bottom: 5px;
}
.am-attachments .am-fileline .am-fileicon {
  margin-right: 10px;
  max-height: 40px;
  vertical-align: middle;
}
.am-attachments .am-fileline .am-filelink {
  line-height: 40px;
  height: 40px;
}
.am-attachments .am-fileline .am-filesize {
  font-size: 90%;
}
.amlocator-main-container {
  text-align: left;
  font-size: 1.4rem;
  color: #000;
  min-width: 50vw;
  line-height: 1.42857143;
  font-weight: 400;
}
.amlocator-main-container .amlocator-button {
  box-sizing: border-box;
  min-height: 40px;
  font-weight: inherit;
  color: #fff;
  background: #1979c3;
  border: 1px solid #1979c3;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(45, 147, 226, 0.1);
}
.amlocator-main-container .amlocator-select {
  cursor: pointer;
}
.amlocator-main-container .amlocator-block.-separator {
  box-sizing: border-box;
  margin: 20px 0;
}
.amlocator-main-container .amlocator-block.-separator > .hr {
  margin: 0;
  border-top: 1px solid #e7e7e7;
}
.amlocator-main-container .amlocator-wrapper .amlocator-schedule-container strong {
  margin-top: 0;
  margin-bottom: 0;
  line-height: 1.42857143;
}
.amlocator-search-container {
  padding: 5px 15px;
  margin-bottom: 10px;
  background: #f8f8f8;
  box-sizing: border-box;
}
@media (min-width: calc(768px + 300px)) {
  .amlocator-search-container {
    width: 33%;
  }
}
.amlocator-search-container .amlocator-title {
  display: inline-block;
  margin-bottom: 5px;
}
.amlocator-search-container .amlocator-block {
  width: 100%;
  margin-bottom: 15px;
}
.amlocator-search-container .amlocator-block.-search {
  margin-bottom: 0;
}
.amlocator-search-container .amlocator-select,
.amlocator-search-container .amlocator-text {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  width: initial;
}
.amlocator-search-container .amlocator-select {
  height: 40px;
}
.amlocator-search-container .amlocator-select.-measurement {
  min-width: inherit;
  background-color: #f8f8f8;
  height: inherit;
  line-height: 1;
  border: none;
}
.amlocator-search-container .amlocator-button.-nearby {
  width: 100%;
  margin-left: auto;
}
.amlocator-current-location .amlocator-search {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 23px;
  height: 23px;
  background: url() no-repeat center;
  background-size: contain;
  cursor: pointer;
}
.amlocator-current-location .amlocator-wrapper {
  position: relative;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  margin-top: 5px;
}
.amlocator-current-location .amlocator-text {
  box-sizing: border-box;
  width: 100%;
  height: 40px;
  padding-right: 40px;
  border: 1px solid #d7d7d7;
  border-radius: 2px;
}
.amlocator-current-location .amlocator-text:focus {
  border: 1px solid #1979c3;
  box-shadow: none;
}
.amlocator-current-location .amlocator-search:hover,
.amlocator-current-location .amlocator-text:focus + .amlocator-search {
  background: url() no-repeat center;
  background-size: contain;
}
.amlocator-current-location .amlocator-reset {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 22px;
  height: 22px;
  background: url() no-repeat center;
  cursor: pointer;
}
.amlocator-current-location .amlocator-reset.-hidden,
.amlocator-current-location .amlocator-search.-hidden {
  display: none;
}
.amlocator-search-radius .amlocator-radio {
  position: absolute;
  width: 0;
  height: 0;
  margin: 0;
  opacity: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.amlocator-search-radius .amlocator-radio:checked + .amlocator-label {
  color: #fff;
  background: #1979c3;
  box-shadow: 0 2px 4px rgba(45, 147, 226, 0.1);
}
.amlocator-search-radius .amlocator-radio:focus + .amlocator-label {
  box-shadow: 0 0 3px 1px #00699d;
}
.amlocator-search-radius .amlocator-wrapper {
  position: relative;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
}
.amlocator-search-radius .amlocator-select {
  min-width: 215px;
}
.amlocator-range-slider {
  width: 100%;
  height: 10px;
  background: #deedf8;
  border-radius: 10px;
  cursor: pointer;
}
.amlocator-range-slider .ui-slider-range {
  height: 100%;
  background: #1979c3;
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
}
.amlocator-range-slider .amlocator-handle {
  position: absolute;
  top: 50%;
  width: 14px;
  height: 14px;
  margin: 0 0 0 -7px;
  background: #1979c3;
  border-radius: 12px;
  box-shadow: 0 2px 3px rgba(20, 72, 112, 0.5);
  transform: translateY(-50%);
  cursor: pointer;
}
.amlocator-range-slider .amlocator-handle:active,
.amlocator-range-slider .amlocator-handle:focus,
.amlocator-range-slider .amlocator-handle:hover {
  background: #4da1e2;
}
.amlocator-range-slider .amlocator-tooltip {
  position: absolute;
  top: -7px;
  left: 50%;
  padding: 2px 5px;
  font-size: 12px;
  color: #fff;
  white-space: nowrap;
  background: #1979c3;
  border-radius: 2px;
  transform: translate(-50%, -100%);
}
.amlocator-range-slider .amlocator-tooltip:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 6px;
  height: 6px;
  background: #1979c3;
  transform: translate(-50%, 50%) rotate(45deg);
}
.amlocator-filters-container {
  margin-bottom: 10px;
  background: #f8f8f8;
}
.amlocator-filters-container .amlocator-title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 5px 15px;
  font-weight: 600;
  font-size: 16px;
  color: #000;
  cursor: pointer;
}
.amlocator-filters-container .amlocator-content {
  transition: all 0.3s ease;
}
.amlocator-filters-container .amlocator-hidden-filter {
  display: none;
}
.amlocator-filters-container .amlocator-actions {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 5px 15px;
  font-size: 12px;
}
.amlocator-filters-container .amlocator-clear {
  color: #1979c3;
  cursor: pointer;
}
.amlocator-filters-container .amlocator-button {
  min-height: 25px;
  margin-left: 25px;
  padding: 0 20px;
  border: none;
  line-height: unset;
  box-shadow: none;
}
.amlocator-filters-container .amlocator-button:hover {
  color: #fff;
  background: #1979c3b3;
  border: none;
}
.amlocator-attribute-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 8px 15px;
}
.amlocator-attribute-wrapper:nth-of-type(even) {
  background: #e7e7e7;
}
.amlocator-attribute-wrapper .amlocator-label {
  box-sizing: border-box;
  width: 40%;
  padding-right: 5px;
  word-wrap: break-word;
}
.amlocator-attribute-wrapper .amlocator-input {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  width: 60%;
}
.amlocator-attribute-wrapper .amlocator-input .chosen-container {
  width: 100% !important;
}
.amlocator-attribute-wrapper .amlocator-select,
.amlocator-attribute-wrapper .chosen-choices {
  height: inherit;
  max-height: 80px;
  padding: 9px 25px 9px 10px;
  line-height: 1;
  border-color: #ccc;
}
.amlocator-attribute-wrapper .chosen-container {
  height: inherit;
  font-size: inherit;
}
.amlocator-attribute-wrapper .chosen-container .chosen-choices {
  height: inherit;
  min-height: 35px;
  overflow: auto;
  padding: 5px;
}
.amlocator-attribute-wrapper .chosen-container .chosen-results li.highlighted {
  background: #1979c3;
}
.amlocator-attribute-wrapper .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  top: 50%;
  right: 0;
  width: 8px;
  height: 8px;
  margin: 0 5px 0 0;
  background: url() no-repeat center !important;
  background-size: contain !important;
  transform: translateY(-50%);
}
.amlocator-attribute-wrapper .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
  background-position: initial;
}
.amlocator-attribute-wrapper .chosen-container-multi .chosen-choices li.search-field input[type=text] {
  height: inherit;
  margin: 3px 0;
}
.amlocator-attribute-wrapper .chosen-container-multi .chosen-choices li.search-choice {
  margin: 0 5px 0 0;
  padding: 5px 18px 5px 5px;
  color: #fff;
  background: #1979c3;
  border: none;
  box-shadow: none;
}
.amlocator-map-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.amlocator-map-container > .amlocator-block {
  width: 100%;
}
.amlocator-map-container .amlocator-map {
  width: 100%;
  height: 300px;
}
.amlocator-arrow {
  position: relative;
  display: inline-block;
  width: 14px;
  min-width: 14px;
  height: 8px;
  margin-left: auto;
}
.amlocator-arrow:after,
.amlocator-arrow:before {
  content: "";
  position: absolute;
  top: 3px;
  display: inline-block;
  width: 9px;
  height: 2px;
  background-color: #363636;
  transition: all 0.2s ease;
}
.amlocator-arrow:before {
  left: 0;
}
.amlocator-arrow:after {
  right: 0;
}
.amlocator-arrow.-down:before,
.amlocator-arrow:after {
  transform: rotate(45deg);
}
.amlocator-arrow.-down:after,
.amlocator-arrow:before {
  transform: rotate(-45deg);
}
.amlocator-store-list {
  order: 1;
  overflow: auto;
}
.amlocator-store-list .amlocator-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 500px;
}
.amlocator-stores-wrapper {
  margin-bottom: 10px;
}
.amlocator-store-desc {
  display: block;
  margin-bottom: 15px;
  overflow: auto;
  font-size: 14px;
  background: #f6f6f6;
  cursor: pointer;
}
.amlocator-store-desc:not(:first-of-type) {
  margin-top: 15px;
}
.amlocator-store-desc .amlocator-title {
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 16px;
}
.amlocator-store-desc .amlocator-title .amlocator-link {
  word-break: break-all;
  word-wrap: break-word;
  color: #000;
}
.amlocator-store-desc .amlocator-block {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 15px;
}
.amlocator-store-desc .amlocator-image {
  width: 150px;
  min-width: 150px;
  height: 150px;
  margin-right: 15px;
  background-position: center;
  background-size: cover;
}
.amlocator-store-desc.-active {
  color: #fff;
  background: #1979c3;
}
.amlocator-store-desc.-active .amlocator-title .amlocator-link {
  color: #fff;
}
.amlocator-store-desc.-active .amlocator-today {
  color: #000;
  background: #9dd4ff;
}
.amlocator-description {
  word-break: break-word;
}
.amlocator-schedule-container .amlocator-today {
  position: relative;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-top: 5px;
  padding: 5px 15px 5px 35px;
  background: #dfdfdf;
}
.amlocator-schedule-container .amlocator-today:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 15px;
  width: 14px;
  height: 14px;
  background: url() no-repeat center;
  background-size: contain;
}
.amlocator-schedule-container .amlocator-today .amlocator-time {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  white-space: nowrap;
}
.amlocator-schedule-container .amlocator-arrow {
  margin: 6px 0 0 15px;
}
.amlocator-schedule-container .amlocator-week {
  display: none;
  margin: 0 20px;
}
.amlocator-schedule-table .amlocator-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-bottom: 15px;
}
.amlocator-schedule-table .amlocator-cell {
  width: 50%;
  box-sizing: border-box;
}
.amlocator-schedule-table .amlocator-cell.-day {
  padding-left: 15px;
}
.amlocator-schedule-table .amlocator-cell.-time {
  white-space: nowrap;
  text-align: right;
  padding-right: 8%;
}
.amlocator-pager-container {
  margin-top: auto;
}
.amlocator-pager-container .pages {
  text-align: right;
}
.amlocator-pager-container .items {
  padding: 0;
}
.amlocator-pager-container .pages .page {
  padding: 8px 10px;
  font-weight: normal;
  line-height: 1;
  color: #000;
  background: #f8f8f8;
}
.amlocator-pager-container .pages a.page {
  color: #000;
}
.amlocator-pager-container .pages .item {
  position: relative;
  margin: 0;
}
.amlocator-pager-container .pages .item:not(:last-of-type) {
  margin-right: 10px;
}
.amlocator-pager-container .pages .current .page,
.amlocator-pager-container .pages .page:hover {
  color: #fff;
  background: #1979c3;
}
.amlocator-pager-container .pages a.action {
  margin: 0;
  background: #f8f8f8;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.amlocator-pager-container .pages a.action:hover {
  background: #1979c3;
}
.amlocator-pager-container .pages .items a.action:before {
  font-size: 14px;
  color: #000;
}
.amlocator-pager-container .pages .items a.action:hover:before {
  color: #fff;
}
.amlocator-map .amlocator-image img {
  max-width: 150px;
}
.amlocator-info-popup {
  width: 250px;
}
.amlocator-info-popup .amlocator-name {
  margin-top: 5px;
}
.amlocator-info-popup .amlocator-image {
  display: block;
  clear: both;
  width: 100px;
  margin-bottom: 10px;
}
.amlocator-index-index {
  overflow-x: hidden;
}
.map-home {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .map-home {
    flex-direction: row;
    justify-content: space-between;
  }
}
.map-map-home,
.map-text-home {
  width: 100% !important;
  display: grid;
  transform: unset !important;
}
@media (min-width: 768px) {
  .map-map-home,
  .map-text-home {
    width: 49% !important;
  }
}
.map-map-home .amlocator-block.-map,
.map-text-home .amlocator-block.-map {
  height: 100%;
}
.map-map-home .amlocator-main-container,
.map-text-home .amlocator-main-container {
  height: 50vh;
}
.map-map-home {
  margin-bottom: 3rem;
}
.amlocator-map-container {
  height: unset !important;
  width: 100%;
}
.amlocator-block.-map {
  padding-left: 0 !important;
  display: inline-grid;
  width: 100%;
}
@media (min-width: calc(768px + 300px)) {
  .amlocator-block.-map {
    width: 66%;
  }
}
.amlocator-location-view .amlocator-block.-map,
.cms-home .amlocator-block.-map {
  width: 100%;
}
.amlocator-main-container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  min-width: unset !important;
}
.amlocator-index-index .amlocator-block.-map {
  width: 100%;
  max-height: 800px;
  height: 100%;
  display: block;
  padding-left: 15px;
}
@media (min-width: 768px) {
  .amlocator-index-index .amlocator-block.-map {
    width: 66% !important;
  }
}
.amstars-rating-container {
  width: 160px;
  height: 27px;
  margin-bottom: 5px;
  background: url();
  overflow: hidden;
}
.amstars-rating-container.-small {
  width: 107px;
  height: 18px;
  background: url();
}
.amstars-rating-container.-small .amstars-stars {
  background: url();
}
.amstars-rating-container.-main-page {
  margin: 0px 10px;
}
.amstars-rating-container .amstars-stars {
  height: 100%;
  background: url();
}
.amlocator-description-grey {
  word-break: break-word;
  padding: 0 15px;
  background: #fbfbfb;
}
.amlocator-location-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.amlocator-location-container .amlocator-column,
.amlocator-location-container .amlocator-block {
  box-sizing: border-box;
  width: 100%;
}
.amlocator-location-container .amlocator-column.-right {
  display: none;
}
.amlocator-location-container .amlocator-column > .amlocator-block {
  padding: 0 15px;
}
.amlocator-location-container .amlocator-block.-route {
  padding: 20px 15px 25px;
}
.amlocator-location-container .amlocator-block.-map {
  height: 170px;
  margin-bottom: 15px;
}
.amlocator-location-container .amlocator-block.-separator {
  box-sizing: border-box;
  margin: 15px 0;
}
.amlocator-location-container .amlocator-block.-separator > .hr {
  margin: 0;
  border-top: 1px solid #d2dde5;
}
.amlocator-location-container .amlocator-block > .amlocator-title {
  display: block;
  margin-bottom: 15px;
  font-weight: bold;
}
.amlocator-location-container .amlocator-directions-container {
  max-height: 500px;
  overflow: auto !important;
}
.amlocator-location-container .amlocator-text.-bold {
  font-weight: 600;
}
.amlocator-location-container .amlocator-button {
  box-sizing: border-box;
  min-height: 40px;
  font-weight: inherit;
  color: #fff;
  background: #1979c3;
  border: 1px solid #1979c3;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(45, 147, 226, 0.1);
}
.amlocator-location-container .amlocator-button:hover {
  background-color: #1c87da;
}
.amlocator-route-creator {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  background: #1979c3;
}
.amlocator-route-creator .amlocator-modes {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.amlocator-route-creator .amlocator-mode,
.amlocator-route-creator .amlocator-swap {
  display: none;
}
.amlocator-route-creator .amlocator-mode + .amlocator-label {
  display: block;
  width: 35px;
  height: 35px;
  border-radius: 20px;
  cursor: pointer;
  opacity: .3;
  transition: all .3s ease;
}
.amlocator-route-creator .amlocator-mode:checked + .amlocator-label,
.amlocator-route-creator .amlocator-mode + .amlocator-label:hover {
  background-color: #2d93e2;
  opacity: 1;
}
.amlocator-route-creator .amlocator-label:not(:last-of-type) {
  margin-right: 5px;
}
.amlocator-route-creator .amlocator-label.-driving {
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/car.svg") no-repeat center;
}
.amlocator-route-creator .amlocator-label.-transit {
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/transit.svg") no-repeat center;
}
.amlocator-route-creator .amlocator-label.-walking {
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/walking.svg") no-repeat center;
}
.amlocator-route-creator .amlocator-label.-bicycling {
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/bicycling.svg") no-repeat center;
}
.amlocator-route-creator .amlocator-addresses {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  margin-top: 10px;
}
.amlocator-route-creator .amlocator-inputs {
  flex: 1;
  margin: 0 25px;
}
.amlocator-route-creator .amlocator-address {
  height: 35px;
  border: none;
}
.amlocator-route-creator .amlocator-address.-end {
  color: #707070;
  background: #f2f2f2;
}
.amlocator-route-creator .amlocator-address:not(:last-of-type) {
  margin-bottom: 15px;
}
.amlocator-route-creator .amlocator-swap + .amlocator-label {
  display: block;
  width: 20px;
  height: 33px;
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/swap.svg") no-repeat center;
  cursor: pointer;
  opacity: 0.3;
  transition: all 0.3s ease;
}
.amlocator-route-creator .amlocator-swap + .amlocator-label:hover {
  opacity: 1;
}
.amlocator-route-icon {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  width: 13px;
  height: 65px;
}
.amlocator-route-icon .amlocator-icon {
  box-sizing: border-box;
}
.amlocator-route-icon .amlocator-icon.-start {
  width: 12px;
  height: 12px;
  border: 3px solid #fff;
  border-radius: 10px;
}
.amlocator-route-icon .amlocator-icon.-dot {
  width: 4px;
  height: 4px;
  background: #2d93e2;
  border-radius: 10px;
}
.amlocator-route-icon .amlocator-icon.-end {
  width: 13px;
  height: 18px;
  background: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/destination.svg") no-repeat center;
}
.amlocator-collapse-title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 5px 0 10px 0;
  font-weight: 600;
  font-size: 16px;
  color: #000;
  cursor: pointer;
  box-sizing: border-box;
}
.amlocator-directions-container table.adp-placemark {
  color: #fff;
  background: #1978c3;
}
.amlocator-directions-container td.adp-text {
  font-weight: 600;
  vertical-align: middle;
}
.amlocator-location-info {
  box-sizing: border-box;
  padding: 15px;
}
.amlocator-location-info .amlocator-block {
  margin-bottom: 10px;
}
.amlocator-location-info .amlocator-link {
  cursor: pointer;
  color: #000;
}
.amlocator-location-info .amlocator-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 15px;
  vertical-align: middle;
  background-color: #1979c3;
  border-radius: 10px;
}
.amlocator-location-info .amlocator-icon.-website {
  background-image: url();
  background-repeat: no-repeat;
  background-position: center;
}
.amlocator-location-info .amlocator-icon.-phone {
  background-image: url();
  background-repeat: no-repeat;
  background-position: center;
}
.amlocator-location-info .amlocator-icon.-email {
  background-image: url();
  background-repeat: no-repeat;
  background-position: center;
}
.amlocator-location-container .amlocator-schedule-container .amlocator-today {
  padding-right: 0;
  padding-left: 30px;
  background: none;
  cursor: pointer;
}
.amlocator-location-container .amlocator-schedule-container .amlocator-today:before {
  top: 5px;
  left: 0;
  width: 20px;
  height: 20px;
  background: url() no-repeat center;
}
.amlocator-location-container .amlocator-schedule-table .amlocator-cell.-day {
  padding-left: 10px;
}
.amlocator-location-container .amlocator-schedule-table .amlocator-cell.-time {
  padding-right: 8px;
}
.amlocator-location-gallery {
  padding: 0 15px;
}
.amlocator-location-gallery > .amlocator-wrapper {
  height: 100px;
  padding: 0 25px;
}
.amlocator-location-gallery .amlocator-link {
  height: 100px;
  text-align: center;
}
.amlocator-location-gallery .amlocator-image {
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.amlocator-location-gallery .amlocator-wrapper .slick-list .slick-track .slick-slide {
  margin-right: 3px;
  display: inline-block;
}
.fancybox-button,
.fancybox-button:hover {
  box-shadow: none !important;
}
.amlocator-location-reviews {
  max-height: 500px;
  overflow: auto;
}
.amlocator-location-reviews .amlocator-items {
  margin: 0;
  padding: 0;
  list-style: none none;
}
.amlocator-reviews-general {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
}
.amlocator-reviews-general .amlocator-value {
  margin-right: 10px;
  font-weight: 400;
  font-size: 50px;
}
.amlocator-reviews-general .amlocator-wrapper {
  margin-right: 20px;
}
.amlocator-location-review {
  padding: 10px 0 0;
}
.amlocator-location-review .amlocator-name {
  font-weight: bold;
}
.amlocator-location-review .amlocator-message {
  max-height: 1000px;
  margin-top: 10px;
  overflow: auto;
  word-wrap: break-word;
  word-break: break-word;
  transition: all .3s ease;
}
.amlocator-location-review .amlocator-message.-collapsed {
  max-height: 60px;
  overflow: hidden;
}
.amlocator-location-review .amlocator-footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.amlocator-location-review .amlocator-link.-full,
.amlocator-location-review .amlocator-link.-full:visited,
.amlocator-location-review .amlocator-link.-full:active,
.amlocator-location-review .amlocator-link.-full:hover {
  position: relative;
  margin-right: 14px;
  font-size: 12px;
  color: #6b8fab;
  cursor: pointer;
}
.amlocator-location-review .amlocator-date {
  margin-left: auto;
  font-size: 12px;
  color: #c4c4c4;
  margin-right: 5px;
}
.amlocator-attributes-container {
  padding: 30px 20px;
  display: none;
}
.amlocator-location-attribute:not(:first-of-type) {
  margin-top: 25px;
}
.amlocator-location-attribute .amlocator-label {
  margin-right: 10px;
}
.amlocator-location-attribute .amlocator-values {
  display: inline-block;
}
.amlocator-location-attribute .amlocator-value {
  display: inline-block;
  margin: 0 10px 5px 0;
  padding: 5px 10px;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(45, 147, 226, 0.1);
}
.amlocator-location-attribute .amlocator-value.-multiselect {
  color: #363636;
  background: #fff;
}
.hidden {
  display: none;
}
.loading-mask {
  z-index: 100001 !important;
}
.ukrywane {
  display: none;
}
.amlocator-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  background: #00000047;
}
.amlocator-review-popup {
  position: relative;
  box-sizing: border-box;
  width: 80vw;
  min-width: 300px;
  max-width: 500px;
  padding: 30px;
  background: #fff;
  border-radius: 10px;
}
.amlocator-review-popup .amlocator-header {
  margin-bottom: 10px;
  font-size: 16px;
}
.amlocator-review-popup .amlocator-name {
  font-weight: 600;
  word-break: break-all;
  word-wrap: break-word;
}
.amlocator-review-popup .amlocator-close {
  position: absolute;
  top: 10px;
  right: 10px;
  display: block;
  padding: 10px;
  background: url() no-repeat center;
  background-size: 70%;
  cursor: pointer;
}
.amlocator-review-popup .amlocator-close:hover {
  background: url() no-repeat center;
  background-size: 70%;
}
.amlocator-review-form .review-field-rating .control {
  margin: 5px 0 40px;
}
.amlocator-review-form .review-field-rating .label {
  font-weight: 400;
  color: #3f3f3f;
}
.amlocator-review-form .review-control-vote:before {
  content: '';
  width: 165px;
  height: 27px;
  background: url();
}
.amlocator-review-form .review-control-vote label:before {
  content: '';
  display: inline-block;
  height: 27px;
  background: url();
}
.amlocator-review-form .review-control-vote input[type="radio"]:not(:checked) + label:hover:before {
  opacity: 1;
  background: url();
  cursor: pointer;
}
.amlocator-review-form .review-control-vote .rating-5:before {
  width: 165px;
}
.amlocator-review-form .review-control-vote .rating-4:before {
  width: 132px;
}
.amlocator-review-form .review-control-vote .rating-3:before {
  width: 99px;
}
.amlocator-review-form .review-control-vote .rating-2:before {
  width: 66px;
}
.amlocator-review-form .review-control-vote .rating-1:before {
  width: 33px;
}
.amlocator-review-form.review-form .action.submit.primary {
  width: inherit;
  min-height: 40px;
  color: #fff;
  background: #1979c3;
  border: 0;
  border-radius: 0;
}
.amlocator-review-form.review-form .action.submit.primary:hover {
  background: #1c87da;
}
.amlocator-review-form .label-gdpr.amreview-checboxlabel span {
  color: #e02b27;
  font-size: 1.2rem;
  margin: 0 0 0 5px;
}
.amlocator-review-form .field.review-field-ratings .label {
  margin: 10px 15px 0 0;
  vertical-align: top;
}
.amlocator-review-form .field.review-field-ratings .control {
  display: inline-block;
  width: 100%;
  vertical-align: top;
}
.price-container .price {
  font-size: 1.4rem;
}
.price-container .price-including-tax + .price-excluding-tax,
.price-container .weee {
  margin-top: 5px;
}
.price-container .price-including-tax + .price-excluding-tax,
.price-container .weee,
.price-container .price-including-tax + .price-excluding-tax .price,
.price-container .weee .price,
.price-container .weee + .price-excluding-tax:before,
.price-container .weee + .price-excluding-tax .price {
  font-size: 1.1rem;
}
.price-container .weee:before {
  content: '(' attr(data-label) ': ';
}
.price-container .weee:after {
  content: ')';
}
.price-container .weee + .price-excluding-tax:before {
  content: attr(data-label) ': ';
}
.old-price,
.old.price {
  text-decoration: line-through;
}
.prices-tier .price-container .price-including-tax + .price-excluding-tax:before {
  content: '(' attr(data-label) ': ';
}
.prices-tier .price-container .price-including-tax + .price-excluding-tax:last-child:after {
  content: ')';
}
.prices-tier .price-container .weee[data-label] {
  display: inline;
}
.prices-tier .price-container .weee[data-label] .price {
  font-size: 1.1rem;
}
.prices-tier .price-container .weee[data-label]:before {
  content: ' +' attr(data-label) ': ';
}
.actual-price {
  font-weight: 700;
}
.product-image-container {
  display: inline-block;
  max-width: 100%;
}
.product-image-wrapper {
  display: block;
  height: 0;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.product-image-photo {
  bottom: 0;
  display: block;
  height: auto;
  left: 0;
  margin: auto;
  max-width: 100%;
  position: absolute;
  right: 0;
  top: 0;
}
.product.media .placeholder .photo.container {
  max-width: 100%;
}
.product.media .notice {
  color: #7d7d7d;
  font-size: 1.2rem;
  margin: 10px 0;
}
.product.media .product.thumbs {
  margin: 20px 0 30px;
}
.product.media .items.thumbs {
  margin: 0;
  padding: 0;
  list-style: none none;
}
.product.media .items.thumbs > li {
  display: inline-block;
  vertical-align: top;
}
.product.media .items.thumbs .active {
  display: block;
  line-height: 1;
}
/**
 * Removing .block.newsletter styles for creativeshop.
 */
.payment-methods .payment-method .radio {
  margin-top: 0;
  vertical-align: middle;
}
.checkout-payment-method .payment-method-przelewy24 .payment-method-content {
  padding-left: 0;
}
.payment-method-icon-przelewy24 {
  background-color: #f5f5f54d;
  border: 2px solid #f5f5f5;
  height: 24px;
  margin-left: 15px;
  padding: 11px 8px;
  vertical-align: middle;
  width: auto;
}
.payment-method-icon-przelewy24_card {
  height: 14px;
  padding: 16px 6px;
}
.payment-method-icon-przelewy24_blik {
  height: 22px;
  padding: 12px 21px;
}
.payment-method-icon-przelewy24_google_pay {
  height: 28px;
  padding: 9px 21px;
}
.payment-method-label-przelewy24 {
  display: inline-block;
  vertical-align: middle;
}
.przelewy24-payment-method-description {
  display: inline-block;
  margin-left: 20px;
  vertical-align: middle;
}
.przelewy24-payment-method-title {
  color: #4c4c4c;
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: 20px;
  margin-bottom: 6px;
}
.przelewy24-payment-method-subtitle {
  color: #4c4c4c;
  display: block;
  font-size: 13px;
  line-height: 18px;
}
.payment-method-icon-przelewy24_apple_pay {
  height: 28px;
  padding: 9px 21px;
}
.payment-method-przelewy24__title {
  font-weight: 700;
  margin-bottom: 20px;
}
.payment-method-przelewy24__methods {
  display: flex;
  flex-flow: row wrap;
  margin-bottom: 30px;
  width: 100%;
}
.payment-method-przelewy24__method {
  cursor: pointer;
  display: flex;
  flex: 0 0 125px;
  height: 84px;
  padding: 3px;
}
.payment-method-przelewy24__method:hover .payment-method-przelewy24__method-wrapper,
.payment-method-przelewy24__method--selected .payment-method-przelewy24__method-wrapper {
  background-color: #23aa4a1f;
  border-color: #23aa4a91;
}
.payment-method-przelewy24__method-wrapper {
  background-color: #f5f5f54d;
  border: 2px solid #f5f5f5;
  display: flex;
  padding: 5px 20px;
}
.payment-method-przelewy24__method-img {
  display: block;
  height: auto;
  margin: auto;
  max-height: 100%;
  min-width: 81px;
  width: 100%;
}
.payment-method-przelewy24__method--divider {
  flex: 0 0 100%;
  order: -1;
}
.payment-method-przelewy24--standalone .payment-method-icon-przelewy24 {
  width: 69px;
}
.payment-method-przelewy24_card .checkout-agreements-block {
  margin-top: 2rem;
}
.P24FormContainer-fake {
  position: relative;
}
.P24FormContainer-fake .przelewy24-pay-with-card-wrapper {
  background: rgba(255, 255, 255, 0.5);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.P24FormContainer-fake .przelewy24-pay-with-card-wrapper > .przelewy24-pay-with-card {
  font-size: 1.8rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}
#P24FormContainer > a {
  font-size: 1.8rem;
}
#P24FormContainer > a:hover {
  text-decoration: none;
}
#P24FormContainer > form,
.P24FormContainer-fake > form {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin: 0 auto;
}
#P24FormContainer > form > p,
.P24FormContainer-fake > form > p {
  align-items: center;
  color: #333333;
  display: flex;
  flex: 0 0 100%;
  margin-bottom: 10px;
  max-width: 100%;
  order: 10;
  padding: 0;
}
#P24FormContainer > form > p:nth-of-type(3),
.P24FormContainer-fake > form > p:nth-of-type(3),
#P24FormContainer > form > p:nth-of-type(4),
.P24FormContainer-fake > form > p:nth-of-type(4) {
  flex: 0 0 100%;
  max-width: 100%;
}
@media (min-width: 1024px) {
  #P24FormContainer > form > p:nth-of-type(3),
  .P24FormContainer-fake > form > p:nth-of-type(3),
  #P24FormContainer > form > p:nth-of-type(4),
  .P24FormContainer-fake > form > p:nth-of-type(4) {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media (min-width: 1024px) {
  #P24FormContainer > form > p:nth-of-type(4) label,
  .P24FormContainer-fake > form > p:nth-of-type(4) label {
    margin-left: auto;
  }
}
#P24FormContainer > form label,
.P24FormContainer-fake > form label {
  padding: 6px 15px 0 0;
  text-align: right;
  flex: 0 0 150px;
  white-space: nowrap;
  width: 150px;
}
#P24FormContainer > form input,
.P24FormContainer-fake > form input {
  background-color: #f5f5f54d;
  border: 2px solid #f5f5f5;
}
#P24FormContainer > form input.P24_input_error,
.P24FormContainer-fake > form input.P24_input_error {
  border-color: #ed8380;
}
#P24FormContainer > form input#P24_cardCVV,
.P24FormContainer-fake > form input#P24_cardCVV {
  max-width: 60px;
  text-align: center;
}
#P24FormContainer > form input#P24_expMonth,
.P24FormContainer-fake > form input#P24_expMonth,
#P24FormContainer > form input#P24_expYear,
.P24FormContainer-fake > form input#P24_expYear {
  flex: 0 0 60px;
  text-align: center;
}
#P24FormContainer > form input#P24_expMonth,
.P24FormContainer-fake > form input#P24_expMonth {
  margin-right: 5px;
}
#P24FormContainer > form input#P24_expYear,
.P24FormContainer-fake > form input#P24_expYear {
  margin-left: 5px;
}
#P24FormContainer > form > button,
.P24FormContainer-fake > form > button {
  font-size: 1.8rem;
  order: 30;
}
.blik-code-fieldset .control {
  max-width: 95px;
  position: relative;
}
.blik-code-fieldset .control > input {
  background-color: #f5f5f54d;
  border: 2px solid #f5f5f5;
  box-shadow: none;
  letter-spacing: 5px;
  padding: 0 9px 0 7px;
}
.blik-code-fieldset .control > input:focus {
  outline: 0;
}
.blik-code-fieldset .control .blik-placeholder-element {
  background: #333333;
  bottom: 5px;
  height: 1px;
  position: absolute;
  width: 10px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(6) {
  left: 73px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(5) {
  left: 60px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(4) {
  left: 47px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(3) {
  left: 34px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(2) {
  left: 21px;
}
.blik-code-fieldset .control .blik-placeholder-element:nth-child(1) {
  left: 8px;
}
.blik-token-image {
  vertical-align: middle;
}
.table-credit-cards .card-type--przelewy24,
.table-credit-cards .col--przelewy24-blik {
  position: relative;
}
.table-credit-cards .card-type--przelewy24::after,
.table-credit-cards .col--przelewy24-blik::after {
  background: url('../../frontend/Creativestyle/theme-tuplex/pl_PL/PayPro_Przelewy24/images/logo.svg') no-repeat center;
  bottom: 4px;
  content: '';
  height: 14px;
  left: 4px;
  opacity: .5;
  position: absolute;
  width: 40px;
}
.przelewy24-apple-pay-button {
  -apple-pay-button-style: black;
  -apple-pay-button-type: buy;
  -webkit-appearance: -apple-pay-button;
  display: inline-block;
}
.block-product-link.widget,
.block-category-link.widget {
  display: block;
  margin-bottom: 20px;
}
.block-product-link-inline.widget {
  margin: 0;
}
.block.widget .products-grid .product-item {
  margin-left: 2%;
  width: calc((100% - 2%) / 2);
}
.block.widget .products-grid .product-item:nth-child(2n + 1) {
  margin-left: 0;
}
.block.widget .product-item-info {
  width: auto;
}
.block.widget .pager {
  padding: 0;
}
.block.widget .pager .toolbar-amount {
  float: none;
  font-size: 1.2rem;
}
.block.widget .pager .pages-item-previous {
  padding-left: 0;
}
.block.widget .pager .pages-item-next {
  position: relative;
}
.block.widget .pager .items {
  white-space: nowrap;
}
.block-static-block.widget,
.block-cms-link.widget {
  margin-bottom: 20px;
}
.links .block-static-block.widget,
.links .block-cms-link.widget {
  margin-bottom: 0;
}
.block-cms-link-inline.widget {
  margin: 0;
}
.block-wishlist-search .form-wishlist-search {
  margin: 20px 0 0;
}
.block-cms-hierarchy-link.widget {
  display: block;
  margin-bottom: 20px;
}
.block-cms-hierarchy-link-inline.widget {
  margin: 0;
}
@media only screen and (max-width: 768px) {
  .abs-button-responsive-smaller {
    width: 100%;
  }
  .abs-visually-hidden-mobile-m {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  .abs-add-clearfix-mobile-m:before,
  .abs-add-clearfix-mobile-m:after {
    content: '';
    display: table;
  }
  .abs-add-clearfix-mobile-m:after {
    clear: both;
  }
  .abs-icon-add-mobile {
    display: block;
    text-decoration: none;
  }
  .abs-icon-add-mobile:before {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 10px;
    line-height: 10px;
    color: inherit;
    content: '\e61c';
    font-family: 'icons-blank-theme';
    margin: 0 5px 0 0;
    vertical-align: middle;
    display: inline-block;
    font-weight: normal;
    overflow: hidden;
    speak: none;
    text-align: center;
  }
  .abs-toggling-title-mobile {
    border-bottom: 1px solid #d1d1d1;
    border-top: 1px solid #d1d1d1;
    cursor: pointer;
    margin-bottom: 0;
    padding: 10px 40px 10px 15px;
    position: relative;
    display: block;
    text-decoration: none;
  }
  .abs-toggling-title-mobile:after {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 28px;
    line-height: inherit;
    color: inherit;
    content: '\e622';
    font-family: 'icons-blank-theme';
    vertical-align: middle;
    display: inline-block;
    font-weight: normal;
    overflow: hidden;
    speak: none;
    text-align: center;
  }
  .abs-toggling-title-mobile:after {
    position: absolute;
    right: 10px;
    top: 0;
  }
  .abs-toggling-title-mobile.active:after {
    content: '\e621';
  }
  .abs-pager-toolbar-mobile .toolbar-amount,
  .abs-pager-toolbar-mobile .limiter,
  .abs-pager-toolbar-mobile .pages {
    float: none;
    margin-bottom: 25px;
  }
  .abs-shopping-cart-items-mobile .actions {
    text-align: center;
  }
  .abs-shopping-cart-items-mobile .action.update,
  .abs-shopping-cart-items-mobile .action.continue,
  .abs-shopping-cart-items-mobile .action.clear {
    margin: 0 auto 10px;
  }
  .abs-shopping-cart-items-mobile .action.update,
  .abs-shopping-cart-items-mobile .action.clear {
    display: block;
  }
  .abs-checkout-tooltip-content-position-top-mobile {
    right: 0;
    top: 0;
    left: auto;
  }
  .abs-checkout-tooltip-content-position-top-mobile:before,
  .abs-checkout-tooltip-content-position-top-mobile:after {
    border: 1.4rem solid transparent;
    height: 0;
    width: 0;
    margin-top: 0;
    right: 10px;
    left: auto;
    top: 0;
  }
  .abs-checkout-tooltip-content-position-top-mobile:before {
    border-bottom-color: #ffffff;
  }
  .abs-checkout-tooltip-content-position-top-mobile:after {
    border-bottom-color: #ffffff;
    top: 1px;
  }
  .navigation,
  .breadcrumbs,
  .page-header .header.panel,
  .header.content,
  .page-main,
  .page-wrapper > .widget,
  .page-wrapper > .page-bottom,
  .block.category.event,
  .top-container {
    padding-left: 15px;
    padding-right: 15px;
  }
  .account .page-main,
  .cms-privacy-policy .page-main {
    padding-top: 41px;
    position: relative;
  }
  .modal-popup.modal-slide {
    left: 44px;
    z-index: 900;
  }
  .modal-popup.modal-slide._show .modal-inner-wrap {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  .modal-popup.modal-slide .modal-inner-wrap {
    height: 100%;
    overflow-y: auto;
    position: static;
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    -webkit-transition: -webkit-transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out;
    width: auto;
  }
  .modal-popup.modal-slide .modal-inner-wrap {
    margin: 0;
    max-height: 90vh;
    /** iOS webkit fix height problem when added long content **/
  }
  .custom-slide {
    bottom: 0;
    left: 0;
    min-width: 0;
    position: fixed;
    right: 0;
    top: 0;
    visibility: hidden;
    opacity: 0;
    -webkit-transition: visibility 0s .3s, opacity .3s ease;
    transition: visibility 0s .3s, opacity .3s ease;
    left: 44px;
    z-index: 900;
  }
  .custom-slide._show {
    visibility: visible;
    opacity: 1;
    -webkit-transition: opacity .3s ease;
    transition: opacity .3s ease;
  }
  .custom-slide._show .modal-inner-wrap {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
  .custom-slide .modal-inner-wrap {
    background-color: #ffffff;
    box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);
    opacity: 1;
    pointer-events: auto;
  }
  .custom-slide._show .modal-inner-wrap {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  .custom-slide .modal-inner-wrap {
    height: 100%;
    overflow-y: auto;
    position: static;
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    -webkit-transition: -webkit-transform 0.3s ease-in-out;
    transition: transform 0.3s ease-in-out;
    width: auto;
  }
  .custom-slide._show {
    -webkit-overflow-scrolling: touch;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .custom-slide .modal-inner-wrap {
    background-color: #f4f4f4;
    box-sizing: border-box;
    height: auto;
    min-height: 100%;
  }
  body._has-modal-custom {
    height: 100vh;
    overflow: hidden;
    width: 100vw;
  }
  body._has-modal-custom .modal-custom-overlay {
    background-color: rgba(51, 51, 51, 0.55);
  }
  .modal-popup {
    pointer-events: auto;
  }
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #f4f4f4;
  }
  .modal-popup.modal-slide._inner-scroll._show {
    -webkit-overflow-scrolling: touch;
    overflow-y: auto;
  }
  .modal-popup.modal-slide._inner-scroll .modal-inner-wrap {
    height: auto;
    min-height: 100%;
  }
  .modal-popup .modal-title {
    font-size: 14px;
    font-weight: 700;
  }
  .logo {
    display: none;
  }
  .logo.logo-mobile {
    display: block;
  }
  .block-search .block-content {
    margin-bottom: 0;
  }
  .gift-options .actions-toolbar .action-update {
    font-size: 2rem;
    padding: 15px;
    width: 100%;
  }
  .gift-item-block {
    border-top: 1px solid #c1c1c1;
    border-bottom: 0;
  }
  .cart.table-wrapper .gift-content {
    margin-right: -10px;
  }
  .map-popup {
    max-width: 100%;
  }
  .map-old-price,
  .map-show-info {
    display: inline-block;
  }
  .map-old-price:not(:last-child),
  .map-show-info:not(:last-child) {
    margin-bottom: 10px;
  }
  .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status {
    display: none;
  }
  .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status:before {
    display: none;
  }
  .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status._default {
    display: block;
  }
  .my-credit-cards .card-type img {
    vertical-align: middle;
  }
  form:not(.linear-theme) .amcform-title-wrap {
    display: none;
    max-width: 50%;
  }
  form:not(.linear-theme) .amcform-title-wrap:not(:last-child):after,
  form:not(.linear-theme) .amcform-title-wrap:before {
    width: 50%;
    content: '';
  }
  form:not(.linear-theme) .amcform-title-wrap:first-child:before {
    content: none;
  }
  form:not(.linear-theme) .amcform-title-wrap:after {
    background: linear-gradient(90deg, #e3e3e3 16.87%, #ffffff 107.36%);
  }
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active ~ form:not(.linear-theme) .amcform-title-wrap:nth-last-child(2) {
    display: none;
  }
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active,
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active + .amcform-title-wrap,
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active + form:not(.linear-theme) .amcform-title-wrap:nth-last-child(2),
  form:not(.linear-theme) .amcform-title-wrap.-done:nth-last-child(2) {
    display: block;
  }
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active:not(:last-child):before,
  form:not(.linear-theme) .amcform-title-wrap.-done:not(:last-child):before {
    background: linear-gradient(270deg, #92b0ff 11.11%, rgba(146, 176, 255, 0) 100%);
  }
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active + form:not(.linear-theme) .amcform-title-wrap:not(.-disabled):after {
    background: linear-gradient(270deg, rgba(146, 176, 255, 0) 11.1%, #92b0ff 100%);
  }
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active:after,
  form:not(.linear-theme) .amcform-title-wrap.ui-state-active + .amcform-title-wrap:before,
  form:not(.linear-theme) .amcform-title-wrap.-done:nth-last-child(2):after {
    background: #92b0ff;
  }
  .linear-theme .amcform-page-titles {
    padding: 0 15px;
  }
  .linear-theme .amcform-title-wrap {
    display: block;
    min-width: 50%;
    max-width: 100%;
  }
  .linear-theme .amcform-title-wrap.ui-state-active ~ .linear-theme .amcform-title-wrap:nth-last-child(2) {
    display: block;
  }
  .linear-theme .fields {
    margin: 0 -15px;
    padding: 0 15px;
  }
  .linear-theme.rendered-form .fieldset > .field.form-group,
  .linear-theme.rendered-form .fieldset > .fields > .field.form-group {
    padding: 0 15px;
  }
  .linear-theme.rendered-form .fieldset > .field.form-group.amform-layout-two,
  .linear-theme.rendered-form .fieldset > .fields > .field.form-group.amform-layout-two,
  .linear-theme.rendered-form .fieldset > .field.form-group.amform-layout-three,
  .linear-theme.rendered-form .fieldset > .fields > .field.form-group.amform-layout-three {
    max-width: 100%;
  }
  .circle-theme .amcform-page-titles {
    align-items: stretch;
  }
  .circle-theme .amcform-title {
    display: block;
    margin: 0;
  }
  .circle-theme .amcform-label {
    display: block;
    padding: 10px 0;
  }
  .circle-theme .amcform-title-wrap {
    margin: 0;
    border-bottom: 4px solid #92b0ff;
  }
  .circle-theme .amcform-title-wrap:after,
  .circle-theme .amcform-title-wrap:before {
    display: none;
  }
  .circle-theme .amcform-title-wrap + .amcform-title-wrap {
    margin: 0;
  }
  .circle-theme .amcform-title-wrap.ui-state-active {
    border-color: #ffa500;
  }
  .circle-theme .amcform-title-wrap.-disabled {
    border-color: #e3e3e3;
  }
  .circle-theme .amcform-title-wrap.-error {
    border-color: #eb5757;
  }
  .sidebar .block-viewed-products-grid .products-grid .product-item {
    margin-left: 2%;
    width: calc((100% - 2%) / 2);
  }
  .sidebar .block-viewed-products-grid .products-grid .product-item:nth-child(2n + 1) {
    margin-left: 0;
  }
  .sidebar .block-viewed-products-grid .products-grid .product-item-photo {
    display: block;
    position: relative;
  }
  .sidebar .block-viewed-products-grid .products-grid .product-item-details {
    margin: 0;
  }
  .sidebar .block-viewed-products-grid .products-grid .product-item-info {
    text-align: center;
  }
}
@media only screen and (max-width: 639px) {
  .abs-visually-hidden-mobile {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  .abs-add-clearfix-mobile:before,
  .abs-add-clearfix-mobile:after,
  .abs-checkout-order-review tbody tr:before,
  .abs-checkout-order-review tbody tr:after {
    content: '';
    display: table;
  }
  .abs-add-clearfix-mobile:after,
  .abs-checkout-order-review tbody tr:after {
    clear: both;
  }
  .abs-checkout-order-review tbody tr:not(:last-child) {
    border-bottom: 1px solid #d1d1d1;
  }
  .abs-checkout-order-review tbody tr .col.item:before {
    display: none;
  }
  .abs-checkout-order-review tbody tr .col.qty,
  .abs-checkout-order-review tbody tr .col.price,
  .abs-checkout-order-review tbody tr .col.subtotal {
    box-sizing: border-box;
    float: left;
    text-align: center;
    white-space: nowrap;
    width: 33%;
  }
  .abs-checkout-order-review tbody tr .col.qty[data-th]:before,
  .abs-checkout-order-review tbody tr .col.price[data-th]:before,
  .abs-checkout-order-review tbody tr .col.subtotal[data-th]:before {
    content: attr(data-th) ':';
    display: block;
    font-weight: 700;
    padding-bottom: 10px;
  }
  .abs-checkout-order-review tbody tr .product-item-name {
    margin: 0;
  }
  .abs-no-display-s {
    display: none;
  }
  .abs-pager-toolbar-mobile-s .toolbar-amount,
  .abs-pager-toolbar-mobile-s .limiter,
  .abs-pager-toolbar-mobile-s .pages {
    margin-bottom: 25px;
  }
  .block-search {
    margin-top: 10px;
  }
  .cart.table-wrapper .gift-content {
    border-bottom: 1px solid #d1d1d1;
    margin-bottom: 20px;
  }
}
@media only screen and (max-width: 479px) {
  .tooltip.wrapper .tooltip.content {
    min-width: 10rem;
  }
  .payment-method-icon-przelewy24 {
    margin-left: 0;
  }
  .przelewy24-payment-method-description {
    margin-left: 3px;
    max-width: 170px;
  }
}
@media all and (min-width: 640px) {
  .abs-blocks-2columns-s {
    width: 48.8%;
  }
  .abs-blocks-2columns-s:nth-child(odd) {
    clear: left;
    float: left;
  }
  .abs-blocks-2columns-s:nth-child(even) {
    float: right;
  }
  .abs-reset-left-margin-desktop-s {
    margin-left: 0;
  }
  .abs-margin-for-forms-desktop-s {
    margin-left: 25.8%;
  }
  .abs-visually-hidden-desktop-s {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  .abs-add-clearfix-desktop-s:before,
  .abs-add-clearfix-desktop-s:after {
    content: '';
    display: table;
  }
  .abs-add-clearfix-desktop-s:after {
    clear: both;
  }
  .abs-add-box-sizing-desktop-s {
    box-sizing: border-box;
  }
  .ui-dialog.popup {
    width: 420px;
  }
  .block.widget .products-grid .product-item,
  .page-layout-1column .block.widget .products-grid .product-item,
  .page-layout-3columns .block.widget .products-grid .product-item {
    width: 33.33333333%;
  }
  .page-layout-1column .block.widget .products-grid .product-item {
    margin-left: 2%;
    width: calc((100% - 4%) / 3);
  }
  .page-layout-1column .block.widget .products-grid .product-item:nth-child(3n + 1) {
    margin-left: 0;
  }
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
/** Styles form _tables.less of theme blank are move to components/table.scss */
/** We have custom navigation component also. */
/** */
/** Removing default Magento 2 icons implementation. */
/** We have custom button component. */
/** We have custom pager component. */
/** Custom toolbar will be available in future */
/** Removing default Magento 2 breadcrumbs implementation. */
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.form-discount .g-recaptcha {
  margin-top: 50px !important;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.login-container .g-recaptcha,
.form-login .g-recaptcha,
.form-edit-account .g-recaptcha {
  margin-bottom: 10px !important;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.required-captcha.checkbox {
  position: absolute;
  display: block;
  visibility: visible;
  overflow: hidden;
  opacity: 0;
  width: 1px;
  height: 1px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.block.newsletter .field-recaptcha .field .control:before {
  content: none;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.review-form .field-recaptcha {
  margin-bottom: 10px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.form.send.friend .g-recaptcha {
  margin-top: 40px;
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.product-info-stock-sku .configurable-variation-qty {
  display: none;
}
@keyframes loading {
  0% {
    transform: translate(-50%, -50%) rotate(0);
  }
  100% {
    transform: translate(-50%, -50%) rotate(359.9deg);
  }
}
.logo.logo-mobile {
  display: none;
}
/* Override cart */
/* Override checkout */
@media only screen and (min-device-width: 320px) and (max-device-width: 780px) and (orientation: landscape) {
  .product-video {
    height: 100%;
    width: 81%;
  }
}
/** Removing default layered navigation styles because we're using custom plugin for it. */
.map-home {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .map-home {
    flex-direction: row;
    justify-content: space-between;
  }
}
.map-map-home,
.map-text-home {
  width: 100% !important;
  display: grid;
  transform: unset !important;
}
@media (min-width: 768px) {
  .map-map-home,
  .map-text-home {
    width: 49% !important;
  }
}
.map-map-home .amlocator-block.-map,
.map-text-home .amlocator-block.-map {
  height: 100%;
}
.map-map-home .amlocator-main-container,
.map-text-home .amlocator-main-container {
  height: 50vh;
}
.map-map-home {
  margin-bottom: 3rem;
}
.amlocator-map-container {
  height: unset !important;
  width: 100%;
}
.amlocator-block.-map {
  padding-left: 0 !important;
  display: inline-grid;
  width: 100%;
}
@media (min-width: calc(768px + 300px)) {
  .amlocator-block.-map {
    width: 66%;
  }
}
.amlocator-location-view .amlocator-block.-map,
.cms-home .amlocator-block.-map {
  width: 100%;
}
.amlocator-main-container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  min-width: unset !important;
}
.amlocator-index-index .amlocator-block.-map {
  width: 100%;
  max-height: 800px;
  height: 100%;
  display: block;
  padding-left: 15px;
}
@media (min-width: 768px) {
  .amlocator-index-index .amlocator-block.-map {
    width: 66% !important;
  }
}
.ukrywane {
  display: none;
}
/**
 * Removing .block.newsletter styles for creativeshop.
 */
@media all and (min-width: 769px), print {
  .abs-product-options-list-desktop dt {
    clear: left;
    float: left;
    margin: 0 10px 5px 0;
  }
  .abs-product-options-list-desktop dt:after {
    content: ': ';
  }
  .abs-product-options-list-desktop dd {
    display: inline-block;
    float: left;
    margin: 0 0 5px;
    word-break: break-all;
  }
  .abs-button-desktop {
    width: auto;
  }
  .abs-blocks-2columns {
    width: 48.8%;
  }
  .abs-blocks-2columns:nth-child(odd) {
    clear: left;
    float: left;
  }
  .abs-blocks-2columns:nth-child(even) {
    float: right;
  }
  .abs-reset-left-margin-desktop,
  .gift-summary .actions-toolbar,
  .cart.table-wrapper .gift-summary .actions-toolbar,
  .form-new-agreement .fieldset .legend,
  .form-new-agreement .actions-toolbar {
    margin-left: 0;
  }
  .abs-action-remove-desktop,
  .abs-add-fields-desktop .fieldset .additional .action.remove {
    margin-left: 75.8%;
    top: 6px;
  }
  .abs-add-fields-desktop .fieldset .field:not(.choice) .control {
    width: 50%;
  }
  .abs-margin-for-forms-desktop {
    margin-left: 25.8%;
  }
  .abs-visually-hidden-desktop,
  .block-search .label {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
  }
  .abs-add-clearfix-desktop:before,
  .abs-add-clearfix-desktop:after,
  .abs-pager-toolbar:before,
  .abs-pager-toolbar:after {
    content: '';
    display: table;
  }
  .abs-add-clearfix-desktop:after,
  .abs-pager-toolbar:after {
    clear: both;
  }
  .abs-add-box-sizing-desktop,
  .column.main,
  .sidebar-main,
  .sidebar-additional {
    box-sizing: border-box;
  }
  .abs-add-box-sizing-desktop-m {
    box-sizing: border-box;
  }
  .abs-revert-field-type-desktop .fieldset > .field,
  .abs-revert-field-type-desktop .fieldset .fields > .field {
    margin: 0 0 20px;
  }
  .abs-revert-field-type-desktop .fieldset > .field:not(.choice) > .label,
  .abs-revert-field-type-desktop .fieldset .fields > .field:not(.choice) > .label {
    box-sizing: content-box;
    float: none;
    width: auto;
    text-align: left;
    padding: 0;
  }
  .abs-revert-field-type-desktop .fieldset > .field:not(.choice) > .control,
  .abs-revert-field-type-desktop .fieldset .fields > .field:not(.choice) > .control {
    float: none;
    width: auto;
  }
  .abs-revert-field-type-desktop .fieldset > .field > .label,
  .abs-revert-field-type-desktop .fieldset .fields > .field > .label {
    margin: 0 0 5px;
    display: inline-block;
  }
  .abs-revert-field-type-desktop .fieldset > .field.choice:before,
  .abs-revert-field-type-desktop .fieldset .fields > .field.choice:before,
  .abs-revert-field-type-desktop .fieldset > .field.no-label:before,
  .abs-revert-field-type-desktop .fieldset .fields > .field.no-label:before {
    display: none;
  }
  .abs-revert-field-type-desktop .fieldset > .field:not(:first-child):last-of-type,
  .abs-revert-field-type-desktop .fieldset .fields > .field:not(:first-child):last-of-type {
    margin-bottom: 0;
  }
  .abs-no-display-desktop,
  .sidebar .block.widget .pager .item:not(.pages-item-next):not(.pages-item-previous) {
    display: none;
  }
  .abs-pager-toolbar {
    margin-bottom: 20px;
    position: relative;
  }
  .abs-pager-toolbar .limiter {
    float: right;
    position: relative;
    z-index: 1;
  }
  .abs-pager-toolbar .toolbar-amount {
    float: left;
    line-height: normal;
    padding: 7px 0 0;
    position: relative;
    z-index: 1;
  }
  .abs-pager-toolbar .pages {
    position: absolute;
    width: 100%;
    z-index: 0;
  }
  .abs-shopping-cart-items-desktop,
  .cart-container .cart-gift-item {
    float: left;
    position: relative;
    width: 73%;
  }
  .abs-shopping-cart-items-desktop .actions,
  .cart-container .cart-gift-item .actions {
    text-align: right;
  }
  .abs-shopping-cart-items-desktop .action.clear,
  .abs-shopping-cart-items-desktop .action.update,
  .cart-container .cart-gift-item .action.clear,
  .cart-container .cart-gift-item .action.update {
    margin-left: 10px;
  }
  .abs-shopping-cart-items-desktop .action.continue,
  .cart-container .cart-gift-item .action.continue {
    float: left;
  }
  .navigation,
  .breadcrumbs,
  .page-header .header.panel,
  .header.content,
  .page-wrapper > .widget,
  .page-wrapper > .page-bottom,
  .block.category.event,
  .top-container,
  .page-main {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
    padding-left: 20px;
    padding-right: 20px;
    width: auto;
  }
  .page-main {
    width: 100%;
    -webkit-flex-grow: 1;
    flex-grow: 1;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
    -webkit-flex-basis: auto;
    flex-basis: auto;
  }
  .ie9 .page-main {
    width: auto;
  }
  .columns {
    display: block;
  }
  .column.main {
    min-height: 300px;
  }
  .page-layout-1column .column.main {
    width: 100%;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .page-layout-3columns .column.main {
    width: 66.66666667%;
    display: inline-block;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .page-layout-2columns-left .column.main {
    width: 83.33333333%;
    float: right;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .page-layout-2columns-right .column.main {
    width: 83.33333333%;
    float: left;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .sidebar-main {
    padding-right: 2%;
  }
  .page-layout-3columns .sidebar-main {
    width: 16.66666667%;
    float: left;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .page-layout-2columns-left .sidebar-main {
    width: 16.66666667%;
    float: left;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .page-layout-2columns-right .sidebar-main {
    width: 16.66666667%;
    float: left;
    -ms-flex-order: 1;
    -webkit-order: 1;
    order: 1;
  }
  .page-layout-2columns-right .sidebar-main {
    padding-left: 2%;
    padding-right: 0;
  }
  .sidebar-additional {
    clear: right;
    padding-left: 2%;
  }
  .page-layout-3columns .sidebar-additional {
    width: 16.66666667%;
    float: right;
    -ms-flex-order: 3;
    -webkit-order: 3;
    order: 3;
  }
  .page-layout-2columns-left .sidebar-additional {
    width: 16.66666667%;
    float: right;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .page-layout-2columns-right .sidebar-additional {
    width: 16.66666667%;
    float: right;
    -ms-flex-order: 2;
    -webkit-order: 2;
    order: 2;
  }
  .page-layout-2columns-left .sidebar-additional {
    clear: left;
    float: left;
    padding-left: 0;
    padding-right: 2%;
  }
  .panel.header {
    padding: 10px 20px;
  }
  .modal-popup.modal-slide .modal-footer {
    border-top: 1px solid #c1c1c1;
    text-align: right;
  }
  .block-search {
    float: right;
    padding-left: 15px;
    position: relative;
    width: 250px;
    z-index: 4;
  }
  .block-search .control {
    border-top: 0;
    margin: 0;
    padding: 0 0 25px;
  }
  .block-search .nested {
    display: block;
    padding-top: 5px;
    position: absolute;
  }
  .block-search input {
    margin: 0;
    padding-right: 35px;
    position: static;
  }
  .block-search input::-webkit-input-placeholder {
    color: #c2c2c2;
  }
  .block-search input:-moz-placeholder {
    color: #c2c2c2;
  }
  .block-search input::-moz-placeholder {
    color: #c2c2c2;
  }
  .block-search input:-ms-input-placeholder {
    color: #c2c2c2;
  }
  .block-search .action.search {
    display: inline-block;
    padding: 5px 0;
    position: absolute;
    right: 10px;
    top: 0;
    z-index: 1;
  }
  .block-search .action.search:focus:before {
    color: #333333;
  }
  .search-autocomplete {
    margin-top: 0;
  }
  .gift-message .field {
    margin-bottom: 20px;
  }
  .gift-options {
    position: relative;
    z-index: 1;
  }
  .gift-options .actions-toolbar {
    clear: both;
    float: right;
    position: static;
  }
  .gift-options .actions-toolbar .secondary {
    float: right;
  }
  .gift-options .actions-toolbar .secondary .action {
    float: right;
    margin-left: 20px;
  }
  .gift-options .actions-toolbar .secondary .action-cancel {
    display: block;
    float: left;
    margin-top: 6px;
  }
  .gift-options .actions-toolbar:nth-child(3):before {
    border-left: 1px solid #c1c1c1;
    bottom: 5rem;
    content: '';
    display: block;
    left: 50%;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: 0;
  }
  .gift-options-title {
    font-weight: 300;
    font-size: 1.8rem;
  }
  .cart.table-wrapper .action-gift {
    float: left;
  }
  .order-options .gift-wrapping,
  .table-order-review .gift-wrapping {
    max-width: 50%;
  }
  .my-credit-cards .card-type img {
    display: block;
  }
  .amcform-title {
    max-width: 174px;
  }
  .amcform-title-wrap {
    flex-grow: unset;
    min-width: 30%;
    max-width: initial;
  }
  .amcform-title-wrap:nth-child(3n + 1):before {
    content: none;
  }
  .amcform-title-wrap:nth-child(3n + 1):last-child:before {
    width: 50%;
    background: linear-gradient(270deg, #e3e3e3 4.63%, rgba(227, 227, 227, 0) 83.33%);
    content: '';
  }
  .amcform-title-wrap:nth-child(3n + 1).ui-state-active:last-child:before {
    background: linear-gradient(270deg, #92b0ff 4.63%, rgba(227, 227, 227, 0) 83.33%);
  }
  .amcform-popup-block .modal-inner-wrap .modal-footer {
    border-top: none;
  }
  .amform-content {
    top: 10%;
    margin: 0 auto;
    width: 60%;
  }
  .amlocator-main-container .amlocator-search-container .amlocator-block {
    margin-bottom: 0;
    text-align: center;
    margin-bottom: 5px;
  }
  .amlocator-main-container .amlocator-search-container .amlocator-button.-nearby {
    color: #1979c3;
    background: #fff;
    margin-top: 10px;
    width: 100%;
    margin-left: auto;
  }
  .amlocator-main-container .amlocator-search-container .amlocator-button.-nearby:focus,
  .amlocator-main-container .amlocator-search-container .amlocator-button.-nearby:hover {
    color: #fff;
    background: #1979c3;
  }
  .amlocator-main-container .amlocator-search-container .amlocator-block.-separator {
    display: none;
  }
  .amlocator-main-container .amlocator-map-container {
    height: 100vh;
    max-height: 800px;
  }
  .amlocator-main-container .amlocator-map-container .amlocator-block.-filter {
    width: 100%;
  }
  .amlocator-main-container .amlocator-map-container .amlocator-block.-map {
    width: 100%;
    max-height: 800px;
    padding-left: 15px;
  }
  .amlocator-main-container .amlocator-map-container .amlocator-block.-storelist {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    order: inherit;
    width: 33%;
  }
  .amlocator-main-container .amlocator-map-container .amlocator-map {
    height: 100%;
  }
  .amlocator-main-container .amlocator-map-container .amlocator-map button {
    top: 0 !important;
    right: 0 !important;
  }
  .amlocator-main-container .amlocator-store-list .amlocator-wrapper {
    max-height: inherit;
  }
  .amlocator-main-container .amlocator-filters-container .amlocator-content {
    display: block;
  }
  .amlocator-main-container .amlocator-filters-container .amlocator-hidden-filter {
    display: none;
  }
  .amlocator-location-main .amlocator-location-container {
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
  }
  .amlocator-location-main .amlocator-location-container > .amlocator-column.-left,
  .amlocator-location-main .amlocator-location-container .amlocator-block.-grey {
    background: #fbfbfb;
  }
  .amlocator-location-main .amlocator-location-container > .amlocator-column.-left {
    width: 33%;
  }
  .amlocator-location-main .amlocator-location-container > .amlocator-column.-right {
    display: block;
    padding-left: 15px;
    width: 67%;
  }
  .amlocator-location-main .amlocator-location-container .amlocator-block.-map {
    height: 60vh;
  }
  .amlocator-location-main .amlocator-location-container .amlocator-location-reviews .amlocator-wrapper {
    margin-right: auto;
  }
  .amlocator-location-main .amlocator-location-container .amlocator-attributes-wrapper .amlocator-collapse-title {
    display: none;
  }
  .amlocator-location-main .amlocator-location-attribute {
    width: 50%;
    margin-bottom: 10px;
  }
  .amlocator-location-main .amlocator-location-attribute:not(:first-of-type) {
    margin-top: 0;
  }
  .amlocator-location-main .amlocator-location-attribute:nth-of-type(odd) {
    float: left;
  }
  .amlocator-location-main .amlocator-location-attribute:nth-of-type(even) {
    float: right;
  }
  .amlocator-attributes-container {
    display: block;
  }
  .amlocator-popup-overlay .amlocator-review-popup {
    width: 30%;
    min-width: 330px;
  }
  .amlocator-popup-overlay .field.review-field-ratings .control {
    width: inherit;
  }
  .block.widget .products-grid .product-item {
    width: 33.33333333%;
  }
  .sidebar .block.widget .products-grid .product-item {
    margin-left: 0;
    width: 100%;
  }
  .sidebar .block.widget .products-grid .product-item .actions-secondary {
    display: block;
    padding: 10px 0;
  }
  .page-layout-1column .block.widget .products-grid .product-item {
    margin-left: 2%;
    width: calc((100% - 6%) / 4);
  }
  .page-layout-1column .block.widget .products-grid .product-item:nth-child(3n + 1) {
    margin-left: 2%;
  }
  .page-layout-1column .block.widget .products-grid .product-item:nth-child(4n + 1) {
    margin-left: 0;
  }
  .page-layout-3columns .block.widget .products-grid .product-item {
    width: 50%;
  }
  .sidebar .block.widget .pager .pages-item-next {
    padding: 0;
  }
  .sidebar .block.widget .pager .pages-item-next .action {
    margin: 0;
  }
}
@media all and (min-width: 1024px), print {
  .amform-content {
    max-width: 700px;
    width: 80%;
  }
  .block.widget .products-grid .product-item {
    width: 20%;
  }
  .page-layout-1column .block.widget .products-grid .product-item {
    margin-left: 2%;
    width: calc((100% - 8%) / 5);
  }
  .page-layout-1column .block.widget .products-grid .product-item:nth-child(4n + 1) {
    margin-left: 2%;
  }
  .page-layout-1column .block.widget .products-grid .product-item:nth-child(5n + 1) {
    margin-left: 0;
  }
  .page-layout-3columns .block.widget .products-grid .product-item {
    width: 25%;
  }
  .block.widget .products-grid .product-items {
    margin: 0;
  }
  .block.widget .products-grid .product-item {
    margin-left: calc((100% - 4 * 24.439%) / 3);
    padding: 0;
    width: 24.439%;
  }
  .block.widget .products-grid .product-item:nth-child(4n + 1) {
    margin-left: 0;
  }
}
@media all and (min-width: 1440px), print {
  .amlocator-schedule-table .amlocator-cell.-time {
    padding-right: 7%;
    text-align: right;
  }
}
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
.page-print .logo {
  display: block;
  float: none;
  text-align: left;
}
@media print {
  * {
    -webkit-filter: none !important;
    background: transparent !important;
    color: #000000 !important;
    filter: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline !important;
  }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  .table-wrapper table {
    width: 100%;
    table-layout: fixed;
  }
  .table-wrapper table td {
    width: auto;
  }
  .table-wrapper table > tfoot > tr:first-child {
    border-top: 1px solid #999999;
  }
  .box,
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 1cm;
  }
  .block-content,
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  .block-content {
    page-break-before: avoid;
  }
  .block-title,
  h2,
  h3 {
    page-break-after: avoid;
  }
  .nav-toggle {
    display: none !important;
  }
  .sidebar,
  .nav-sections,
  .header.content > *[class],
  .panel.wrapper > *[class],
  .footer.content > *[class] {
    display: none;
  }
  .logo,
  .footer .copyright {
    display: block !important;
    margin: 10px 0;
  }
  .order-details-items .order-items .order-gift-message:not(.expanded-content) {
    height: auto;
    visibility: visible;
  }
  .column.main {
    float: none !important;
    width: 100% !important;
  }
  .breadcrumbs {
    margin: 0 auto;
    text-align: right;
  }
  .footer.content {
    padding: 0;
  }
  .hidden-print {
    display: none !important;
  }
}
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  /* stylelint-disable */
  overflow-x: hidden;
  /* stylelint-enable */ }

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

body {
  font-family: "Lato", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.4rem;
  font-display: swap; }

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

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

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

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

.no-scroll {
  overflow: hidden !important;
  position: fixed;
  width: 100vw;
  height: 100vh; }

#maincontent {
  flex: 1 0 auto; }

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

.columns .column.main {
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }

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

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; } }

.ie11 .page-wrapper {
  display: block !important; }

a {
  color: #78b0e0; }
  a:visited {
    color: #78b0e0; }
  a:hover {
    color: #346097; }

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

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

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

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

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

.paypal-review-discount {
  border-bottom: none; }

.amazon-button-container {
  max-width: 25rem;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  z-index: 303; }
  @media (min-width: 48em) {
    .amazon-button-container {
      max-width: 32rem; } }
  .amazon-button-container img {
    margin-left: auto;
    margin-right: auto; }
  .amazon-button-container__cell:nth-child(2) {
    position: absolute;
    min-width: 3rem;
    left: calc(100% + 0.6rem);
    top: 1.9rem; }
    @media (max-width: 23.115em) {
      .amazon-button-container__cell:nth-child(2) {
        left: calc(100% + 0.8rem); } }
  .amazon-button-container__cell .field-tooltip-content {
    width: 25rem;
    box-sizing: border-box;
    box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.17);
    border: none;
    font-size: 1.3rem;
    padding: 0.8rem; }
    @media (min-width: 30em) {
      .amazon-button-container__cell .field-tooltip-content {
        width: 28rem; } }
    .amazon-button-container__cell .field-tooltip-content:before {
      border-right-color: #888; }
    .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
    .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
      top: auto;
      bottom: 42px;
      left: -210px;
      right: auto; }
      @media (min-width: 48em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -250px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        left: 210px;
        transform: rotate(-180deg); }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            bottom: -10px;
            top: 100%;
            left: 250px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            left: 232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
        left: 210px; }
        @media (max-width: 47.99em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            border-right-color: transparent; } }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 251px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 233px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
          transform: rotate(-90deg); } }
    @media (min-width: 48em) {
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before, .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        transform: rotate(180deg); } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@media only screen and (max-width: 639px) {
  .account .column.main,
  .account .sidebar-additional {
    margin: 0; } }

@media (max-width: 47.99em) {
  .login-container .fieldset:after {
    text-align: center; }
  .control.captcha-image .captcha-img {
    margin-bottom: 1rem;
    display: block; }
  .form.search.advanced .field.price .with-addon .input-text {
    flex-basis: auto;
    width: 100%; } }

@media (min-width: 48em) {
  .login-container .block .login .actions-toolbar > .primary {
    margin-bottom: 0;
    margin-right: 3rem; }
  .login-container .block .login .actions-toolbar > .secondary {
    float: left; }
  .fieldset .fullname .field .label {
    padding: 6px 15px 0 0;
    text-align: right;
    width: 25.8%;
    box-sizing: border-box;
    float: left; }
  .fieldset .fullname .field .control {
    width: 74.2%;
    float: left; }
  .block-addresses-list .items.addresses {
    font-size: 0; }
  .block-addresses-list .items.addresses > .item {
    display: inline-block;
    font-size: 1.4rem;
    margin-bottom: 2rem;
    vertical-align: top;
    width: 48.8%; }
  .block-addresses-list .items.addresses > .item:nth-last-child(1),
  .block-addresses-list .items.addresses > .item:nth-last-child(2) {
    margin-bottom: 0; }
  .block-addresses-list .items.addresses > .item:nth-child(even) {
    margin-left: 2.4%; }
  .control.captcha-image .captcha-img {
    margin: 0 1rem 1rem 0; }
  .dashboard-welcome-toggler {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-slider-navigation {
  display: none; }
  @media (hover: hover) and (pointer: fine) {
    .cs-slider-navigation {
      position: absolute;
      z-index: 11;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.4rem;
      height: 5.2rem;
      border: 0;
      border-radius: 0px;
      background: #fff;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
      padding: 0;
      color: #78b0e0;
      cursor: pointer;
      transition: all 0.3s; }
      .cs-slider-navigation--prev {
        left: 1.5rem; }
      .cs-slider-navigation--next {
        right: 1.5rem; }
      .cs-slider-navigation[disabled] {
        opacity: 0.25;
        cursor: not-allowed; }
        .cs-slider-navigation[disabled] svg {
          filter: grayscale(1); }
      .cs-slider-navigation:not([disabled]):hover {
        box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25); }
      .cs-slider-navigation__icon {
        width: 1.4rem;
        height: 2.7rem;
        fill: currentColor; } }

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

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
  .cs-addtocart__button {
    padding: 17px 10px !important;
    border: 1px solid #e41f12;
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-addtocart__button span {
      text-transform: uppercase;
      font-size: 16px;
      letter-spacing: 2px;
      color: #e41f12; }
    .cs-addtocart__button:hover, .cs-addtocart__button:focus, .cs-addtocart__button:active {
      background-color: #78b0e0 !important; }
    .cs-addtocart__button:before, .cs-addtocart__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-addtocart__button:before {
      width: 5.5rem;
      border-radius: 0 0px 0px 0;
      z-index: -1;
      background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
    .cs-addtocart__button:after {
      width: 4rem;
      min-width: auto;
      background-color: #346097;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 0px; }
    .cs-addtocart__button:hover:after {
      width: calc(100% + 2px); }
    .cs-addtocart__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-addtocart__button, .cs-addtocart__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-addtocart__button *, .cs-addtocart__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-addtocart__button:hover:not([disabled]) *, .cs-addtocart__button:focus:not([disabled]) *, .cs-addtocart__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-addtocart__button[disabled] {
      opacity: 1; }
    .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
      fill: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
      fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    right: 0.8em; }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg, .cs-addtocart__feedback-bg:after {
    content: '';
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: skew(-18deg) translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #82cad4; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg, .cs-addtocart--no-transitions .cs-addtocart__feedback-bg:after {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg, .cs-addtocart--fail .cs-addtocart__feedback-bg:after {
      background: #cc1c10; }
  .cs-addtocart__feedback-bg:after {
    background: #82cad4;
    z-index: 2;
    left: 0;
    width: 100%;
    transform: translate3d(-100%, 0, 0);
    transition-delay: 0.3s; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg:after {
      background: #e41f12; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 130rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: skew(-18deg) translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

.cs-addtocart__button {
  background: white;
  border: 2px solid #e41f12; }
  .cs-addtocart__button:hover {
    background-color: #cc1c10 !important;
    border: 2px solid #e41f12 !important; }
  .cs-addtocart__button:before {
    background: linear-gradient(100deg, transparent 0%, transparent 15%, #cc1c10 15%, #cc1c10 100%); }
  .cs-addtocart__button:after {
    background-color: #cc1c10; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #78b0e0;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #346097;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
  z-index: 200;
  margin-top: -1px; }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 4.5rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: 5.8rem;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #000;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #78b0e0;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #696969;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #78b0e0;
    color: #fff;
    border: 0;
    border-radius: 0px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #82cad4;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #82cad4;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

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

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

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

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #f0f0f0; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #f0f0f0 url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/breadcrumbs.png") no-repeat right/auto 6.8rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-button:hover, .cs-button:focus, .cs-button:active {
    background-color: #78b0e0 !important; }
  .cs-button:before, .cs-button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button:before {
    width: 5.5rem;
    border-radius: 0 0px 0px 0;
    z-index: -1;
    background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
  .cs-button:after {
    width: 4rem;
    min-width: auto;
    background-color: #346097;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 0px; }
  .cs-button:hover:after {
    width: calc(100% + 2px); }
  .cs-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button, .cs-button:visited {
    cursor: pointer;
    border-radius: 0px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #78b0e0; }
    .cs-button *, .cs-button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #346097; }
    .cs-button:hover:not([disabled]) *, .cs-button:focus:not([disabled]) *, .cs-button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-button__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button__icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

.cs-button-component {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component:hover, .cs-button-component:focus, .cs-button-component:active {
    background-color: #78b0e0 !important; }
  .cs-button-component:before, .cs-button-component:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button-component:before {
    width: 5.5rem;
    border-radius: 0 0px 0px 0;
    z-index: -1;
    background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
  .cs-button-component:after {
    width: 4rem;
    min-width: auto;
    background-color: #346097;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 0px; }
  .cs-button-component:hover:after {
    width: calc(100% + 2px); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component:visited {
    cursor: pointer;
    border-radius: 0px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #78b0e0; }
    .cs-button-component *, .cs-button-component:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #346097; }
    .cs-button-component:hover:not([disabled]) *, .cs-button-component:focus:not([disabled]) *, .cs-button-component:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button-component[disabled] {
    opacity: 0.65;
    cursor: auto; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button-component__icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }
  .cs-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

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

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #000;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #78b0e0;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #346097;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button:hover, .cs-cookie-message__button:focus, .cs-cookie-message__button:active {
      background-color: #78b0e0 !important; }
    .cs-cookie-message__button:before, .cs-cookie-message__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-cookie-message__button:before {
      width: 5.5rem;
      border-radius: 0 0px 0px 0;
      z-index: -1;
      background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
    .cs-cookie-message__button:after {
      width: 4rem;
      min-width: auto;
      background-color: #346097;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 0px; }
    .cs-cookie-message__button:hover:after {
      width: calc(100% + 2px); }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-cookie-message__button *, .cs-cookie-message__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-cookie-message__button:hover:not([disabled]) *, .cs-cookie-message__button:focus:not([disabled]) *, .cs-cookie-message__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-cookie-message__button-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-dailydeal {
  display: none; }
  .cs-dailydeal__header {
    display: flex;
    width: 100%;
    margin: 0 0 0.5rem;
    font-size: 1.2rem;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-dailydeal__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .cs-dailydeal__items-amount {
    font-weight: 600; }
  .cs-dailydeal__countdown {
    display: flex;
    margin: 0;
    justify-content: stretch;
    align-items: stretch; }
  .cs-dailydeal__countdown-element {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: none;
    border-radius: 0px; }
    .cs-dailydeal__countdown-element--special {
      width: 50%;
      background: #e41f12;
      z-index: 5; }
    .cs-dailydeal--teaser .cs-dailydeal__countdown-element {
      min-height: 4rem; }
  .cs-dailydeal__countdown-icon {
    width: 1.9rem;
    height: 2.4rem;
    fill: #fff; }
  .cs-dailydeal__countdown-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: #e41f12;
    padding: 2px 0 0; }
  .cs-dailydeal__countdown-label {
    display: block;
    font-size: 1.1rem;
    font-weight: inherit;
    color: #888;
    padding: 2px 0 0; }
  .cs-dailydeal--tile {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 3; }
    .cs-dailydeal--tile .cs-dailydeal__availability {
      position: relative;
      background: #888;
      font-size: 1rem;
      color: #fff;
      padding: 2px 4px;
      z-index: 4;
      font-weight: 300;
      border-radius: 0px; }

@media (min-width: 23.125em) and (max-width: 599px) {
  .cs-dailydeal--tile .cs-dailydeal__countdown-element {
    margin-left: 0;
    margin-right: 0; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
      margin-left: 0; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
      content: none; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
      width: auto; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
      border-radius: 0;
      width: auto;
      padding: 0; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
        transform: none; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
        padding-left: 1.8rem;
        margin-left: -1rem !important; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
        padding-right: 0.8rem;
        border-radius: 0 0px 0px 0; }
  .cs-dailydeal--tile .cs-dailydeal__countdown-value {
    font-size: 1.3rem; }
    .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
      content: ':'; }
  .cs-dailydeal--tile .cs-dailydeal__countdown-label {
    display: none; } }
  .cs-dailydeal__badge-pdp-icon {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 10;
    fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #78b0e0;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .active .cs-dropdown-switcher__trigger {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .active .cs-dropdown-switcher__trigger {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%;
        position: absolute;
        top: 100%;
        right: -1rem;
        left: 1rem; } }
    .cs-dropdown-switcher__list .cs-dropdown-switcher--currency {
      right: -1rem; }
    .active .cs-dropdown-switcher__list {
      display: block; }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #484848 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: ' *';
      color: #e41f12; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #484848;
    background: #fff;
    border-radius: 0px;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 1px solid #78b0e0;
      box-shadow: none; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 0.65; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 1px solid #e41f12; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #484848;
    border-radius: 0px;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 1px solid #78b0e0;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%2378b0e0'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 0.65; }
    .cs-field__select option,
    .cs-input__select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 1px solid #346097;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%2378b0e0' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 1px solid #78b0e0;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0px;
    background-size: 1em 1em; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 1px solid #346097;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%2378b0e0' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 1px solid #78b0e0;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%2378b0e0' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 1px solid #e41f12; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969;
    color: #e41f12; }

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

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

/* stylelint-enable */

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

.cs-container--footer {
  margin-top: 4rem;
  max-width: none; }

.footer-copyright {
  margin: 0 auto;
  text-align: center;
  line-height: 1.9;
  padding-bottom: 20px;
  font-size: 1.3rem; }
  .footer-copyright .nip {
    padding: 0px 0 0px 0; }
  .footer-copyright .contact {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    max-width: 320px; }

.cs-footer-links__item .block-category-link.widget {
  display: block;
  margin-bottom: 2px; }

.block-static-block.widget, .block-cms-link.widget {
  margin-bottom: 2px !important;
  font-size: 1.3rem !important; }

.cs-footer__item--links .cs-footer__section:nth-child(2) {
  margin-top: 50px; }
  @media (max-width: 47.99em) {
    .cs-footer__item--links .cs-footer__section:nth-child(2) {
      margin-top: 0px; } }
  .cs-footer__item--links .cs-footer__section:nth-child(2) .cs-footer__section-title {
    display: none; }
    @media (max-width: 47.99em) {
      .cs-footer__item--links .cs-footer__section:nth-child(2) .cs-footer__section-title {
        display: block; } }

.cs-footer__item.cs-footer__item--extras {
  display: flex;
  flex-direction: column; }
  .cs-footer__item.cs-footer__item--extras h2 {
    font-size: 2rem; }
  .cs-footer__item.cs-footer__item--extras .cs-footer__section:nth-child(2) .cs-footer__section-title {
    padding-top: 2rem; }
  .cs-footer__item.cs-footer__item--extras .footer-firma {
    order: -1;
    flex-grow: 0; }
  .cs-footer__item.cs-footer__item--extras .cs-footer__section.cs-footer__section--newsletter {
    flex-grow: 0; }

@media (max-width: 47.99em) {
  .cs-footer__section.cs-footer__section--socials h2 {
    padding-left: 2rem; } }

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

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #78b0e0;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #346097;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

/*
 * Fair warning: Don't mix units while using 'utils/poly-fluid-sizing' feature.
 * If you use rems, stick to rems everywhere in the area of whole map, or else the mixin will throw an error
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L179
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-grid-layout {
  position: relative;
  width: 100%; }
  .cs-grid-layout__grid {
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none; }
    .cs-grid-layout__grid:after {
      content: '';
      display: table;
      clear: both; }
  .cs-grid-layout__teaser {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }
    .cs-grid-layout__teaser-content-wrapper {
      display: flex;
      width: 100%;
      height: 100%; }
    .cs-grid-layout__teaser-figure {
      position: relative;
      width: 100%;
      height: 100%; }
    .cs-grid-layout__teaser-image {
      min-width: 100%;
      min-height: 100%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0); }
    .cs-grid-layout__teaser-content {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
      display: flex;
      flex-direction: column;
      padding: 1.5rem;
      line-height: 1.15;
      /* Variants will be refactored after CC IT refactor due to new position options */ }
      .cs-grid-layout__teaser-content--variant-1 {
        justify-content: center;
        align-items: flex-start; }
      .cs-grid-layout__teaser-content--variant-2 {
        justify-content: flex-end;
        align-items: flex-start; }
      .cs-grid-layout__teaser-content--variant-3 {
        justify-content: center;
        align-items: center;
        text-align: center; }
      .cs-grid-layout__teaser-content--variant-4 {
        justify-content: flex-end;
        align-items: center;
        text-align: center; }
    .cs-grid-layout__teaser-content-inner {
      max-width: 100%; }
    .cs-grid-layout__teaser-headline {
      margin: 0 0 0.2em;
      color: #484848;
      font-weight: 600;
      text-transform: none;
      font-size: 1.8rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__teaser-headline {
          font-size: calc(1.02041vw + 1.47347rem); } }
      @media (min-width: 130rem) {
        .cs-grid-layout__teaser-headline {
          font-size: 2.8rem; } }
      .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
        margin: 0 0 0.2em;
        font-size: 1.8rem; }
        @media (min-width: 32rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
            font-size: calc(2.2449vw + 1.08163rem); } }
        @media (min-width: 130rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
            font-size: 4rem; } }
      .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-headline {
        color: #fff; }
    .cs-grid-layout__teaser-subheadline {
      display: block;
      margin: 0 0 0.6em;
      color: #484848;
      font-weight: 400;
      text-transform: none;
      font-size: 1.6rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__teaser-subheadline {
          font-size: calc(0.20408vw + 1.53469rem); } }
      @media (min-width: 130rem) {
        .cs-grid-layout__teaser-subheadline {
          font-size: 1.8rem; } }
      .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
        margin: 0 0 0.6em;
        font-size: 1.6rem; }
        @media (min-width: 32rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
            font-size: calc(0.91837vw + 1.30612rem); } }
        @media (min-width: 130rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
            font-size: 2.5rem; } }
      .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-subheadline {
        color: #fff; }
    .cs-grid-layout__teaser-text {
      margin: 0 0 1em;
      color: #484848;
      font-weight: 400;
      text-transform: none;
      font-size: 1.3rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__teaser-text {
          font-size: calc(0.10204vw + 1.26735rem); } }
      @media (min-width: 130rem) {
        .cs-grid-layout__teaser-text {
          font-size: 1.4rem; } }
      .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
        margin: 0 0 1em;
        font-size: 1.3rem; }
        @media (min-width: 32rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
            font-size: calc(0.30612vw + 1.20204rem); } }
        @media (min-width: 130rem) {
          .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
            font-size: 1.6rem; } }
      .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-text {
        color: #fff; }
    .cs-grid-layout__teaser-cta-button {
      display: inline-block;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5; }
      .cs-grid-layout__teaser-cta-button:hover, .cs-grid-layout__teaser-cta-button:focus, .cs-grid-layout__teaser-cta-button:active {
        background-color: #78b0e0 !important; }
      .cs-grid-layout__teaser-cta-button:before, .cs-grid-layout__teaser-cta-button:after {
        content: '';
        position: absolute;
        top: -1px;
        bottom: -1px;
        right: -1px; }
      .cs-grid-layout__teaser-cta-button:before {
        width: 5.5rem;
        border-radius: 0 0px 0px 0;
        z-index: -1;
        background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
      .cs-grid-layout__teaser-cta-button:after {
        width: 4rem;
        min-width: auto;
        background-color: #346097;
        transition: width 0.25s linear;
        z-index: -2;
        border-radius: 0px; }
      .cs-grid-layout__teaser-cta-button:hover:after {
        width: calc(100% + 2px); }
      .cs-grid-layout__teaser-cta-button::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-grid-layout__teaser-cta-button, .cs-grid-layout__teaser-cta-button:visited {
        cursor: pointer;
        border-radius: 0px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #78b0e0; }
        .cs-grid-layout__teaser-cta-button *, .cs-grid-layout__teaser-cta-button:visited * {
          color: #fff;
          fill: #fff; }
      .cs-grid-layout__teaser-cta-button:hover:not([disabled]), .cs-grid-layout__teaser-cta-button:focus:not([disabled]), .cs-grid-layout__teaser-cta-button:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #346097; }
        .cs-grid-layout__teaser-cta-button:hover:not([disabled]) *, .cs-grid-layout__teaser-cta-button:focus:not([disabled]) *, .cs-grid-layout__teaser-cta-button:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-grid-layout__teaser-cta-button[disabled] {
        opacity: 0.65;
        cursor: auto; }
      .cs-grid-layout__teaser-cta-button-span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal;
        padding-left: 0;
        padding-right: 4em; }
      .cs-grid-layout__teaser-cta-button-icon {
        max-width: 1em;
        max-height: 1.4rem;
        z-index: 2;
        height: auto;
        width: 100%;
        position: absolute;
        top: 50%;
        transform: translate3d(0, -50%, 0);
        margin-right: 0;
        right: 1em; }
  .cs-grid-layout__brick {
    width: 100%;
    margin: 0;
    padding: 0;
    float: left;
    position: relative; }
    .cs-grid-layout__brick:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 170%; }
    .cs-grid-layout__brick .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
    @media (min-width: 23.125em) {
      .cs-grid-layout__brick {
        width: calc(100% / 2); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 2 * 2); } }
    @media (min-width: 30em) {
      .cs-grid-layout__brick {
        width: calc(100% / 2); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 2 * 2); } }
    @media (min-width: 48em) {
      .cs-grid-layout__brick {
        width: calc(100% / 3); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 3 * 2); } }
    @media (min-width: 64em) {
      .cs-grid-layout__brick {
        width: calc(100% / 4); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 4 * 2); } }
    @media (min-width: 80em) {
      .cs-grid-layout__brick {
        width: calc(100% / 4); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 4 * 2); } }
    @media (min-width: 90em) {
      .cs-grid-layout__brick {
        width: calc(100% / 4); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 4 * 2); } }
    @media (min-width: 120em) {
      .cs-grid-layout__brick {
        width: calc(100% / 4); }
        .cs-grid-layout__brick--x2 {
          width: calc(100% / 4 * 2); } }
    .cs-grid-layout__brick--x2:not(.cs-grid-layout__brick--y2):before {
      padding-top: 85%; }
    @media (max-width: 29.99em) {
      .cs-grid-layout__brick--x2:not(.cs-grid-layout__brick--y2).cs-grid-layout__brick--teaser:before {
        padding-top: 0; } }
    .cs-grid-layout__brick--y2.cs-grid-layout__brick--left {
      float: left; }
    .cs-grid-layout__brick--y2:not(.cs-grid-layout__brick--x2):before {
      padding-top: 340%; }
    @media (max-width: 29.99em) {
      .cs-grid-layout__brick--y2.cs-grid-layout__brick--teaser:before {
        padding-top: 0; } }
    .cs-grid-layout__brick--right {
      float: right; }
    .cs-grid-layout__brick--hidden {
      display: none !important; }
    .cs-grid-layout__brick--teaser {
      display: none; }
      @media (max-width: 29.99em) {
        .cs-grid-layout__brick--teaser:before {
          padding-top: 0; } }
      .cs-grid-layout__brick--teaser-ready {
        display: block; }
  @media (min-width: 23.125em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 2); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 2 * 2); } }
  @media (min-width: 30em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 2); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 2 * 2); } }
  @media (min-width: 48em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 2); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 2 * 2); } }
  @media (min-width: 64em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 3); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 3 * 2); } }
  @media (min-width: 80em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 3); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 3 * 2); } }
  @media (min-width: 90em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 3); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 3 * 2); } }
  @media (min-width: 120em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__brick {
      width: calc(100% / 3); }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        width: calc(100% / 3 * 2); } }
  .cs-grid-layout:after, .cs-grid-layout__brick:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    content: '';
    background: #f0f0f0; }
  .cs-grid-layout {
    margin-bottom: -1px; }
    .cs-grid-layout:after {
      background: #fff; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-grid-layout__grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      grid-template-rows: auto; }
      @media (min-width: 23.125em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
      @media (min-width: 30em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
      @media (min-width: 48em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(3, minmax(0, 1fr)); } }
      @media (min-width: 64em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(4, minmax(0, 1fr)); } }
      @media (min-width: 80em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(4, minmax(0, 1fr)); } }
      @media (min-width: 90em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(4, minmax(0, 1fr)); } }
      @media (min-width: 120em) {
        .cs-grid-layout__grid {
          grid-template-columns: repeat(4, minmax(0, 1fr)); } }
      @media (min-width: 23.125em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
      @media (min-width: 30em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
      @media (min-width: 48em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(2, minmax(0, 1fr)); } }
      @media (min-width: 64em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(3, minmax(0, 1fr)); } }
      @media (min-width: 80em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(3, minmax(0, 1fr)); } }
      @media (min-width: 90em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(3, minmax(0, 1fr)); } }
      @media (min-width: 120em) {
        .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
          grid-template-columns: repeat(3, minmax(0, 1fr)); } }
      .cs-grid-layout__grid:after {
        display: none; }
    .cs-grid-layout__brick {
      position: relative; }
      .cs-grid-layout__brick:before {
        content: none; }
      .cs-grid-layout__brick .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; }
      @media (min-width: 23.125em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 30em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 48em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 64em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 80em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 90em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 120em) {
        .cs-grid-layout__brick--x2 {
          grid-column-end: span 2; }
        .cs-grid-layout__brick--y2 {
          grid-row-end: span 2; } }
      @media (min-width: 23.125em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 30em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 48em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; }
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 64em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; }
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 80em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; }
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 90em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; }
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      @media (min-width: 120em) {
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; }
        .cs-grid-layout:not(.cs-grid-layout--with-sidebar) .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
          padding-top: unset !important; } }
      .cs-grid-layout__brick--x2:not(.cs-grid-layout__brick--y2):before {
        padding-top: 0; }
      .cs-grid-layout__brick--y2:not(.cs-grid-layout__brick--x2):before {
        padding-top: 0; }
      .cs-grid-layout__brick, .cs-grid-layout__brick--teaser-ready {
        width: 100% !important;
        display: block; }
      @media (max-width: 23.115em) {
        .cs-grid-layout__brick--teaser-ready {
          grid-column-start: 1 !important; } }
      .cs-grid-layout__brick--right {
        float: none; }
    @media (min-width: 23.125em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 30em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 48em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 64em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 80em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 90em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } }
    @media (min-width: 120em) {
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 {
        grid-column-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--y2 {
        grid-row-end: span 2; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick:not(.cs-grid-layout__brick--x2) .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; }
      .cs-grid-layout--with-sidebar .cs-grid-layout__brick--x2 .cs-image-teaser__aspect-ratio {
        padding-top: unset !important; } } }

.cs-container--grid-teaser {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden; }

@supports (display: grid) and (grid-auto-flow: row) {
  .cs-container--grid-teaser {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    overflow: visible; } }

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

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

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

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

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 11rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: 1px solid #f0f0f0;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 11rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0.7rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 130rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial;
        display: contents; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: flex-end;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 50%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #484848;
    background: #fff;
    border-radius: 0px;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 1px solid #78b0e0;
      box-shadow: none; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input[disabled] {
      opacity: 0.65; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.4rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 0px;
    border-bottom-right-radius: 0px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 0 !important;
    backface-visibility: hidden;
    transform: translateX(0.7rem); }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-header-search__button *, .cs-header-search__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-header-search__button:hover:not([disabled]) *, .cs-header-search__button:focus:not([disabled]) *, .cs-header-search__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #fff; }
    .cs-header-search__button-icon--loader {
      stroke: #fff;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc( 100vh - 5rem - 1.275em - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 100%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #78b0e0; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #78b0e0; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #78b0e0;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #FFEF45;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #FFEF45;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 2em 0;
  margin: 2em 0;
  margin: 0;
  padding: 0;
  margin: 4rem 0 4rem 0 !important;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 3.6em;
    font-weight: 700;
    color: #484848;
    text-transform: unset; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:after, .cs-headline__title:before {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:after, .cs-headline__title:before {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #6b6b6b;
    font-size: 1.3em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

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

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-top: 0.5rem; }
    .cs-links-block-addto__item:nth-child(2n) {
      text-align: right; }
      .cs-links-block-addto__item:nth-child(2n) .cs-links-block-addto__icon {
        order: 2;
        margin-left: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #346097;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #346097;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #78b0e0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.messages {
  max-width: 130rem;
  margin: 0 auto; }

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

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

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

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

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

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

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #484848;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #484848; }
  .cs-minicart-product__item-pricing {
    order: 3; }
    .cs-minicart-product__item-pricing--with-special {
      text-align: left; }
      .cs-minicart-product__item-pricing--with-special .old-price .price {
        font-size: 1.3rem;
        color: #696969; }
      .cs-minicart-product__item-pricing--with-special .cs-minicart-product__price .price {
        color: #e41f12; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #484848; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #484848; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #484848;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #484848; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #484848;
    background: #fff;
    border-radius: 0px;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 1px solid #78b0e0;
      box-shadow: none; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 0.65; }
  .cs-minicart-product__qty-button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-minicart-product__qty-button *, .cs-minicart-product__qty-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-minicart-product__qty-button:hover:not([disabled]) *, .cs-minicart-product__qty-button:focus:not([disabled]) *, .cs-minicart-product__qty-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-minicart-product__qty-button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    display: none; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #346097; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #78b0e0; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #484848; }
  .cs-minicart-product__options-title-svg * {
    fill: #484848; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* prettier-ignore */
.cs-minicart {
  display: flex;
  flex-flow: column;
  height: 100%;
  justify-content: space-between; }
  .cs-minicart__wrapper {
    display: flex;
    flex: 1 1;
    flex-direction: column;
    min-height: 0; }
  .cs-minicart__content-wrapper {
    max-height: calc(100% - 5.1rem);
    overflow-y: auto;
    overflow-x: hidden; }
  .cs-minicart__close {
    display: inline-block;
    background: none;
    box-sizing: content-box;
    border: 0;
    box-shadow: none;
    line-height: inherit;
    margin: 0;
    padding: 0;
    text-decoration: none;
    text-shadow: none;
    font-weight: 400;
    position: absolute;
    right: -1.5rem;
    width: 5rem;
    height: 5rem;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    right: 0.5rem; }
    .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
      background: transparent;
      border: none;
      color: inherit; }
  .cs-minicart__close-icon {
    position: relative;
    transform: rotate(45deg);
    width: 100%;
    height: 100%;
    display: inline-block; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 2rem;
      height: 0.2rem;
      left: auto;
      background-color: #484848;
      transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
      backface-visibility: hidden; }
    .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
      background-color: #696969; }
    .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
      background-color: #888; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      right: 1.5rem;
      transform: translate3d(0, -50%, 0) !important; }
    .cs-minicart__close-icon:after {
      transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
    .cs-minicart__close-icon[aria-expanded="true"]:before {
      transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
      opacity: 0; }
    .cs-minicart__close-icon[aria-expanded="true"]:after {
      transform: translate3d(0, -50%, 0) rotate(0) !important; }
  .cs-minicart__close-text {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .cs-minicart__title-wrapper {
    position: relative;
    height: 5.1rem;
    padding: 2rem 0;
    display: flex;
    color: #484848;
    font-weight: 700;
    font-size: 1.8rem;
    margin: 0;
    padding: 1rem 2rem;
    font-size: 2.1rem;
    text-transform: uppercase;
    border-bottom: 1px solid #dcdcdc; }
  .cs-minicart__items-total {
    margin-left: 0.5rem;
    color: #696969;
    font-weight: 400; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
      content: '('; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
      content: ')'; }
    .cs-minicart__items-total--empty .count {
      display: none; }
  .cs-minicart__edit-link {
    font-weight: 700; }
    .cs-minicart__edit-link .cs-link__icon {
      padding: 0 0 0 1rem; }
  .cs-minicart__content {
    height: auto !important;
    background-color: #fff;
    position: relative; }
    .cs-minicart__content .load.indicator:before {
      height: unset; }
  .cs-minicart__list {
    padding: 0;
    list-style: none;
    margin-bottom: 0; }
    .cs-minicart__list--scroll {
      height: auto !important;
      max-height: none;
      overflow-y: hidden; }
  .cs-minicart__list-item {
    padding: 1.5rem;
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 0;
    padding: 1.5rem 2rem; }
    .cs-minicart__list-item:last-child {
      border-bottom: none; }
  .cs-minicart__actions-wrapper {
    padding: 2rem 0;
    position: relative;
    padding: 1.5rem 2rem;
    box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27);
    min-height: 16.4rem;
    position: static;
    z-index: 1; }
    .cs-minicart__actions-wrapper:has(.cs-minicart__empty) {
      box-shadow: none; }
  .cs-minicart__actions {
    margin-top: 1rem; }
    .cs-minicart__actions:first-child {
      margin-top: 0; }
  .cs-minicart__empty {
    padding: 2rem 0;
    display: inline-block;
    font-size: 1.4rem;
    text-align: center;
    position: absolute;
    width: 100%;
    top: 5.1rem;
    left: 0; }
  .cs-minicart__subtotal {
    font-weight: 700;
    font-size: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.2rem; }
  .cs-minicart__subtotal-price .price {
    font-weight: 700;
    font-size: 1.5rem !important;
    font-size: 2.1rem !important; }
  .cs-minicart__button-checkout {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    width: 100%; }
    .cs-minicart__button-checkout:hover, .cs-minicart__button-checkout:focus, .cs-minicart__button-checkout:active {
      background-color: #78b0e0 !important; }
    .cs-minicart__button-checkout:before, .cs-minicart__button-checkout:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-minicart__button-checkout:before {
      width: 5.5rem;
      border-radius: 0 0px 0px 0;
      z-index: -1;
      background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
    .cs-minicart__button-checkout:after {
      width: 4rem;
      min-width: auto;
      background-color: #346097;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 0px; }
    .cs-minicart__button-checkout:hover:after {
      width: calc(100% + 2px); }
    .cs-minicart__button-checkout::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-minicart__button-checkout *, .cs-minicart__button-checkout:visited * {
        color: #fff;
        fill: #fff; }
    .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-minicart__button-checkout:hover:not([disabled]) *, .cs-minicart__button-checkout:focus:not([disabled]) *, .cs-minicart__button-checkout:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart__button-checkout[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-minicart__button-checkout-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-checkout-icon {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    width: 100%; }
    .cs-minicart__button-viewcart::before, .cs-minicart__button-viewcart::after {
      content: none; }
    .cs-minicart__button-viewcart::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #78b0e0;
      color: #78b0e0;
      background-color: #fff; }
      .cs-minicart__button-viewcart *, .cs-minicart__button-viewcart:visited * {
        color: #78b0e0;
        fill: #78b0e0; }
    .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #346097;
      color: #fff;
      background-color: #346097; }
      .cs-minicart__button-viewcart:hover:not([disabled]) *, .cs-minicart__button-viewcart:focus:not([disabled]) *, .cs-minicart__button-viewcart:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart__button-viewcart[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-minicart__button-viewcart-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-viewcart-icon {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-minicart__button-carousel-wrapper {
      display: flex;
      justify-content: center;
      padding-top: 3rem;
      margin: 3rem 0;
      border-top: 1px solid #dcdcdc; }
    .cs-minicart__button-carousel::before, .cs-minicart__button-carousel::after {
      content: none; }
    .cs-minicart__button-carousel::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #78b0e0;
      color: #78b0e0;
      background-color: #fff; }
      .cs-minicart__button-carousel *, .cs-minicart__button-carousel:visited * {
        color: #78b0e0;
        fill: #78b0e0; }
    .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #346097;
      color: #fff;
      background-color: #346097; }
      .cs-minicart__button-carousel:hover:not([disabled]) *, .cs-minicart__button-carousel:focus:not([disabled]) *, .cs-minicart__button-carousel:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart__button-carousel[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-minicart__button-carousel-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-carousel-icon {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em;
      /* stylelint-disable-next-line */ }
  .cs-minicart__messages {
    padding: 0 2rem; }
  .cs-minicart-offcanvas__wrapper {
    padding: 0;
    height: 100%; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }

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

.minicart-wrapper .ui-dialog {
  display: block !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: 1px 3px 3rem 0 rgba(72, 72, 72, 0.28);
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.4rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .modal-slide .modal-footer .action-primary *, .modal-slide .modal-footer .action-primary:visited *,
      .modal-slide .modal-footer .primary *,
      .modal-slide .modal-footer .primary:visited *,
      .modal-popup .modal-footer .action-primary *,
      .modal-popup .modal-footer .action-primary:visited *,
      .modal-popup .modal-footer .primary *,
      .modal-popup .modal-footer .primary:visited *,
      .modal-custom .modal-footer .action-primary *,
      .modal-custom .modal-footer .action-primary:visited *,
      .modal-custom .modal-footer .primary *,
      .modal-custom .modal-footer .primary:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]),
    .modal-slide .modal-footer .primary:hover:not([disabled]),
    .modal-slide .modal-footer .primary:focus:not([disabled]),
    .modal-slide .modal-footer .primary:active:not([disabled]),
    .modal-popup .modal-footer .action-primary:hover:not([disabled]),
    .modal-popup .modal-footer .action-primary:focus:not([disabled]),
    .modal-popup .modal-footer .action-primary:active:not([disabled]),
    .modal-popup .modal-footer .primary:hover:not([disabled]),
    .modal-popup .modal-footer .primary:focus:not([disabled]),
    .modal-popup .modal-footer .primary:active:not([disabled]),
    .modal-custom .modal-footer .action-primary:hover:not([disabled]),
    .modal-custom .modal-footer .action-primary:focus:not([disabled]),
    .modal-custom .modal-footer .action-primary:active:not([disabled]),
    .modal-custom .modal-footer .primary:hover:not([disabled]),
    .modal-custom .modal-footer .primary:focus:not([disabled]),
    .modal-custom .modal-footer .primary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]) *, .modal-slide .modal-footer .action-primary:focus:not([disabled]) *, .modal-slide .modal-footer .action-primary:active:not([disabled]) *,
      .modal-slide .modal-footer .primary:hover:not([disabled]) *,
      .modal-slide .modal-footer .primary:focus:not([disabled]) *,
      .modal-slide .modal-footer .primary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:active:not([disabled]) *,
      .modal-popup .modal-footer .primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .primary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:active:not([disabled]) *,
      .modal-custom .modal-footer .primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .primary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary[disabled],
    .modal-slide .modal-footer .primary[disabled],
    .modal-popup .modal-footer .action-primary[disabled],
    .modal-popup .modal-footer .primary[disabled],
    .modal-custom .modal-footer .action-primary[disabled],
    .modal-custom .modal-footer .primary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #78b0e0;
      color: #78b0e0;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary *, .modal-slide .modal-footer .action-secondary:visited *,
      .modal-slide .modal-footer .secondary *,
      .modal-slide .modal-footer .secondary:visited *,
      .modal-popup .modal-footer .action-secondary *,
      .modal-popup .modal-footer .action-secondary:visited *,
      .modal-popup .modal-footer .secondary *,
      .modal-popup .modal-footer .secondary:visited *,
      .modal-custom .modal-footer .action-secondary *,
      .modal-custom .modal-footer .action-secondary:visited *,
      .modal-custom .modal-footer .secondary *,
      .modal-custom .modal-footer .secondary:visited * {
        color: #78b0e0;
        fill: #78b0e0; }
    .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]),
    .modal-slide .modal-footer .secondary:hover:not([disabled]),
    .modal-slide .modal-footer .secondary:focus:not([disabled]),
    .modal-slide .modal-footer .secondary:active:not([disabled]),
    .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
    .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
    .modal-popup .modal-footer .action-secondary:active:not([disabled]),
    .modal-popup .modal-footer .secondary:hover:not([disabled]),
    .modal-popup .modal-footer .secondary:focus:not([disabled]),
    .modal-popup .modal-footer .secondary:active:not([disabled]),
    .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
    .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
    .modal-custom .modal-footer .action-secondary:active:not([disabled]),
    .modal-custom .modal-footer .secondary:hover:not([disabled]),
    .modal-custom .modal-footer .secondary:focus:not([disabled]),
    .modal-custom .modal-footer .secondary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #346097;
      color: #fff;
      background-color: #346097; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-slide .modal-footer .secondary:hover:not([disabled]) *,
      .modal-slide .modal-footer .secondary:focus:not([disabled]) *,
      .modal-slide .modal-footer .secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .secondary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-secondary[disabled],
    .modal-slide .modal-footer .secondary[disabled],
    .modal-popup .modal-footer .action-secondary[disabled],
    .modal-popup .modal-footer .secondary[disabled],
    .modal-custom .modal-footer .action-secondary[disabled],
    .modal-custom .modal-footer .secondary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      display: inline-block;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        cursor: pointer;
        border-radius: 0px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #78b0e0;
        color: #78b0e0;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-slide .modal-footer .secondary *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .secondary *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .secondary *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited * {
          color: #78b0e0;
          fill: #78b0e0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #346097;
        color: #fff;
        background-color: #346097; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .secondary[disabled] {
        opacity: 0.65;
        cursor: auto; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .modal-slide .modal-footer button:only-child *, .modal-slide .modal-footer button:only-child:visited *,
      .modal-popup .modal-footer button:only-child *,
      .modal-popup .modal-footer button:only-child:visited *,
      .modal-custom .modal-footer button:only-child *,
      .modal-custom .modal-footer button:only-child:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]),
    .modal-popup .modal-footer button:only-child:hover:not([disabled]),
    .modal-popup .modal-footer button:only-child:focus:not([disabled]),
    .modal-popup .modal-footer button:only-child:active:not([disabled]),
    .modal-custom .modal-footer button:only-child:hover:not([disabled]),
    .modal-custom .modal-footer button:only-child:focus:not([disabled]),
    .modal-custom .modal-footer button:only-child:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]) *, .modal-slide .modal-footer button:only-child:focus:not([disabled]) *, .modal-slide .modal-footer button:only-child:active:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:active:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child[disabled],
    .modal-popup .modal-footer button:only-child[disabled],
    .modal-custom .modal-footer button:only-child[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Lato", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #484848;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

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

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

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

.page-layout-checkout .modal-popup {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

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

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-navigation-teaser__figure {
  display: block;
  max-height: 100%;
  overflow: hidden; }

.cs-navigation-teaser__image {
  display: block; }

.cs-navigation-teaser__content-wrapper {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 6rem 3rem; }

.cs-navigation-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  color: #484848;
  text-align: center; }

.cs-navigation-teaser__headline {
  margin: 0 0 1rem;
  font-size: 3rem;
  line-height: 1.15;
  font-weight: 700;
  color: #484848; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__headline {
      font-size: 4.3rem;
      line-height: 1; } }

.cs-navigation-teaser__subheadline {
  margin: 0 0 1rem;
  font-size: 1.65rem;
  line-height: 1.15;
  font-weight: 400;
  color: #484848; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__subheadline {
      font-size: 2.8rem;
      line-height: 1.25; } }

.cs-navigation-teaser__text {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.15;
  font-weight: 300;
  color: #484848; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__text {
      font-size: 1.4rem; } }

.cs-navigation-teaser__cta {
  margin-top: 2rem; }

.cs-navigation-teaser__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-navigation-teaser__button:hover, .cs-navigation-teaser__button:focus, .cs-navigation-teaser__button:active {
    background-color: #78b0e0 !important; }
  .cs-navigation-teaser__button:before, .cs-navigation-teaser__button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-navigation-teaser__button:before {
    width: 5.5rem;
    border-radius: 0 0px 0px 0;
    z-index: -1;
    background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
  .cs-navigation-teaser__button:after {
    width: 4rem;
    min-width: auto;
    background-color: #346097;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 0px; }
  .cs-navigation-teaser__button:hover:after {
    width: calc(100% + 2px); }
  .cs-navigation-teaser__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-navigation-teaser__button, .cs-navigation-teaser__button:visited {
    cursor: pointer;
    border-radius: 0px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #78b0e0; }
    .cs-navigation-teaser__button *, .cs-navigation-teaser__button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-navigation-teaser__button:hover:not([disabled]), .cs-navigation-teaser__button:focus:not([disabled]), .cs-navigation-teaser__button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #346097; }
    .cs-navigation-teaser__button:hover:not([disabled]) *, .cs-navigation-teaser__button:focus:not([disabled]) *, .cs-navigation-teaser__button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-navigation-teaser__button[disabled] {
    opacity: 0.65;
    cursor: auto; }

.cs-navigation-teaser__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 4em; }

.cs-navigation-teaser__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 1em; }

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

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

.cs-navigation__link.empty i {
  display: none; }

.cs-navigation__list.cs-navigation__list--level_3 {
  display: none;
  overflow-y: scroll;
  scrollbar-color: #dcdcdc transparent; }
  .cs-navigation__list.cs-navigation__list--level_3::-webkit-scrollbar {
    background-color: transparent;
    width: 8px;
    pointer-events: none !important; }
  .cs-navigation__list.cs-navigation__list--level_3::-webkit-scrollbar-thumb {
    background: #dcdcdc;
    transform: scale(2);
    pointer-events: none !important; }

.cs-navigation__link--level_3 {
  text-transform: none; }

.cs-navigation__list--level_2 {
  background-color: #efefef;
  position: absolute;
  left: 33.33%;
  min-width: 33.33%;
  top: 0;
  overflow-y: scroll;
  height: 100%;
  scrollbar-color: #dcdcdc transparent; }
  .cs-navigation__list--level_2 .my-title_2,
  .cs-navigation__list--level_2 .my-title_3 {
    text-align: center;
    font-size: 26px;
    padding: 20px 0;
    font-weight: 700; }
  .cs-navigation__list--level_2::-webkit-scrollbar {
    position: absolute;
    background-color: transparent;
    width: 8px; }
  .cs-navigation__list--level_2::-webkit-scrollbar-thumb {
    background: #dcdcdc;
    transform: scale(2); }

.cs-navigation__list--level_3 {
  background-color: white;
  position: fixed;
  left: 66.66%;
  max-width: 100%;
  min-width: 33.33%;
  top: 0;
  height: 100%; }

.cs-navigation__list--level_1 {
  width: 33.33% !important;
  flex-direction: column;
  display: flex;
  overflow-y: inherit;
  overflow-x: hidden;
  height: 440px;
  scrollbar-color: #dcdcdc transparent; }
  .cs-navigation__list--level_1::-webkit-scrollbar {
    position: absolute;
    background-color: transparent;
    width: 8px; }
  .cs-navigation__list--level_1::-webkit-scrollbar-thumb {
    background: #dcdcdc;
    transform: scale(2); }

.cs-navigation__products.cs-navigation__extras {
  display: block;
  padding: 0;
  position: absolute;
  max-width: 25%;
  width: 25%;
  min-width: 25%;
  height: 100%;
  top: 0;
  left: 24%;
  background: white; }

.cs-product-tile--grid.cs-product-tile--static .cs-product-tile__name-link {
  display: none; }

.cs-navigation__link {
  border-bottom: 1px solid transparent;
  display: inline-flex;
  justify-content: space-between;
  padding: 12px; }

.cs-navigation__link--level_1,
.cs-navigation__link--level_2,
.cs-navigation__link--level_3 {
  font-size: 1.5rem;
  pointer-events: none;
  padding: 6px 12px; }

.cs-navigation__link.empty {
  pointer-events: all; }

.cs-navigation__item .fa-chevron-right {
  display: inline-flex;
  align-items: center; }

.cs-navigation__item:hover {
  background-color: #dcdcdc; }

.cs-navigation__link.cs-navigation__link--main {
  cursor: pointer; }

.cs-navigation__item.cs-navigation__item--level_3 .cs-navigation__link.cs-navigation__link--level_3 {
  width: 100%; }

.cs-navigation__item--with-flyout > .cs-navigation__link:after {
  content: "\f078";
  font-family: "Font Awesome 5 Pro";
  display: inline-flex;
  align-items: center;
  height: 100%;
  font-weight: 600;
  margin-left: 5px;
  text-decoration: none !important; }

.underline {
  text-decoration: underline; }

.cs-navigation__item.cs-navigation__item--main.cs-navigation__item--with-flyout:hover {
  text-decoration: none !important; }

.active-category {
  background-color: #dcdcdc; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-newsletter__button *, .cs-newsletter__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-newsletter__button:hover:not([disabled]) *, .cs-newsletter__button:focus:not([disabled]) *, .cs-newsletter__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #484848; }
    .cs-offcanvas-navigation__link:hover {
      color: #484848; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #78b0e0; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #78b0e0; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #78b0e0; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #78b0e0; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #78b0e0;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #78b0e0;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #78b0e0; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #78b0e0; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #78b0e0; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #78b0e0; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #78b0e0;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #FFEF45;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #FFEF45;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%; }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #78b0e0;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #78b0e0; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #78b0e0;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #484848;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.category-view {
  max-width: 130rem;
  margin: 0 auto; }
  .category-view .page-title-wrapper {
    margin: 0 0 2rem;
    position: relative; }
    .category-view .page-title-wrapper:before {
      content: " ";
      display: block;
      width: 97%;
      height: 1px;
      background-color: #dcdcdc;
      position: relative;
      top: 20px;
      margin: 0 auto;
      z-index: -1; }
      @media (min-width: 1300px) {
        .category-view .page-title-wrapper:before {
          width: 100%; } }

.page-title {
  font-family: "Lato", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #484848;
  font-weight: 700;
  text-transform: uppercase;
  margin: 1rem 0 2rem;
  padding-bottom: 1rem;
  text-transform: none;
  font-weight: 700;
  margin: 0 auto;
  max-width: 130rem;
  display: table;
  text-align: left;
  position: relative;
  background-color: #fff;
  z-index: 1;
  padding: 0 22px;
  font-size: 36px;
  color: #484848; }
  .page-title__headline {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    display: inline; }
    .page-title__headline .base {
      text-transform: initial; }
  .page-title__span {
    color: #696969;
    font-weight: 300;
    padding: 0; }

.amlocator-location-view .page-title-wrapper {
  display: none; }

.amlocator-index-index .page-title-wrapper {
  padding-top: 4rem;
  margin: 0 0 2rem;
  position: relative; }
  .amlocator-index-index .page-title-wrapper:before {
    content: " ";
    display: block;
    width: 97%;
    height: 1px;
    background-color: #dcdcdc;
    position: relative;
    top: 20px;
    margin: 0 auto;
    z-index: -1; }
    @media (min-width: 1300px) {
      .amlocator-index-index .page-title-wrapper:before {
        width: 100%; } }

.page-products.catalog-category-view .cs-product-tile__addons,
.page-products.catalogsearch-result-index .cs-product-tile__addons {
  display: none; }

.products.list.items.product-items.cs-products-list__items .cs-product-tile__name-link {
  display: flex !important;
  justify-content: space-between; }
  .products.list.items.product-items.cs-products-list__items .cs-product-tile__name-link:before {
    display: none;
    content: "Zobacz więcej";
    min-width: 120px;
    height: 33px;
    font-weight: 400;
    align-items: center;
    justify-content: center;
    right: 33px;
    padding: 0 10px;
    font-size: 15px;
    border: 1px solid #e41f12;
    color: #e41f12;
    order: 4;
    margin-right: 30px; }
    @media (min-width: 48em) {
      .products.list.items.product-items.cs-products-list__items .cs-product-tile__name-link:before {
        display: flex; } }
  .products.list.items.product-items.cs-products-list__items .cs-product-tile__name-link:after {
    content: "\f105";
    font-family: "Font Awesome 5 Pro";
    width: 33px;
    height: 33px;
    font-weight: 400;
    display: block;
    position: absolute;
    right: 0;
    text-align: center;
    background: #e41f12;
    color: #fff; }

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

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

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #78b0e0;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 0px;
  background-color: #fff; }
  @media (min-width: 64em) {
    .cs-product-tile:hover {
      z-index: 5; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main,
  .cs-product-tile--hidden .cs-product-tile__addons {
    visibility: hidden !important; }
  .cs-product-tile--grid.cs-product-tile--static .cs-product-tile__addons {
    display: none; }
  .cs-product-tile__container {
    display: flex;
    height: 100%;
    width: 100%; }
    .cs-product-tile--grid .cs-product-tile__container {
      flex-direction: column;
      padding: 1.5rem; }
    .cs-product-tile--list .cs-product-tile__container {
      flex-direction: row;
      padding: 1.5rem 0; }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container {
          flex-direction: column; } }
  .cs-product-tile--list .cs-product-tile__link {
    display: flex;
    width: 100%; }
  .cs-product-tile--grid .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    padding: 0;
    display: block;
    width: 33%; }
    @media (max-width: 47.99em) {
      .cs-product-tile__thumbnail {
        width: 100%; } }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__thumbnail-link {
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__thumbnail-link {
      padding: 0 1.5rem 0 0;
      height: 100%;
      flex-grow: initial; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__thumbnail-link {
          padding: 0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
        padding: 0 1.5rem 0 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
            padding: 0; } }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__figure {
      width: 100%;
      justify-content: flex-start;
      align-items: center;
      top: 0;
      position: relative; }
      .cs-product-tile--grid .cs-product-tile__figure:before {
        display: block;
        content: '';
        width: 100%;
        padding-top: 75%; }
      .cs-product-tile--grid .cs-product-tile__figure .cs-product-tile__thumbnail-link {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0; }
    .cs-product-tile--list .cs-product-tile__figure {
      width: 100%;
      justify-content: center;
      align-items: flex-start; }
      @media (max-width: 29.99em) {
        .cs-product-tile--list .cs-product-tile__figure {
          width: 50%; } }
      .cs-product-tile--list .cs-product-tile__figure:before {
        content: none; }
  .cs-product-tile__image {
    width: auto;
    height: auto;
    max-width: 100%;
    margin: auto; }
    .cs-product-tile--grid .cs-product-tile__image {
      position: absolute;
      top: 0;
      left: 0; }
    .cs-product-tile--list .cs-product-tile__image {
      max-height: 100%;
      position: relative !important;
      margin-top: 0;
      display: flex; }
  .cs-product-tile__img {
    width: 100%;
    height: auto; }
    .cs-product-tile__img[src*='placeholder'] {
      display: block;
      width: 35rem;
      height: auto;
      max-width: 100%;
      max-height: 100%; }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap; }
    .cs-product-tile--list .cs-product-tile__badges--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges--list {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0.3rem;
      flex-direction: column; }
    .cs-product-tile--list .cs-product-tile__badges {
      margin: 0 0 0 0.3rem;
      justify-content: flex-start; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #78b0e0;
    color: #fff;
    border: 0;
    border-radius: 0px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #FFEF45;
      color: #000; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #82cad4;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #82cad4;
      color: #fff; }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__badge-item {
      margin: 0 1rem 0.3rem 0; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile--list .cs-product-tile__gallery {
    display: none !important; }
  .cs-product-tile__content {
    padding: 0;
    display: flex;
    align-items: stretch; }
    .cs-product-tile--grid .cs-product-tile__content {
      flex-direction: column;
      flex: 1 1; }
    .cs-product-tile--list .cs-product-tile__content {
      position: relative;
      flex: 1 1 auto;
      flex-direction: column-reverse; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__content {
          flex-direction: row-reverse; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
        flex-direction: column-reverse; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
            flex-direction: row-reverse; } }
  .cs-product-tile__addons {
    position: absolute;
    left: 0;
    z-index: -1;
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    overflow: hidden;
    background: #fff;
    border-radius: 0px; }
    .cs-product-tile--list .cs-product-tile__addons {
      padding: 0;
      margin: 1rem 0 0;
      position: relative;
      z-index: 1;
      opacity: initial;
      box-shadow: none;
      transform: none;
      overflow: visible; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__addons {
          flex: 0 0 25rem;
          padding: 0 0 0 1.5rem;
          margin: 0;
          flex-direction: column;
          border-left: 1px solid #f0f0f0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
        padding: 0;
        margin: 1rem 0 0;
        flex: 1 0 auto;
        flex-direction: row;
        border-left: none; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
            padding: 0 0 0 1.5rem;
            margin: 0;
            flex: 0 0 25rem;
            flex-direction: column;
            border-left: 1px solid #f0f0f0; } }
    .cs-product-tile--grid .cs-product-tile__addons {
      align-items: flex-end;
      opacity: 1;
      top: 0;
      padding: 0;
      box-shadow: 1px 3px 3rem 0 rgba(72, 72, 72, 0.28);
      transform: translate3d(0, -3rem, 0); }
    @media (min-width: 64em) {
      .cs-product-tile:hover .cs-product-tile__addons {
        opacity: 1;
        transform: translate3d(0, 0, 0);
        transition: opacity 0.1s linear, transform 0.33s cubic-bezier(0, 0.66, 0.32, 0.99); } }
  @media (min-width: 64em) and (pointer: coarse) {
    .cs-product-tile:hover .cs-product-tile__addons {
      opacity: 0;
      transform: none; } }
    .cs-product-tile:hover .cs-product-tile__addons .cs-product-tile.no-transition,
    .cs-product-tile--static .cs-product-tile:hover .cs-product-tile__addons {
      transition: none; }
  .cs-product-tile__addons-top {
    width: 100%; }
  .cs-product-tile__addons-sides {
    display: flex;
    width: 100%; }
  .cs-product-tile__addons-right {
    padding-left: 1rem;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    .cs-product-tile--grid .cs-product-tile__addons-right {
      align-items: flex-end; }
    .cs-product-tile--list .cs-product-tile__addons-right {
      align-items: flex-start;
      padding-left: 0;
      order: 2;
      width: 100%; }
  .cs-product-tile__addons-bottom {
    width: 100%; }
    .cs-product-tile--list .cs-product-tile__addons-bottom {
      display: none; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__addons-bottom {
          display: block; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
        display: none; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
            display: block; } }
  .cs-product-tile__addons-left {
    padding-right: 1rem;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    .cs-product-tile--grid .cs-product-tile__addons-left {
      align-items: flex-start; }
    .cs-product-tile--list .cs-product-tile__addons-left {
      align-items: flex-end;
      padding-right: 0;
      order: 2; }
  .cs-product-tile__review--grid {
    margin: 1rem 0 0; }
    .cs-product-tile--list .cs-product-tile__review--grid {
      display: none; }
  .cs-product-tile__review--list {
    margin: 0 0 1rem; }
    @media (min-width: 48em) {
      .cs-product-tile__review--list {
        position: absolute;
        top: 0;
        right: 2rem; }
        .cs-product-tile--list .cs-product-tile__review--list + .cs-product-tile__name {
          padding-right: 12rem; } }
    .cs-products-list--with-sidebar .cs-product-tile__review--list {
      position: relative;
      top: initial;
      right: initial; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__review--list {
          position: absolute;
          top: 0;
          right: 2rem;
          margin: 0 0 1rem; }
          .cs-product-tile--list .cs-products-list--with-sidebar .cs-product-tile__review--list + .cs-product-tile__name {
            padding-right: 12rem; } }
    .cs-product-tile--grid .cs-product-tile__review--list {
      display: none; }
  .cs-product-tile__review:empty {
    margin: 0 !important; }
  .cs-product-tile__stock {
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem; }
    .cs-product-tile__stock--in {
      color: #82cad4; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
    .cs-product-tile--grid .cs-product-tile__stock {
      margin: 0; }
    .cs-product-tile--list .cs-product-tile__stock {
      margin: 0 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal--grid {
    display: none !important; }
  .cs-product-tile__dailydeal--list {
    position: relative;
    width: auto;
    margin-bottom: 0; }
    .cs-product-tile--grid .cs-product-tile__dailydeal--list {
      display: none !important; }
    .cs-product-tile__dailydeal--list.cs-dailydeal--tile {
      position: relative;
      width: auto;
      bottom: 0; }
  .cs-product-tile--grid .cs-product-tile__dailydeal {
    margin: 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal {
    margin: 1rem 0 0 0; }
  .cs-product-tile__qty {
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__main {
    position: relative;
    display: flex;
    align-items: stretch; }
    .cs-product-tile--grid .cs-product-tile__main {
      flex-direction: column;
      height: 100%;
      justify-content: center; }
    .cs-product-tile--list .cs-product-tile__main {
      flex-direction: row;
      flex: 1 1 100%; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__main {
          padding: 0 2rem; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
        padding: 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
            padding: 0 2rem; } }
  .cs-product-tile__details {
    flex-shrink: 0; }
    .cs-product-tile--list .cs-product-tile__details {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      flex: 1 1;
      padding: 0; }
  .cs-product-tile__swatches {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__swatches {
      margin: 1.5rem 0 1rem;
      min-height: 2.6rem; }
      .cs-product-tile--grid .cs-product-tile__swatches,
      .cs-product-tile--grid .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: center; }
    .cs-product-tile--list .cs-product-tile__swatches {
      width: 100%;
      margin: 0 0 0.5rem; }
      .cs-product-tile--list .cs-product-tile__swatches:empty {
        margin: 0; }
      .cs-product-tile--list .cs-product-tile__swatches,
      .cs-product-tile--list .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: flex-start; }
    .cs-product-tile__swatches--list:empty {
      margin: 0 !important; }
  .cs-product-tile__brand {
    height: 2rem;
    margin-top: 1.5rem;
    text-align: center; }
    .cs-product-tile__brand--empty {
      height: 0; }
    .cs-product-tile--list .cs-product-tile__brand {
      margin: 0;
      order: -2;
      text-align: left; }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-product-tile__name {
    line-height: 1.8rem;
    font-weight: 400;
    font-size: 1.5rem;
    overflow: hidden;
    width: 100%; }
    .cs-product-tile--grid .cs-product-tile__name {
      height: 3.8rem;
      margin: 0 0 1.5rem;
      text-align: center; }
    .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__name {
      margin-top: 1.5rem; }
    .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
      margin-top: 0; }
    .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand--empty + .cs-product-tile__name {
      height: 5.8rem; }
    .cs-product-tile--list .cs-product-tile__name {
      margin: 0 0 1rem;
      text-align: left;
      order: -1; }
  .cs-product-tile__name-link {
    color: #484848;
    font-weight: 600;
    padding-top: 15px;
    font-size: 2.4rem;
    transition: color 0.15s linear;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 2;
    /* autoprefixer: ignore next */
    line-clamp: 2;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    @media (max-width: 47.99em) {
      .cs-product-tile__name-link {
        font-size: 2.0rem; } }
    @media (max-width: 29.99em) {
      .cs-product-tile__name-link {
        font-size: 1.7rem;
        max-width: 280px; } }
    @media (max-width: 23.115em) {
      .cs-product-tile__name-link {
        font-size: 1.5rem;
        max-width: 70%; } }
    .cs-product-tile__name-link:visited {
      color: #484848; }
    .cs-product-tile__name-link:hover {
      color: #346097;
      text-decoration: none; }
  .cs-product-tile__description {
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.4;
    color: #696969;
    margin: 0 0 1rem; }
    .cs-product-tile--grid .cs-product-tile__description {
      display: none; }
    .cs-product-tile--list .cs-product-tile__description {
      width: 100%;
      text-align: left; }
    .cs-product-tile__description:empty {
      margin: 0 !important; }
  .cs-product-tile__additional--list {
    margin: auto 0 0 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%; }
    @media (min-width: 48em) {
      .cs-product-tile__additional--list {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between; } }
    .cs-products-list--with-sidebar .cs-product-tile__additional--list {
      flex-direction: column;
      align-items: flex-start; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__additional--list {
          flex-direction: row;
          align-items: flex-end;
          justify-content: space-between; } }
  .cs-product-tile--list .cs-product-tile__addto--grid {
    display: none; }
  .cs-product-tile--grid .cs-product-tile__addto--list {
    display: none; }
  .cs-product-tile--grid .cs-product-tile__addto {
    margin: 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__addto {
    margin: 1rem 0 0; }
  .cs-product-tile__addto .cs-links-block-addto__link {
    font-size: 1.3rem; }
  .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
  .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
    display: none; }
  .cs-product-tile__addto:empty {
    margin: 0 !important; }
  .cs-product-tile--grid .cs-product-tile__addtocart {
    margin: 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__addtocart {
    margin: 0.5rem 0 0; }
  .cs-product-tile__addtocart-button {
    width: 100%; }
  .cs-product-tile__wishlist-remove-icon {
    position: absolute;
    top: 0;
    right: 0;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    .cs-product-tile--list .cs-product-tile__wishlist-comment {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__wishlist-actions {
    margin: 1rem 0 0;
    display: flex;
    justify-content: space-between; }
  .cs-product-tile__price {
    line-height: 1.2; }
    .cs-product-tile--list .cs-product-tile__price--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__price--list {
      display: none; }
    .cs-product-tile__price .price-box {
      display: flex; }
      .cs-product-tile__price .price-box .price {
        font-size: 1.5rem;
        font-weight: 700;
        color: #78b0e0; }
      .cs-product-tile__price .price-box .old-price .price {
        font-size: 1.5rem;
        font-weight: 700;
        color: #696969;
        text-decoration: line-through; }
      .cs-product-tile__price .price-box .special-price .price {
        font-size: 1.5rem;
        font-weight: 700;
        color: #e41f12; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile--grid .cs-product-tile__price .price-box {
        margin: 0;
        align-items: center;
        justify-content: center; }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price {
          order: -1; }
        .cs-product-tile--grid .cs-product-tile__price .price-box .minimal-price {
          align-items: center; }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price {
          margin-right: 1rem; }
      .cs-product-tile--list .cs-product-tile__price .price-box {
        justify-content: flex-end;
        margin: 0;
        text-align: right;
        flex-direction: column; }
        .cs-product-tile--list .cs-product-tile__price .price-box .price-wrapper {
          justify-content: flex-end; }
        .cs-product-tile--list .cs-product-tile__price .price-box .old-price {
          order: -1; }
        .cs-product-tile--list .cs-product-tile__price .price-box .price-from {
          margin-right: 0; }
        .cs-product-tile--list .cs-product-tile__price .price-box .minimal-price {
          flex-direction: column; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }

.page-products.catalog-category-view .cs-products-list__item.grouped .price-box,
.page-products.catalogsearch-result-index .cs-products-list__item.grouped .price-box {
  display: none; }

.page-products.catalog-category-view .items.product-items .cs-links-block-addto__item--compare,
.page-products.catalog-category-view .items.product-items .cs-links-block-addto__item--wishlist,
.page-products.catalog-category-view .items.product-items .cs-product-tile__stock--in,
.page-products.catalogsearch-result-index .items.product-items .cs-links-block-addto__item--compare,
.page-products.catalogsearch-result-index .items.product-items .cs-links-block-addto__item--wishlist,
.page-products.catalogsearch-result-index .items.product-items .cs-product-tile__stock--in {
  display: none; }

.catalog-product-view .cs-product-tile__container {
  flex-direction: row; }

.catalog-product-view .cs-product-tile__addons {
  padding: 100% 1.5rem 1.5rem; }

.catalog-product-view .cs-product-tile__thumbnail {
  width: 100%; }

.catalog-product-view .cs-product-tile__main {
  display: none; }

.promo .price {
  text-decoration: line-through; }

.cs-product-tile__stock.cs-product-tile__stock--out {
  text-align: center;
  width: 100%;
  border: 1px solid #e41f12;
  padding: 10px; }

.cs-products-carousel__slides .cs-product-tile__name-link {
  display: block;
  font-weight: 400;
  font-size: 20px;
  margin-bottom: 15px; }

.cs-products-carousel__slides .cs-products-carousel__slide--in-viewport {
  width: 100% !important;
  margin-right: 3%; }
  @media (min-width: 30.01em) {
    .cs-products-carousel__slides .cs-products-carousel__slide--in-viewport {
      width: 50% !important;
      margin-right: 1%; } }
  @media (min-width: 64em) {
    .cs-products-carousel__slides .cs-products-carousel__slide--in-viewport {
      width: 24% !important; } }
  .cs-products-carousel__slides .cs-products-carousel__slide--in-viewport .cs-product-tile__container {
    padding: 0; }

.cs-products-carousel__slides .cs-product-tile__container {
  display: block; }
  .cs-products-carousel__slides .cs-product-tile__container .cs-product-tile__thumbnail {
    width: 100%; }
    .cs-products-carousel__slides .cs-product-tile__container .cs-product-tile__thumbnail .cs-product-tile__content {
      display: block; }

.cs-products-carousel__slides .cs-product-tile__addtocart-button {
  width: 100%; }

.cs-products-carousel__slides .cs-product-tile__addons {
  transform: none;
  box-shadow: none; }
  .cs-products-carousel__slides .cs-product-tile__addons .cs-product-tile__addto.cs-product-tile__addto--grid,
  .cs-products-carousel__slides .cs-product-tile__addons .cs-product-tile__stock.cs-product-tile__stock--in {
    display: none; }

.cs-products-carousel__slides .cs-product-tile__details.product-item-details {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 34px 0;
    box-shadow: 0 0 7px 3px #eee;
    padding: 0 15px; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #484848;
    background: #fff;
    border-radius: 0px;
    border: 1px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 1px solid #78b0e0;
      box-shadow: none; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input[disabled] {
      opacity: 0.65; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #78b0e0; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #78b0e0;
      border: 1px solid #78b0e0;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #484848;
  border-radius: 0px;
  border: 1px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s; }
  .cs-select:-moz-focusring, .cs-select::-moz-focus-inner {
    color: transparent !important;
    text-shadow: 0 0 0 #000 !important; }
  .cs-select:hover:not([disabled]), .cs-select:focus:not([disabled]) {
    border: 1px solid #78b0e0;
    box-shadow: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%2378b0e0'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
  .cs-select[disabled] {
    opacity: 0.65; }
  .cs-select option {
    font-weight: 500;
    padding: 0;
    color: initial; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 1rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  position: relative;
  border-radius: 1rem; }
  .ui-slider-horizontal .ui-slider-handle {
    width: 1rem;
    height: 1rem;
    background: #78b0e0;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -0.5rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1.5);
      background: #346097; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #484848;
    color: inherit;
    border-radius: 0px;
    transform: skew(-18deg);
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #346097; }
  .cs-social-media-list__icon {
    position: absolute;
    fill: #fff;
    transform: translate3d(-55%, -55%, 0) skew(18deg);
    transition: fill 0.15s linear;
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #484848;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }

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

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

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

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

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 0px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 0px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #346097; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/push-notification/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #78b0e0; }

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

.swatch-more {
  display: none; }

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

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

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

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

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

.cs-container--top-bar {
  background-color: #f0f0f0;
  max-width: none; }

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

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

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

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

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

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

a, a:visited {
  color: #78b0e0;
  text-decoration: none; }

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

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__picture {
  position: relative; }

.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__content,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__overlay,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__gradient,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__optimizer-container {
  z-index: 1; }

.cs-image-teaser [data-video-teaser] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1; }
  .cs-image-teaser [data-video-teaser]:empty {
    display: none; }

.cs-image-teaser [id^='video-teaser'] {
  width: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.cs-header__logo .logo {
  display: flex !important; }

.table.data.grouped .rows.tier-price.row-zero {
  height: unset; }

.table.data.grouped .tbody.closed > tr.tier-price:not(.row-zero) {
  display: none !important; }

.table.data.grouped .tbody > tr.tier-price.row-zero .ecommerce-tuplex {
  display: none; }

.table.data.grouped .tbody.closed > tr.tier-price.row-zero .ecommerce-tuplex {
  display: table-cell; }

.table.data.grouped .rows.tier-price.summary.qty .cs-qty-increment__input {
  border: none;
  opacity: 1 !important;
  font-weight: 700; }

.table.data.grouped .unfold-tiers {
  color: red;
  cursor: pointer;
  font-weight: 700; }

.table.data.grouped .rows.tier-price.summary.qty * {
  font-weight: 700; }

.table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper {
  display: flex;
  align-items: center;
  justify-content: center; }
  .table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper .control.qty.summary {
    width: 50px;
    position: relative; }
    .table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper .control.qty.summary .cs-qty-increment > input {
      background: transparent; }
    .table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper .control.qty.summary::after {
      content: '';
      position: absolute;
      width: 55px;
      height: 55px;
      left: 0px;
      top: 0px; }
  .table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper .qty-step-brutto {
    width: 70px; }
  .table.data.grouped .rows.tier-price.summary.qty .qty.summary-wrapper .brutto-label {
    margin-right: 10px; }

.table.data.grouped .rows.tier-price .col.item.ecommerce-tuplex .row-brutto {
  color: red;
  font-size: 1.2rem; }

.table.data.grouped .rows.tier-price .col.item.ecommerce-tuplex .row-paczka {
  font-weight: 700; }

.table.data.grouped .rows.tier-price.summary.qty .col.item.sumary-label .matching-qty-step {
  font-weight: 400; }

.table.data.grouped .rows.tier-price.summary.qty .col.item.sumary-label .matching-qty-step-brutto {
  color: red;
  font-size: 1.2rem;
  font-weight: 400; }

.table.data.grouped > tbody:nth-child(even) {
  background-color: #f5f5f5; }
  .table.data.grouped > tbody:nth-child(even) .qty.summary-wrapper-placeholder {
    background: #f5f5f5; }

.table.data.grouped .cs-qty-increment__button--decrement,
.table.data.grouped .cs-qty-increment__button--increment {
  background: white; }

.table.data.grouped > tbody.tier-price {
  border-collapse: collapse; }

.table.data.grouped > tbody.tier-price td {
  border: 1px solid #d8d8d8; }

.table.data.grouped > tbody.tier-price:first-child > tr > td:first-child {
  border-top: 0 !important; }

.table.data.grouped > tbody.tier-price:not(.closed) > tr:first-child td {
  border-top: 0; }

.table.data.grouped > tbody.tier-price > tr:nth-child(2) td {
  border-top: 0; }

.table.data.grouped > tbody.tier-price > tr > td:first-child {
  border-left: 0; }

.table.data.grouped > tbody.tier-price > tr:last-child td {
  border-bottom: 0; }

.table.data.grouped > tbody.tier-price > tr > td:last-child {
  border-right: 0; }

.table.data.grouped > thead {
  border-bottom: 0 !important; }

.table.data.grouped tr > .col.qty.ilosc.ecommerce-tuplex.tiers {
  padding: 15px; }

.cs-cart-summary__totals .data.table.totals > tbody {
  display: flex;
  flex-direction: column; }

.cs-cart-summary__totals .data.table.totals > tbody > tr {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between; }

.cs-cart-summary__totals .data.table.totals > tbody > .totals-tax {
  order: 99; }

.cs-cart-summary__totals .data.table.totals > tbody > .grand.totals.excl {
  order: 98; }

.cs-cart-summary__totals .data.table.totals > tbody > .grand.totals.incl {
  order: 100; }

.col.item.wartosc.ecommerce-tuplex::after,
.col.item.ecommerce-tuplex.sztuka::after {
  content: none !important; }

.col.item.wartosc.ecommerce-tuplex .netto,
.col.item.ecommerce-tuplex.sztuka .netto {
  font-size: 1.4rem;
  color: #484848;
  font-weight: 400; }
  .col.item.wartosc.ecommerce-tuplex .netto::before,
  .col.item.ecommerce-tuplex.sztuka .netto::before {
    content: none; }

.col.item.wartosc.ecommerce-tuplex .brutto,
.col.item.ecommerce-tuplex.sztuka .brutto {
  color: red;
  font-size: 1.2rem !important;
  font-weight: 400; }
  .col.item.wartosc.ecommerce-tuplex .brutto::before,
  .col.item.ecommerce-tuplex.sztuka .brutto::before {
    content: none; }

.rows.summary.qty > .col.item.wartosc::after {
  content: none !important; }

.rows.summary.qty > .col.item.wartosc .netto {
  font-size: 1.4rem;
  color: #484848;
  font-weight: 400; }
  .rows.summary.qty > .col.item.wartosc .netto::before {
    content: none; }

.rows.summary.qty > .col.item.wartosc .brutto {
  color: red;
  font-size: 1.2rem;
  font-weight: 400; }
  .rows.summary.qty > .col.item.wartosc .brutto::before {
    content: none; }

.redingo-on-line.catalog-link-to-shop > span::before {
  width: 20px !important;
  height: 20px !important; }

nav.cs-navigation > .cs-navigation__list--main > .cs-navigation__item.cs-navigation__item--main[data-category-id|="556"] .cs-navigation__link--main {
  text-decoration: none; }

nav.cs-navigation > .cs-navigation__list--main > .cs-navigation__item.cs-navigation__item--main[data-category-id|="556"] .cs-navigation__link--main::before {
  content: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/red-cart.svg");
  display: block;
  width: 19px;
  height: auto;
  color: white;
  margin-right: 8px;
  text-decoration: none !important; }
  nav.cs-navigation > .cs-navigation__list--main > .cs-navigation__item.cs-navigation__item--main[data-category-id|="556"] .cs-navigation__link--main::before:hover {
    text-decoration: none !important; }

.counter.qty.empty.cs-header-user-nav__qty-counter.cs-header-user-nav__qty-counter--minicart.cs-addtocart__minicart-qty-badge.cs-header-user-nav__qty-counter--empty {
  opacity: 1 !important; }

.counter.qty.empty.cs-header-user-nav__qty-counter.cs-header-user-nav__qty-counter--minicart .cs-header-user-nav__qty-counter-span {
  min-width: unset !important; }

.cs-product-tile__details.product-item-details .divTable > .divTableBody .divTableCell.ecommerce-tuplex_ .redingo-on-line.catalog-link-to-shop {
  display: flex;
  align-items: center;
  background: #e41f12;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 700;
  padding: 5px;
  border-radius: 2px;
  color: white;
  margin: 0 auto; }
  .cs-product-tile__details.product-item-details .divTable > .divTableBody .divTableCell.ecommerce-tuplex_ .redingo-on-line.catalog-link-to-shop .online-price {
    display: flex;
    justify-content: center;
    align-items: center; }

.cs-product-tile__container .cs-product-tile__main .divTable .divTableBody > .divTableRow:hover .divTableCell {
  background: #dddddd; }

.category-tuplex-international .cs-container.cs-container--image-teaser.cs-container--image-teaser-window-width.cs-container--teaser-and-text {
  margin-bottom: 0; }
  .category-tuplex-international .cs-container.cs-container--image-teaser.cs-container--image-teaser-window-width.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text {
    gap: 0 !important; }
    .category-tuplex-international .cs-container.cs-container--image-teaser.cs-container--image-teaser-window-width.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text .cs-image-teaser__content p.cs-image-teaser__slogan {
      font-size: 32px !important;
      font-weight: 700 !important; }
    .category-tuplex-international .cs-container.cs-container--image-teaser.cs-container--image-teaser-window-width.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text .cs-image-teaser__content p.cs-image-teaser__description {
      font-size: 23px !important; }
    .category-tuplex-international .cs-container.cs-container--image-teaser.cs-container--image-teaser-window-width.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text .cs-image-teaser__content .cs-image-teaser__cta span.cs-image-teaser__cta-span {
      font-size: 16px !important; }

.category-kim-jestesmy .cs-container.cs-container--image-teaser.cs-container--teaser-and-text {
  margin-bottom: 0; }
  .category-kim-jestesmy .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__content p.cs-image-teaser__slogan {
    font-size: 32px !important;
    font-weight: 700 !important; }
  .category-kim-jestesmy .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text {
    gap: 0 !important; }
  .category-kim-jestesmy .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__content .cs-image-teaser__cta span.cs-image-teaser__cta-button-span {
    font-size: 16px !important; }
  .category-kim-jestesmy .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__content .cs-image-teaser__cta span.cs-image-teaser__cta-span {
    font-size: 16px !important; }

.sidebar.sidebar-additional > .widget.block {
  margin-bottom: 20px; }

.sidebar.sidebar-additional .block-content .item.clearfix {
  display: flex;
  flex-direction: column;
  padding-top: 20px; }
  .sidebar.sidebar-additional .block-content .item.clearfix .post-image {
    margin-right: 0px;
    margin-bottom: 5px;
    width: 100%;
    border: none;
    padding: 0;
    display: flex; }
  .sidebar.sidebar-additional .block-content .item.clearfix .post-item-link {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden; }
  .sidebar.sidebar-additional .block-content .item.clearfix .post-item-date {
    display: none; }

.blog-page .page-title-wrapper > .page-title {
  margin-top: 3rem; }

.blog-page .post-holder > .redingo-post-header {
  display: flex;
  align-items: center;
  margin-bottom: 15px; }
  .blog-page .post-holder > .redingo-post-header .post-category {
    margin-bottom: 0px !important;
    margin-right: 25px;
    height: 100%;
    min-height: 27px;
    background: #010101;
    display: flex;
    align-items: center; }
    .blog-page .post-holder > .redingo-post-header .post-category .category-name {
      display: flex;
      margin: 1px; }
  .blog-page .post-holder > .redingo-post-header .post-tag {
    margin-bottom: 0px !important; }
    .blog-page .post-holder > .redingo-post-header .post-tag .item.post-tags {
      display: flex; }
    .blog-page .post-holder > .redingo-post-header .post-tag .post-tag-title {
      margin-bottom: 0px !important;
      margin-right: 0px !important;
      background-color: white;
      border-color: white;
      color: #010101;
      border-left: 1px solid #d5d6da;
      border-bottom: 0px;
      border-top: 0px; }

.post-list-wrapper .post-list.modern .post-container .post-info .post-data-wrap {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.page-layout-landing-category .cs-page-category {
  padding-top: 0; }

.page-layout-landing-category .category-view {
  position: relative; }

.page-layout-landing-category .tuplex-lending-top {
  position: absolute;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  z-index: 1; }
  .page-layout-landing-category .tuplex-lending-top .page-title__headline.cs-page-title__headline {
    color: #fff; }
  .page-layout-landing-category .tuplex-lending-top .cs-cms-block.cs-page-category__description h2 {
    color: #fff; }

.page-layout-landing-category .category-image {
  margin: 0; }
  .page-layout-landing-category .category-image .image {
    filter: brightness(0.6);
    width: 100vw; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-cms-block .lead {
  margin-bottom: 20px;
  font-size: 16px; }

.cs-cms-block .details {
  padding: 3rem 2rem 0 3rem;
  background-color: #f0f0f0; }

.cs-cms-block .column {
  display: inline-grid;
  padding-right: 10px;
  width: 49%; }
  @media (max-width: 64em) {
    .cs-cms-block .column {
      width: 100% !important; } }
  .cs-cms-block .column ul {
    padding: 0 0 0 2rem; }

.item.title {
  width: 100%; }
  .item.title .switch {
    width: 100%;
    color: #fff !important;
    background: #78b0e0 !important; }

.item.title:hover .switch {
  color: #78b0e0 !important;
  background: #fff !important; }

.item.title.active .switch {
  color: #78b0e0 !important;
  background: #fff !important; }

@media (min-width: 48em) {
  .tab3 {
    display: block;
    margin-bottom: 20px; }
    .tab3 .item.title {
      width: 33% !important; }
  .tab4 {
    display: block;
    margin-bottom: 20px; }
    .tab4 .item.title {
      width: 25% !important; }
  .product.data.items > .item.title {
    margin: 0 -1px 0 0 !important;
    float: left; }
    .product.data.items > .item.title a {
      font-weight: 600; }
    .product.data.items > .item.title .switch {
      font-size: 1.6rem !important;
      text-decoration: none;
      color: #fff;
      background: #78b0e0;
      border: 1px solid #78b0e0 !important;
      height: 20px !important;
      padding: 10px 0 !important;
      text-align: center;
      display: flex;
      flex-wrap: nowrap;
      justify-content: center;
      width: 100%;
      box-sizing: content-box; }
    .product.data.items > .item.title .active {
      color: #78b0e0 !important; } }

@media (min-width: 48em) {
  .product.data.items > .item.title.active > .switch,
  .product.data.items > .item.title.active > .switch:focus,
  .product.data.items > .item.title.active > .switch:hover {
    padding-bottom: 10px;
    color: #78b0e0 !important; } }

@media (min-width: 48em) {
  .product.data.items > .item.title.active > .switch,
  .product.data.items > .item.title.active > .switch:focus,
  .product.data.items > .item.title.active > .switch:hover,
  .product.data.items > .item.title:not(.disabled) > .switch:active {
    padding-bottom: 10px !important; } }

@media (min-width: 48em) {
  .product.data.items > .item.title > .switch:visited {
    color: #fff;
    text-decoration: none; } }

@media (min-width: 48em) {
  .product.data.items > .item.content {
    margin-top: 60px;
    padding: 0;
    border-top: 0;
    float: right;
    margin-left: -100%;
    width: 100%; } }

@media (min-width: 48em) {
  .product.data.items > .item.title:not(.disabled) > .switch:focus,
  .product.data.items > .item.title:not(.disabled) > .switch:hover {
    color: #78b0e0 !important; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
body {
  overflow-x: hidden; }

.promo {
  text-decoration: line-through; }

.header.ecommerce-tuplex.links.cs-header__user-nav {
  display: flex; }

.info_product_card {
  border: 1px solid; }

.categorypath-katalog-produktow-poliweglan-poliweglan-kanalikowy-komorowy-bezbarwny .col:nth-child(5),
.categorypath-katalog-produktow-poliweglan-poliweglan-kanalikowy-komorowy-brazowy .col:nth-child(5),
.categorypath-katalog-produktow-poliweglan-poliweglan-kanalikowy-komorowy-opal .col:nth-child(5) {
  width: 200px; }

.map-text-home .cs-image-teaser__cta-button-span:before {
  content: "\f105";
  font-family: "Font Awesome 5 Pro";
  font-size: 22px;
  position: absolute;
  right: 17px;
  font-weight: 400; }

.category-kim-jestesmy .cs-button-component__amount {
  display: none; }

.price-final_price .minimal-price {
  display: block; }

.amasty_distance {
  margin-left: 18px; }

.belka-podane-ceny {
  padding: 10px;
  background: #FFEF45;
  font-size: 18px; }
  .belka-podane-ceny a {
    color: #346097;
    padding: 0px; }
  .belka-podane-ceny .read-more a {
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 900; }
    .belka-podane-ceny .read-more a::after {
      content: "\f105";
      font-family: "Font Awesome 5 Pro";
      width: 33px;
      height: 33px;
      font-weight: 400;
      margin-left: 10px;
      color: #346097; }
  .belka-podane-ceny .text {
    max-width: 130rem;
    text-align: center;
    padding: 5px 0px;
    color: #000;
    margin: auto; }
  .belka-podane-ceny .pozostale {
    max-width: 130rem;
    text-align: center;
    padding: 5px 0px;
    color: #000;
    margin: auto; }
  .belka-podane-ceny .read-more {
    max-width: 130rem;
    padding: 5px 0px;
    margin: auto;
    text-align: center; }

.cs-image-teaser__carousel .cs-image-teaser__slides picture {
  position: relative; }

.swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered .swatch-option.color, .swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered .swatch-option.image {
  box-shadow: 0px 0px 4px -2px #000; }

.swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered span {
  display: flex;
  justify-content: center;
  color: #484848;
  padding: 3px 0px 10px 0px; }

.cs-category-links__list-wrapper .cs-category-links__list .cs-category-links__list-item .cs-category-links__link span {
  display: none !important; }

@media (min-width: 90em) {
  .checkout-cart-index .cs-cart-page.cs-container__inner .cart.table-wrapper.cs-cart-table-wrapper .cs-cart-table__head tr th:first-child {
    width: 43%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.tuplex-table {
  margin: 2rem auto;
  width: 100%; }
  @media (min-width: 64em) {
    .tuplex-table {
      width: 75%; } }
  .tuplex-table th,
  .tuplex-table td {
    width: 33.333%; }
  .tuplex-table thead {
    background-color: #78b0e0;
    color: #fff; }
    .tuplex-table thead th:not(:last-child) {
      border-right: 2px solid #fff; }
  .tuplex-table tbody tr:nth-child(even) td {
    background-color: #f0f0f0; }
  .tuplex-table tbody td:not(:last-child) {
    border-right: 2px solid #fff; }

.table-wrapper.grouped .price-and-cart {
  flex-direction: column;
  align-items: center;
  margin-top: 10px; }
  .table-wrapper.grouped .price-and-cart button {
    margin: 15px 0; }

.table-wrapper.grouped .rows.tier-price.summary.qty > .col.qty {
  position: relative; }

.table-wrapper.grouped .qty.summary-wrapper-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: white; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
#mySwitch {
  display: flex;
  order: 10;
  /* Rounded sliders */ }
  #mySwitch .switch {
    transform: rotate(90deg);
    position: relative;
    display: inline-block;
    width: 40px;
    height: 24px; }
  #mySwitch .switch input {
    opacity: 0;
    width: 0;
    height: 0; }
  #mySwitch .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #dcdcdc;
    transition: .4s; }
  #mySwitch .slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 4px;
    bottom: 4px;
    background-color: #fff;
    transition: .4s; }
  #mySwitch input:checked + .slider {
    background-color: #78b0e0; }
  #mySwitch input:focus + .slider {
    box-shadow: 0 0 1px #78b0e0; }
  #mySwitch input:checked + .slider:before {
    transform: translateX(20px);
    left: 0px; }
  #mySwitch .slider.round {
    border-radius: 34px; }
  #mySwitch .slider.round:before {
    border-radius: 50%; }

.cs-product-tile__name {
  height: 100%;
  margin: 0 !important; }
  .cs-product-tile__name .divTable {
    height: 100%;
    margin: 0; }
  .cs-product-tile__name .divTableHead {
    height: 50px; }
  .cs-product-tile__name .divTableCell,
  .cs-product-tile__name .divTableHead {
    vertical-align: middle;
    text-align: center; }
  .cs-product-tile__name .divTable {
    display: table;
    width: 100%; }
  .cs-product-tile__name .divTableRow {
    display: table-row;
    font-size: 1.4rem; }
    .cs-product-tile__name .divTableRow:nth-child(odd) .divTableCell {
      background-color: #eee; }
  .cs-product-tile__name .divTableHeading {
    display: table-header-group; }
  .cs-product-tile__name .divTableCell {
    display: table-cell;
    padding: 5px 3px; }
  .cs-product-tile__name .divTableHead {
    display: table-cell;
    padding: 3px 3px;
    background-color: #eee;
    font-weight: 600; }
  .cs-product-tile__name .divTableHeading {
    background-color: #f00 !important; }
  .cs-product-tile__name .divTableHeading {
    background-color: #EEE;
    display: table-header-group;
    font-weight: bold; }
  .cs-product-tile__name .divTableFoot {
    display: table-footer-group;
    font-weight: bold; }
  .cs-product-tile__name .divTableBody {
    display: table-row-group; }

.cs-product-tile__details.product-item-details .cs-product-tile__additional.cs-product-tile__additional--list {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
#tab-documentation {
  display: none; }

.tuplex-tree {
  position: relative;
  padding: 0 0 1rem 2rem;
  border-bottom: 1px solid #dcdcdc; }
  .tuplex-tree .description {
    position: relative;
    display: none; }
    .tuplex-tree .description .level-1 {
      margin-left: 1rem; }
    .tuplex-tree .description .level-2,
    .tuplex-tree .description .level-3 {
      margin-left: 2rem; }
  .tuplex-tree .description.active {
    display: block; }
  .tuplex-tree .widget.am-attachments {
    padding-left: 2.5rem; }
    .tuplex-tree .widget.am-attachments .am-fileline {
      position: relative; }
      .tuplex-tree .widget.am-attachments .am-fileline:after {
        content: "";
        display: block;
        width: 13px;
        height: 0;
        border-top: 1px solid;
        margin-top: -1px;
        position: absolute;
        top: 50%;
        left: -18px; }
  .tuplex-tree .title {
    display: flex;
    position: relative;
    margin-bottom: 1rem;
    margin-top: 1rem;
    width: -moz-fit-content;
    width: fit-content;
    cursor: pointer; }
    .tuplex-tree .title:after {
      content: "\f0fe";
      font-family: "Font Awesome 5 Pro";
      width: 13px;
      height: 0;
      font-size: 14px;
      font-weight: 300;
      position: absolute;
      top: 0;
      left: -18px;
      height: 100%;
      display: flex;
      align-items: center;
      background: #fff; }
  .tuplex-tree .title.active:after {
    content: "\f146"; }
  .tuplex-tree .am-fileicon {
    width: 24px; }

.accordeon:before,
.description:before {
  content: "";
  display: block;
  width: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 7px;
  margin-right: 1rem;
  border-left: 1px solid; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.cms-kariera .column.main {
  width: auto;
  padding: 0rem 0 0;
  max-width: 100%;
  min-height: 10rem; }

.cms-kariera .cs-container.cs-container--teaser-and-text .cs-image-teaser__content-wrapper {
  position: absolute; }

.cms-kariera .cs-container.cs-container--teaser-and-text .cs-image-teaser__wrapper--content-over .cs-image-teaser__content-wrapper {
  padding: 3.76%; }

.cms-kariera .cs-image-teaser__slogan {
  font-size: 2.8em; }

.cms-kariera .cs-image-teaser__text-content {
  font-size: 12px !important; }

.cms-kariera #button {
  margin-top: 40px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.category-tuplex-international .cs-image-teaser__slide {
  margin-right: 0;
  margin-bottom: 0 !important;
  width: 50% !important; }

.category-tuplex-international .cs-image-teaser__description {
  margin: 0;
  font-size: 0.8em;
  padding: 0 100px;
  letter-spacing: -0.18px;
  line-height: 1.3;
  color: inherit; }

.category-tuplex-international .cs-image-teaser__slogan {
  font-size: 1.1em;
  margin-bottom: 10px; }

.category-tuplex-international .cs-page-category__cc-top {
  margin: 0 auto; }

.cms-kariera .cs-image-teaser__slide {
  margin-right: 0;
  margin-bottom: 0 !important;
  width: 50% !important; }

.cms-kariera .cs-page-category__cc-top {
  max-width: 130rem;
  margin: 0 auto; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.page-layout-strefa-wiedzy {
  font-size: 1.6rem; }
  .page-layout-strefa-wiedzy h2:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title) {
    margin: 3rem 0 3rem;
    font-size: 2rem; }
    .page-layout-strefa-wiedzy h2:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title):before {
      content: "\f672";
      color: #FFEF45;
      font-family: "Font Awesome 5 Pro";
      font-weight: 900;
      display: inline-block;
      margin-left: 0em;
      width: 50px;
      height: 50px;
      font-size: 24px;
      padding: 15px 10px;
      background: #346097;
      border-radius: 50%;
      margin-right: 20px; }
  .page-layout-strefa-wiedzy p {
    text-align: justify; }
    .page-layout-strefa-wiedzy p img {
      margin-top: 20px;
      width: 100%; }
  .page-layout-strefa-wiedzy #button {
    margin-top: 2rem; }
  .page-layout-strefa-wiedzy .cs-button-component__span {
    min-width: 250px;
    font-size: 20px; }
  .page-layout-strefa-wiedzy .cs-paragraph img {
    width: 100%; }
  @media (min-width: 48em) {
    .page-layout-strefa-wiedzy .cs-paragraph {
      margin: 0 0 0rem; } }
  .page-layout-strefa-wiedzy .cs-paragraph ul {
    margin-top: 2rem;
    list-style: none;
    padding: 3rem 3rem 3rem 6rem;
    background-color: #f0f0f0; }
  .page-layout-strefa-wiedzy .cs-paragraph ul > li:before {
    content: "\f00c";
    color: #82cad4;
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    display: inline-block;
    margin-left: -1.9em;
    width: 1.9em; }

cs-category-links__dropdown cs-category-links-dropdown
.cs-category-links__list a {
  font-size: 30px !important; }

.cs-category-links__list-all {
  display: none; }

.cs-category-links__list-item {
  display: inline-block;
  margin: 1rem 0 0 2.5rem; }

.category-strefa-wiedzy h2.cs-category-links__title {
  display: none; }

.elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
  padding-top: 150px; }
  @media (max-width: 63.99em) {
    .elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
      padding-top: 50px; } }

.col-md-4, .col-md-9 {
  padding: 1rem; }

.col-lg-3, .col-lg-6 {
  padding: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.page-layout-e-commerce .availability-legend {
  display: none; }

.page-layout-e-commerce .link_to_locator {
  display: none; }

.page-layout-e-commerce .rows .netto {
  display: block;
  font-size: 11px; }
  .page-layout-e-commerce .rows .netto::before {
    content: 'Netto'; }

.page-layout-e-commerce .rows .brutto {
  display: block;
  font-size: 11px; }
  .page-layout-e-commerce .rows .brutto::before {
    content: close-quote !important; }

.catalog-product-view .cs-addtocart__button {
  padding: 17px 54px 17px 10px !important; }

.catalog-product-view .messages {
  max-width: 130rem;
  margin: 0 auto;
  position: relative;
  top: -15px; }

.catalog-product-view .rows .kup-on-line {
  text-align: center; }

.catalog-product-view .rows .brutto {
  display: block;
  font-size: 11px; }
  .catalog-product-view .rows .brutto::before {
    content: 'Brutto'; }

.catalog-product-view .cs-product-details-nav {
  display: none !important; }

.catalog-product-view .price-box {
  display: none !important; }

.catalog-product-view .product-info-price {
  margin-top: 2rem; }
  .catalog-product-view .product-info-price .additional-attributes-wrapper {
    margin-bottom: 0; }

.button-parent-ecomm {
  position: relative;
  top: 20px;
  padding: 5px 15px 5px 15px;
  border: 2px solid #e41f12;
  font-weight: 700;
  text-transform: uppercase;
  color: #e41f12; }
  .button-parent-ecomm.oddzialy {
    border: 2px #FFEF45 solid;
    background: #FFEF45;
    color: #000; }

.cs-product-details__content .link_to_locator {
  margin: 20px 0px 0px 0px !important;
  text-align: center;
  font-size: 18px; }
  @media (max-width: 48em) {
    .cs-product-details__content .link_to_locator {
      margin: 20px 0px !important; } }

.link_to_locator {
  margin: 20px 0px 0px 0px !important;
  font-size: 18px; }
  @media (max-width: 48em) {
    .link_to_locator {
      margin: 20px 0px !important; } }

.delivery-legend {
  max-width: 130rem;
  margin: 0 auto; }
  .delivery-legend ul {
    list-style-type: none;
    padding-left: 10px; }
    .delivery-legend ul li::before {
      font-family: "Font Awesome 5 Pro";
      padding-right: 10px;
      font-size: 18px; }

.kurier-dostawa-standardowa {
  font-style: inherit; }
  .kurier-dostawa-standardowa::before {
    content: "\f467";
    font-family: "Font Awesome 5 Pro"; }

.kurier-specjalne-pakowanie {
  font-style: inherit; }
  .kurier-specjalne-pakowanie::before {
    content: "\f4de";
    font-family: "Font Awesome 5 Pro"; }

.odbior-osobisty {
  font-style: inherit; }
  .odbior-osobisty::before {
    content: "\f5a0";
    font-family: "Font Awesome 5 Pro"; }

.col.item .kurier-dostawa-standardowa,
.col.item .kurier-specjalne-pakowanie,
.col.item .odbior-osobisty {
  cursor: pointer;
  font-size: 18px;
  font-weight: 300; }

.availability-legend {
  max-width: 130rem;
  margin: 0 auto; }
  .availability-legend ul {
    list-style-type: none;
    padding-left: 10px; }
    .availability-legend ul li::before {
      padding-right: 10px; }

.dostepne-w-oddziale {
  font-style: inherit; }
  .dostepne-w-oddziale::before {
    content: "\f3c5";
    font-family: "Font Awesome 5 Pro";
    font-size: 18px;
    font-weight: 300; }

.dostepne-on-line {
  font-style: inherit;
  display: flex; }
  .dostepne-on-line::before {
    content: url(/cart-online.svg);
    width: 27px;
    display: block;
    height: 27px; }

.kup-on-line {
  padding-top: 17px !important; }
  .kup-on-line .redingo-on-line span::before {
    content: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/white-cart.svg");
    display: block;
    width: 27px;
    background: #e41f12;
    padding: 5px;
    border-radius: 2px;
    margin: 0 auto; }
  .kup-on-line div {
    display: flex;
    justify-content: space-evenly; }
    .kup-on-line div a {
      display: flex;
      width: 100%;
      justify-content: center; }
      .kup-on-line div a .dostepne-w-oddziale::before {
        font-size: 18px;
        color: #000; }
    .kup-on-line div .redingo-oddziale {
      max-width: 50px;
      padding: 8px; }
    .kup-on-line div .redingo-on-line {
      padding: 8px;
      max-width: 50px; }

.tooltip {
  position: relative;
  display: inline-block; }
  .tooltip .tooltiptext {
    visibility: hidden;
    width: 140px;
    background-color: #f0f0f0;
    color: #000;
    text-align: center;
    border-radius: 6px;
    padding: 5px 0;
    top: 35px;
    position: absolute;
    z-index: 1; }
  .tooltip:hover .tooltiptext {
    visibility: visible; }

.page-layout-e-commerce .tooltiptext {
  left: -60px; }

.catalog-product-view .cs-product-details__content-constructor {
  padding-top: 2rem; }

.catalog-product-view .cs-product-details__content-constructor > .cs-container > .cs-container__inner {
  border-top: 1px solid #dcdcdc;
  padding-top: 2rem; }

.column.main > .cs-container.cs-container--page-pdp-top > .product.attribute.description {
  max-width: 130rem;
  margin: 0 auto; }
  .column.main > .cs-container.cs-container--page-pdp-top > .product.attribute.description::before {
    display: none; }
  .column.main > .cs-container.cs-container--page-pdp-top > .product.attribute.description h4 {
    text-transform: none;
    font-size: 2rem; }

.column.main > .cs-container.cs-container--page-pdp-top > .product.attribute.overview {
  max-width: 130rem;
  margin: 0 auto; }

.column.main > .cs-container.cs-container--page-pdp-top > .cs-page-product__buybox {
  margin: 0 auto; }
  .column.main > .cs-container.cs-container--page-pdp-top > .cs-page-product__buybox .product-info-main.cs-buybox {
    display: flex;
    flex-direction: column;
    align-items: center; }
    .column.main > .cs-container.cs-container--page-pdp-top > .cs-page-product__buybox .product-info-main.cs-buybox .cs-buybox__addtocart-button {
      width: auto;
      padding: 9px 40px 9px 10px !important; }
      .column.main > .cs-container.cs-container--page-pdp-top > .cs-page-product__buybox .product-info-main.cs-buybox .cs-buybox__addtocart-button strong {
        color: #cb1c0e; }
    .column.main > .cs-container.cs-container--page-pdp-top > .cs-page-product__buybox .product-info-main.cs-buybox .cs-buybox__addtocart-button:hover strong {
      color: white; }

.column.main > .cs-container.cs-container--page-pdp-top > .cs-container__inner > .cs-page-product__top > .cs-page-product__gallery {
  width: 50% !important; }

.column.main > .cs-container.cs-container--page-pdp-top > .cs-container__inner > .cs-page-product__top > .gallery-description {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 50%;
  background-color: whitesmoke; }
  .column.main > .cs-container.cs-container--page-pdp-top > .cs-container__inner > .cs-page-product__top > .gallery-description p {
    text-align: center;
    text-transform: uppercase;
    font-size: 2.5rem;
    margin-bottom: 0px; }
  .column.main > .cs-container.cs-container--page-pdp-top > .cs-container__inner > .cs-page-product__top > .gallery-description h2 {
    margin: 0.5rem 0;
    font-size: 3.8rem; }
  .column.main > .cs-container.cs-container--page-pdp-top > .cs-container__inner > .cs-page-product__top > .gallery-description h3 {
    margin: 0.5rem 0;
    font-size: 3.2rem;
    margin-bottom: 3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior, .category-10-tys-przylbic-dla-polskich-szpitali, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow {
  font-size: 1.6rem; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku h2, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior h2, .category-10-tys-przylbic-dla-polskich-szpitali h2, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow h2 {
    margin: 3rem 0 3rem; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku h3, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior h3, .category-10-tys-przylbic-dla-polskich-szpitali h3, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow h3 {
    margin: 3rem 0 3rem; }
    .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku h3:before, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior h3:before, .category-10-tys-przylbic-dla-polskich-szpitali h3:before, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow h3:before {
      content: "\f672";
      color: #FFEF45;
      font-family: "Font Awesome 5 Pro";
      font-weight: 900;
      display: inline-block;
      margin-left: 0em;
      width: 50px;
      height: 50px;
      font-size: 24px;
      padding: 15px 10px;
      background: #346097;
      border-radius: 50%;
      margin-right: 20px; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku table, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior table, .category-10-tys-przylbic-dla-polskich-szpitali table, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow table {
    margin-bottom: 2rem;
    border: 1px solid #484848;
    font-weight: 900;
    background: #346097;
    color: #fff; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku th, .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku td, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior th, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior td, .category-10-tys-przylbic-dla-polskich-szpitali th, .category-10-tys-przylbic-dla-polskich-szpitali td, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow th, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow td {
    padding: 15px;
    text-align: left;
    border: 1px solid #fff; }
    .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku th p, .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku td p, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior th p, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior td p, .category-10-tys-przylbic-dla-polskich-szpitali th p, .category-10-tys-przylbic-dla-polskich-szpitali td p, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow th p, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow td p {
      margin: 0; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku th, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior th, .category-10-tys-przylbic-dla-polskich-szpitali th, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow th {
    background-color: #346097;
    color: #fff; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku p, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior p, .category-10-tys-przylbic-dla-polskich-szpitali p, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow p {
    text-align: justify; }
    .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku p img, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior p img, .category-10-tys-przylbic-dla-polskich-szpitali p img, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow p img {
      margin-top: 20px;
      width: 100%; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku #button, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior #button, .category-10-tys-przylbic-dla-polskich-szpitali #button, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow #button {
    margin-top: 2rem; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku .cs-button-component__span, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior .cs-button-component__span, .category-10-tys-przylbic-dla-polskich-szpitali .cs-button-component__span, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow .cs-button-component__span {
    min-width: 250px;
    font-size: 20px; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku .cs-paragraph img, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior .cs-paragraph img, .category-10-tys-przylbic-dla-polskich-szpitali .cs-paragraph img, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow .cs-paragraph img {
    width: 100%; }
  @media (min-width: 48em) {
    .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku .cs-paragraph, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior .cs-paragraph, .category-10-tys-przylbic-dla-polskich-szpitali .cs-paragraph, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow .cs-paragraph {
      margin: 0 0 0rem; } }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku .cs-paragraph ul, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior .cs-paragraph ul, .category-10-tys-przylbic-dla-polskich-szpitali .cs-paragraph ul, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow .cs-paragraph ul {
    margin-top: 2rem;
    list-style: none;
    padding: 3rem 3rem 3rem 6rem;
    background-color: #f0f0f0; }
  .categorypath-aktualnosci-folie-avery-500-ef-w-najlepszych-cenach-na-rynku .cs-paragraph ul > li:before, .category-idealne-w-aranzacji-wnetrz-plyty-fundermax-hpl-interior .cs-paragraph ul > li:before, .category-10-tys-przylbic-dla-polskich-szpitali .cs-paragraph ul > li:before, .category-oslony-z-plexi-pet-poliweglanu-idealne-rozwiazanie-w-miejscach-obslugi-klientow .cs-paragraph ul > li:before {
    content: "\f00c";
    color: #82cad4;
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    display: inline-block;
    margin-left: -1.9em;
    width: 1.9em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
@media (max-width: 64em) {
  .cms-home .cs-image-teaser__content {
    padding: 0 0 20px 0; } }

.cms-home .cs-image-teaser__content .cs-image-teaser__description {
  font-size: 16px !important; }

.cms-home .cs-image-teaser__content .cs-image-teaser__slide--scheme-light .cs-image-teaser__slogan {
  font-size: 3.8em; }

.cms-home .cs-image-teaser__content .cs-image-teaser__slide--scheme-dark .cs-image-teaser__slogan {
  font-size: 20px !important; }

.cms-home .cs-image-teaser__content .cs-headline__subtitle {
  line-height: 2;
  font-size: 1.8em; }

.cms-home .cs-image-teaser__content .cs-paragraph.cs-paragraph--cols-none.cs-paragraph--mode- {
  width: -moz-max-content;
  width: max-content;
  position: relative;
  margin: 2rem auto; }
  .cms-home .cs-image-teaser__content .cs-paragraph.cs-paragraph--cols-none.cs-paragraph--mode-:after {
    content: "\f105";
    font-family: "Font Awesome 5 Pro";
    font-size: 22px;
    position: absolute;
    right: 17px;
    top: 5px;
    z-index: 5;
    font-weight: 400;
    color: #fff; }

.cms-home .cs-image-teaser__content .cs-container.cs-container--image-teaser:last-child .cs-image-teaser__slogan {
  font-size: 2.8rem; }

.cms-home .cs-image-teaser__content .cs-image-teaser__cta {
  font-size: 14px !important; }

.cms-home .button-teaser {
  display: none; }

.cms-home .cs-container.cs-container--paragraph .cs-cms-block div {
  display: flex;
  justify-content: center; }
  .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button {
    background-color: #346097; }
    .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button::after, .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button::before {
      width: 100%; }
      .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button::after:hover, .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button::before:hover {
        background-color: #346097; }
    .cms-home .cs-container.cs-container--paragraph .cs-cms-block div .cs-image-teaser__cta-button .cs-image-teaser__cta-button-span {
      padding: 0 2rem;
      font-size: 2rem; }

.cms-home .cs-container.cs-container--image-teaser.cs-container--teaser-and-text {
  margin-bottom: 0 !important; }
  .cms-home .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__slides.cs-image-teaser__slides.cs-image-teaser__slides--mobile_image-text {
    gap: 0 !important; }
  .cms-home .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__text-content .cs-image-teaser__slogan {
    font-size: 32px !important;
    font-weight: 700 !important; }
  .cms-home .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__text-content .cs-image-teaser__description {
    font-size: 16px !important; }
  .cms-home .cs-container.cs-container--image-teaser.cs-container--teaser-and-text .cs-image-teaser__text-content .cs-image-teaser__cta span.cs-image-teaser__cta-button-span {
    font-size: 16px !important; }

.cms-home .cs-container.cs-container--button .cs-container__inner {
  margin-top: 1rem; }

.categorypath-kim-jestesmy .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-dark.cs-image-teaser__slide--image-uploaded,
.categorypath-kim-jestesmy .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-light.cs-image-teaser__slide--image-uploaded {
  padding: 0;
  width: 50% !important;
  margin-bottom: 0rem !important; }
  .categorypath-kim-jestesmy .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-dark.cs-image-teaser__slide--image-uploaded:nth-child(odd),
  .categorypath-kim-jestesmy .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-light.cs-image-teaser__slide--image-uploaded:nth-child(odd) {
    margin-right: auto; }

.checkout-cart-index .page-title {
  padding: 2rem 0; }

.checkout-cart-index #shipping-zip-form {
  display: none; }

.checkout-cart-index .field.choice.item {
  display: block; }

.page-layout-checkout .shipping .excl span {
  font-size: 40px !important; }

.page-layout-checkout .checkout-agreements {
  margin-top: 10px; }

.page-layout-checkout .totals-tax {
  display: none; }

.page-layout-checkout .field-tooltip-content {
  background: #FFEF45 !important;
  padding: 1rem !important;
  color: #000 !important;
  margin: 1rem 0 !important; }

.checkout-index-index .cs-checkout .cs-checkout__sidebar .checkout-agreements .checkout-agreement {
  display: block !important; }

.order-attributes > .order-attributes-form.fieldset.address select.select {
  width: 100% !important; }

.payment-method-przelewy24__agreements.fieldset > .payment-method-przelewy24__agreement.field.choice {
  display: block; }

.row.row-error > .col.col-error > .no-display {
  display: none; }

.customer-account-create .cs-headline, .customer-account-login .cs-headline {
  margin: 0rem 0 1rem 0 !important; }

.customer-account-create .cs-dashboard .fieldset, .customer-account-login .cs-dashboard .fieldset {
  margin: auto !important;
  max-width: 85rem !important; }

.customer-account-create .cs-dashboard .legend, .customer-account-login .cs-dashboard .legend {
  padding: 3rem 0 1rem 0 !important; }

.customer-account-create .legend, .customer-account-login .legend {
  margin: 1rem 0; }

.customer-account-create .label, .customer-account-login .label {
  margin: 1rem 0; }

.zgody-checkbox {
  margin: 0 0 0 1rem; }

.page-layout-szachownica .cs-image-teaser__description {
  font-size: 18px; }

.page-layout-szachownica .column.main {
  width: auto;
  padding: 0rem 0 0;
  max-width: 100%;
  min-height: 10rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.promo-infobanner {
  text-align: center;
  background: #cc1c10;
  padding: 10px;
  margin: 0 0 10px; }
  .promo-infobanner a {
    color: white;
    font-size: 40px;
    text-transform: uppercase;
    font-weight: 300; }
    .promo-infobanner a .value-promobanner_header {
      font-weight: 700 !important; }
    .promo-infobanner a .sprawdz-promobanner_header {
      font-weight: 400 !important;
      background: white;
      color: #cc1c10;
      padding: 0 10px;
      margin-left: 10px;
      border-radius: 5px; }
    .promo-infobanner a:hover {
      color: white; }

.promo-infobanner-green {
  text-align: center;
  background: #83bd34;
  padding: 10px;
  margin: 0 0 10px; }
  .promo-infobanner-green a {
    color: white;
    font-size: 40px;
    text-transform: uppercase;
    font-weight: 300; }
    @media (max-width: 47.99em) {
      .promo-infobanner-green a {
        font-size: 20px; } }
    .promo-infobanner-green a .value-promobanner_header {
      font-weight: 700 !important; }
    .promo-infobanner-green a .sprawdz-promobanner_header {
      font-weight: 400 !important;
      background: white;
      color: #83bd34;
      padding: 0 10px;
      margin-left: 10px;
      border-radius: 5px; }
    .promo-infobanner-green a:hover {
      color: white; }

@media (max-width: 47.99em) {
  .header__banner_promobanner {
    margin-top: 0px; } }

.amcform-toolbar .amcform-submit.action.primary {
  min-width: 200px !important; }

.amcform-toolbar {
  margin-top: 2rem;
  text-align: center; }

.amform-versiontwo-label {
  font-weight: 700;
  font-size: 1.3rem !important; }

.amcform-multi-page .amform-versiontwo-label {
  word-break: unset; }

.amcform-multi-page .amform-checkbox,
.amcform-multi-page .checkbox-group {
  line-height: 110%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.page-layout-eco {
  font-size: 1.6rem; }
  .page-layout-eco h1, .page-layout-eco h2 {
    color: #83bd34;
    text-align: center;
    font-size: 4rem; }
  .page-layout-eco h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title) {
    margin: 3rem 0 3rem;
    font-size: 1.8rem; }
    .page-layout-eco h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title):before {
      content: "\f06c";
      color: #83bd34;
      font-family: "Font Awesome 5 Pro";
      display: inline-block;
      margin-left: 0em;
      width: 50px;
      height: 50px;
      font-size: 24px;
      padding: 12px 10px;
      background: whitesmoke;
      border-radius: 50%;
      margin-right: 20px; }
  .page-layout-eco p {
    text-align: justify; }
    .page-layout-eco p img {
      margin-top: 20px;
      width: 100%; }
  .page-layout-eco #button {
    margin-top: 2rem; }
  .page-layout-eco .cs-button-component__span {
    min-width: 250px;
    font-size: 20px; }
  .page-layout-eco .cs-paragraph img {
    width: 100%; }
  @media (min-width: 48em) {
    .page-layout-eco .cs-paragraph {
      margin: 0 0 0rem; } }
  .page-layout-eco .cs-paragraph ul {
    margin-top: 2rem;
    list-style: none;
    padding: 3rem 3rem 3rem 6rem;
    background-color: whitesmoke; }
  .page-layout-eco .cs-paragraph ul > li:before {
    content: "\f00c";
    color: #83bd34;
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    display: inline-block;
    margin-left: -1.9em;
    width: 1.9em; }
  .page-layout-eco .column.main {
    padding: 0rem 0 0; }
  .page-layout-eco .cs-container {
    padding-left: 0rem;
    padding-right: 0rem; }

cs-category-links__dropdown cs-category-links-dropdown
.cs-category-links__list a {
  font-size: 30px !important; }

.cs-category-links__list-all {
  display: none; }

.cs-category-links__list-item {
  display: inline-block;
  margin: 1rem 0 0 2.5rem; }

.category-strefa-wiedzy h2.cs-category-links__title {
  display: none; }

.elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
  padding-top: 150px; }
  @media (max-width: 63.99em) {
    .elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
      padding-top: 50px; } }

.col-md-4, .col-md-9 {
  padding: 1rem; }

.col-lg-3, .col-lg-6 {
  padding: 2rem; }

#tuplex-webinar-counter {
  font-size: 51px;
  font-weight: 700;
  padding: 20px;
  background: #cc1c12;
  color: white;
  width: 504px;
  text-align: center;
  margin: auto; }

.popup-redingo button {
  margin: 10px 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 250px;
  background: #78b0e0;
  justify-content: space-around;
  font-weight: 700;
  font-size: 1em;
  color: white;
  cursor: pointer; }
  .popup-redingo button i:before {
    font-family: "Font Awesome 5 Pro";
    font-weight: 400;
    content: "\f303";
    color: white;
    cursor: pointer; }

.popup-redingo .content-wrapper .modal-header .cs-container {
  cursor: default; }

.popup-redingo .content-wrapper button {
  position: absolute;
  right: 0;
  top: 0;
  width: auto;
  border: none;
  background: transparent; }

.popup-redingo .content-wrapper button:before {
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
  content: "\f00d";
  color: black;
  font-size: 2em;
  padding: 0.5rem 1rem; }

.popup-redingo .popup-form-button {
  background: #78b0e0;
  color: white;
  border: none;
  padding: 1rem;
  cursor: pointer; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.page-layout-meshqa {
  font-size: 1.6rem; }
  .page-layout-meshqa h1, .page-layout-meshqa h2 {
    color: #354247;
    text-align: center;
    font-size: 4rem; }
  .page-layout-meshqa h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title) {
    margin: 3rem 0 3rem;
    font-size: 1.8rem;
    display: flex; }
    .page-layout-meshqa h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title):before {
      content: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/Meshqa-Icon.svg");
      display: inline-block;
      margin-left: 0em;
      width: 50px;
      height: 50px;
      font-size: 24px;
      padding: 0;
      background: whitesmoke;
      border-radius: 50%;
      margin-right: 20px; }
  .page-layout-meshqa p {
    text-align: justify; }
    .page-layout-meshqa p img {
      margin-top: 20px;
      width: 100%; }
  .page-layout-meshqa #button {
    margin-top: 2rem; }
  .page-layout-meshqa .cs-button-component__span {
    min-width: 250px;
    font-size: 20px; }
  .page-layout-meshqa .cs-paragraph img {
    width: 100%; }
  @media (min-width: 48em) {
    .page-layout-meshqa .cs-paragraph {
      margin: 0 0 0rem; } }
  .page-layout-meshqa .cs-paragraph ul {
    margin-top: 2rem;
    list-style: none;
    padding: 3rem 3rem 3rem 6rem;
    background-color: whitesmoke; }
  .page-layout-meshqa .cs-paragraph ul > li:before {
    content: "\21";
    color: #354247;
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    display: inline-block;
    margin-left: -1.9em;
    width: 1.9em; }
  .page-layout-meshqa .column.main {
    padding: 0rem 0 0; }
  .page-layout-meshqa .cs-container {
    padding-left: 0rem;
    padding-right: 0rem; }

cs-category-links__dropdown cs-category-links-dropdown
.cs-category-links__list a {
  font-size: 30px !important; }

.cs-category-links__list-all {
  display: none; }

.cs-category-links__list-item {
  display: inline-block;
  margin: 1rem 0 0 2.5rem; }

.category-strefa-wiedzy h2.cs-category-links__title {
  display: none; }

.elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
  padding-top: 150px; }
  @media (max-width: 63.99em) {
    .elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
      padding-top: 50px; } }

.col-md-4, .col-md-9 {
  padding: 1rem; }

.col-lg-3, .col-lg-6 {
  padding: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.page-layout-aktualnosci {
  font-size: 1.6rem; }
  .page-layout-aktualnosci h1, .page-layout-aktualnosci h2 {
    color: #354247;
    text-align: center;
    font-size: 4rem; }
  .page-layout-aktualnosci h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title) {
    margin: 3rem 0 3rem;
    font-size: 1.8rem;
    display: flex; }
    .page-layout-aktualnosci h3:not(.cs-category-links__title):not(.cs-footer__section-title):not(.footer-tuplex):not(.newsletter-title):before {
      content: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/Wykrz-Icon.svg");
      display: inline-block;
      margin-left: 0em;
      width: 50px;
      height: 50px;
      font-size: 24px;
      padding: 0;
      background: whitesmoke;
      border-radius: 50%;
      margin-right: 20px; }
  .page-layout-aktualnosci p {
    text-align: justify; }
    .page-layout-aktualnosci p img {
      margin-top: 20px;
      width: 100%; }
  .page-layout-aktualnosci #button {
    margin-top: 2rem; }
  .page-layout-aktualnosci .cs-button-component__span {
    min-width: 250px;
    font-size: 20px; }
  .page-layout-aktualnosci .cs-paragraph img {
    width: 100%; }
  @media (min-width: 48em) {
    .page-layout-aktualnosci .cs-paragraph {
      margin: 0 0 0rem; } }
  .page-layout-aktualnosci .cs-paragraph ul {
    margin-top: 2rem;
    list-style: none;
    padding: 3rem 3rem 3rem 6rem;
    background-color: whitesmoke; }
  .page-layout-aktualnosci .cs-paragraph ul > li:before {
    content: "\21";
    color: #354247;
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    display: inline-block;
    margin-left: -1.9em;
    width: 1.9em; }
  .page-layout-aktualnosci .column.main {
    padding: 0rem 0 0; }
  .page-layout-aktualnosci .cs-container {
    padding-left: 0rem;
    padding-right: 0rem; }

cs-category-links__dropdown cs-category-links-dropdown
.cs-category-links__list a {
  font-size: 30px !important; }

.cs-category-links__list-all {
  display: none; }

.cs-category-links__list-item {
  display: inline-block;
  margin: 1rem 0 0 2.5rem; }

.category-strefa-wiedzy h2.cs-category-links__title {
  display: none; }

.elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
  padding-top: 150px; }
  @media (max-width: 63.99em) {
    .elewacje-wentylowane p:first-child, .strefa-wiedzy-szachownica p:first-child {
      padding-top: 50px; } }

.col-md-4, .col-md-9 {
  padding: 1rem; }

.col-lg-3, .col-lg-6 {
  padding: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
@media (min-width: 48.01em) {
  .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-title {
    display: none !important; } }

.cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor {
  padding: 1rem 0rem; }
  .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor .swatch-attribute-options {
    justify-content: flex-start; }
    .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered {
      min-width: 10rem; }
      .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered .swatch-option.color {
        border: none; }
        .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered .swatch-option.color::after {
          display: none; }
        .cs-aftersearch-nav__filters .cs-aftersearch-nav__filter.filter-attribute-kolor .cs-aftersearch-nav__filter-content .swatch-attribute.swatch-layered.kolor .swatch-attribute-options .swatch-option-link-layered .swatch-option.color::before {
          display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.block.discount.cs-discount.cs-discount--coupon .content.cs-discount__content {
  display: block !important; }

.block.discount.cs-discount.cs-discount--coupon #discount-coupon-form .field > .label {
  color: red;
  font-size: 1.7rem; }

.block.discount.cs-discount.cs-discount--coupon #discount-coupon-form .control > .input-text {
  border: 2px solid black; }

.block.discount.cs-discount.cs-discount--coupon #discount-coupon-form .actions-toolbar.cs-discount__buttons > button {
  border: 2px solid #77b1e0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.countdown #cd_text {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  background: #80cad4;
  color: white;
  font-size: 2rem;
  text-transform: uppercase;
  padding: 0 1rem;
  min-height: 65px; }
  .countdown #cd_text .dynamicCountdown {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin: 1rem; }
    .countdown #cd_text .dynamicCountdown .days,
    .countdown #cd_text .dynamicCountdown .hours,
    .countdown #cd_text .dynamicCountdown .minutes,
    .countdown #cd_text .dynamicCountdown .seconds {
      display: flex;
      flex-direction: column;
      align-items: center; }
    .countdown #cd_text .dynamicCountdown .liczby {
      margin: 0rem 0.5rem; }
      .countdown #cd_text .dynamicCountdown .liczby span {
        background-color: white;
        color: #484848;
        margin: 0.2rem;
        padding: 0rem 0.5rem; }
    .countdown #cd_text .dynamicCountdown .nazwa {
      font-size: 1.2rem; }
    .countdown #cd_text .dynamicCountdown .countdown-separator {
      color: white;
      padding-bottom: 15px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-container--image-teaser .cs-image-teaser--items-in-row-2 .cs-image-teaser__slides {
  gap: 2rem !important; }

.cs-container--image-teaser .cs-image-teaser--items-in-row-2 .cs-image-teaser__slides > .cs-image-teaser__slide {
  width: 100% !important;
  margin-bottom: 0 !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-slider-navigation {
  display: none; }
  @media (hover: hover) and (pointer: fine) {
    .cs-slider-navigation {
      position: absolute;
      z-index: 11;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.4rem;
      height: 5.2rem;
      border: 0;
      border-radius: 0px;
      background: #fff;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
      padding: 0;
      color: #78b0e0;
      cursor: pointer;
      transition: all 0.3s; }
      .cs-slider-navigation--prev {
        left: 1.5rem; }
      .cs-slider-navigation--next {
        right: 1.5rem; }
      .cs-slider-navigation[disabled] {
        opacity: 0.25;
        cursor: not-allowed; }
        .cs-slider-navigation[disabled] svg {
          filter: grayscale(1); }
      .cs-slider-navigation:not([disabled]):hover {
        box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25); }
      .cs-slider-navigation__icon {
        width: 1.4rem;
        height: 2.7rem;
        fill: currentColor; } }

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

/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * This components is sort of unique because it's items-per-row configuration is only available for tablet+
 * This map adds possibility to 'force' provied columns configuration up to laptop resolutions.
 */
.cs-image-teaser {
  --slogan-font-size: 2.1rem;
  --description-font-size: 1.5rem;
  --gap: 0.8rem;
  /*
     * Keep CTA separated from text-content for all scenarios
     * "!important" added due to fallback from --scheme-* with button() mixin that resets margins
     */
  /**
     * Contrast Optimizers
     */ }
  .cs-image-teaser:not(.cs-container--use-whole-width) .cs-image-teaser.cs-image-teaser--container-width .cs-image-teaser__slides-wrapper {
    max-width: 130rem;
    margin-left: auto;
    margin-right: auto; }
  .cs-image-teaser__slides {
    --columns: 1;
    display: grid;
    gap: var(--gap);
    grid-template-columns: repeat(var(--columns), minmax(0, 1fr));
    margin: 0;
    padding: 0; }
    .cs-image-teaser--items-in-row-mobile-2 .cs-image-teaser__slides {
      --columns: 2; }
  .cs-image-teaser__slide {
    display: inline-block;
    margin: 0; }
  .cs-image-teaser__link {
    outline-offset: calc(var(--gap) / 2 + 2); }
    .cs-image-teaser__link:focus {
      outline-offset: 0.4rem; }
    @media (prefers-reduced-motion: no-preference) {
      .cs-image-teaser__link {
        transition: outline-offset 0.25s ease; } }
  .cs-image-teaser__picture {
    display: block;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    overflow: hidden;
    width: 100%;
    height: auto;
    /* stylelint-disable -- stylelint doesn't know this media query yet. */
    /* stylelint-enable */ }
    @media (prefers-reduced-data: reduce) {
      .cs-image-teaser__picture {
        display: none; } }
  .cs-image-teaser__image {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    background-color: #f0f0f0; }
  @media (min-width: 48em) {
    .cs-image-teaser {
      --gap: 0.8rem; }
      .cs-image-teaser--items-in-row-2 .cs-image-teaser__slides {
        --columns: 2; }
      .cs-image-teaser--items-in-row-3 .cs-image-teaser__slides {
        --columns: 3; }
      .cs-image-teaser--items-in-row-4 .cs-image-teaser__slides {
        --columns: 4; }
      .cs-image-teaser--items-in-row-5 .cs-image-teaser__slides {
        --columns: 5; }
      .cs-image-teaser--items-in-row-6 .cs-image-teaser__slides {
        --columns: 6; }
      .cs-image-teaser--items-in-row-7 .cs-image-teaser__slides {
        --columns: 7; }
      .cs-image-teaser--items-in-row-8 .cs-image-teaser__slides {
        --columns: 8; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) .cs-image-teaser__slides {
    --columns: 2; } }
  .cs-image-teaser--slider {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size);
    /**
     * class-based columns config relates to classnames, like '--items-in-row-4'
     * which are added to elements, depending on the CC Components configuration.
     */
    /*  container padding fix  */ }
    @media (min-width: 83.125em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width {
        --base-size: calc(130rem - 0px); }
      .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) {
        --base-size: 100%;
        max-width: 100%; }
        .cs-image-teaser--slider.cs-image-teaser--use-whole-screen:not(.cs-image-teaser--full-width-slider) .cs-image-teaser__slides {
          scroll-snap-type: x proximity;
          padding-left: calc((100% - 130rem) / 2);
          padding-right: calc((100% - 130rem) / 2);
          scroll-padding-left: calc((100% - 130rem) / 2);
          scroll-padding-right: calc((100% - 130rem) / 2);
          scroll-margin-left: calc((100vw - 130rem) / 2);
          scroll-margin-right: calc((100vw - 130rem) / 2); } }
    @media (hover: hover) and (pointer: fine) and (min-width: 83.125em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width {
        --base-size: 130rem; } }
    @media (min-width: 48em) {
      .cs-image-teaser--slider {
        --gap: 0.8rem; } }
    @media (min-width: 48em) {
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-2 {
        --size: calc(
                        var(--base-size) /
                            2 -
                            ((1 * var(--gap)) / 2)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-3 {
        --size: calc(
                        var(--base-size) /
                            3 -
                            ((2 * var(--gap)) / 3)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-4 {
        --size: calc(
                        var(--base-size) /
                            4 -
                            ((3 * var(--gap)) / 4)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-5 {
        --size: calc(
                        var(--base-size) /
                            5 -
                            ((4 * var(--gap)) / 5)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-6 {
        --size: calc(
                        var(--base-size) /
                            6 -
                            ((5 * var(--gap)) / 6)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-7 {
        --size: calc(
                        var(--base-size) /
                            7 -
                            ((6 * var(--gap)) / 7)
                    ); }
      .cs-image-teaser--slider.cs-image-teaser--items-in-row-8 {
        --size: calc(
                        var(--base-size) /
                            8 -
                            ((7 * var(--gap)) / 8)
                    ); } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--slider.cs-image-teaser--items-in-row-4:not(.cs-image-teaser--icon) {
    --size: calc(var(--base-size) / 2 - (1 * var(--gap) / 2)); } }
    @media (max-width: 83.0625em) {
      .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
    @media (prefers-reduced-motion: no-preference) {
      .cs-image-teaser--slider .cs-image-teaser__slides {
        scroll-behavior: smooth; } }
    .cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
      position: relative; }
    .cs-image-teaser--slider .cs-image-teaser__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-image-teaser--slider .cs-image-teaser__slides {
          scroll-snap-type: x mandatory; } }
      @media (min-width: 48em) {
        .cs-image-teaser--slider .cs-image-teaser__slides {
          overflow: -moz-scrollbars-none;
          scrollbar-width: none; }
          .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
            background: transparent; }
          .cs-image-teaser--slider .cs-image-teaser__slides::-webkit-scrollbar-thumb {
            background: transparent;
            width: 0;
            height: 0; } }
    .cs-image-teaser--slider .cs-image-teaser__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-image-teaser--slider .cs-image-teaser__slide:last-of-type {
        margin-right: 0; }
    .cs-image-teaser--slider .cs-image-teaser__image {
      display: block; }
  @media (max-width: 47.99em) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) {
      --gap: 0.8rem;
      --base-size: calc(100% - 0px);
      --size: var(--base-size); }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width {
        margin-left: -1.5rem;
        margin-right: -1.5rem; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider).cs-image-teaser--container-width .cs-image-teaser__slides {
          padding-left: 1.5rem;
          padding-right: 1.5rem;
          scroll-padding-left: 1.5rem;
          scroll-padding-right: 1.5rem; } }
  @media (max-width: 47.99em) and (prefers-reduced-motion: no-preference) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
      scroll-behavior: smooth; } }
  @media (max-width: 47.99em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides-wrapper {
        position: relative; }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex: 0 0 100%;
        gap: 0;
        flex-wrap: nowrap;
        padding: var(--gap) 0;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin; }
        @supports (scroll-behavior: smooth) {
          .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
            scroll-snap-type: x mandatory; } } }
    @media (max-width: 47.99em) and (min-width: 48em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides {
        overflow: -moz-scrollbars-none;
        scrollbar-width: none; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar {
          display: none;
          width: 0;
          height: 0;
          background: transparent; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slides::-webkit-scrollbar-thumb {
          background: transparent;
          width: 0;
          height: 0; } }
  @media (max-width: 47.99em) {
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide {
        margin: 0;
        padding: 0;
        list-style: none;
        display: inline-block;
        flex: 0 0 var(--size);
        margin-right: var(--gap);
        scroll-snap-align: start;
        min-width: 0; }
        .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__slide:last-of-type {
          margin-right: 0; }
      .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__image {
        display: block; } }
  @media (min-width: 48em) {
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav,
    .cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
      display: none; } }
  .cs-image-teaser__slide--scheme-light {
    --scheme-color: #fff;
    --scheme-background: #484848; }
  .cs-image-teaser__slide--scheme-dark {
    --scheme-color: #484848;
    --scheme-background: #fff; }
  .cs-image-teaser__slide:not(.cs-image-teaser__slide--image-uploaded) {
    background: var(--scheme-background); }
  @media (max-width: 47.99em) {
    .cs-image-teaser__slides--mobile_text-image .cs-image-teaser__slide--image-uploaded {
      order: 1; }
    .cs-image-teaser__slides--mobile_image-text .cs-image-teaser__slide--image-uploaded {
      order: -1; } }
  @media (max-width: 47.99em) {
    .cs-image-teaser--as-list-mobile .cs-image-teaser__slides {
      flex-wrap: wrap; }
    .cs-image-teaser--as-list-mobile .cs-image-teaser__slide {
      margin: 0 0 0.8rem; }
    .cs-image-teaser--as-list-mobile .cs-image-teaser__pagination,
    .cs-image-teaser--as-list-mobile .cs-image-teaser__nav {
      display: none; } }
  .cs-image-teaser__link {
    display: block;
    height: 100%; }
    .cs-image-teaser__link, .cs-image-teaser__link:hover, .cs-image-teaser__link:visited, .cs-image-teaser__link:active, .cs-image-teaser__link:focus {
      text-decoration: none; }
  .cs-image-teaser__figure {
    height: 100%;
    position: relative; }
  .cs-image-teaser__content-wrapper {
    color: var(--scheme-color); }
    .cs-image-teaser__content-wrapper--under {
      position: relative;
      z-index: 1;
      margin: -2rem 2rem 0;
      padding: 2rem;
      background-color: var(--scheme-background);
      text-align: center; }
    .cs-image-teaser__content-wrapper--over {
      width: 100%;
      height: 100%;
      display: flex;
      padding: 2rem;
      overflow: hidden;
      align-items: flex-start; }
      .cs-image-teaser__picture + .cs-image-teaser__content-wrapper--over,
      .cs-image-teaser--teaser-and-text .cs-image-teaser__slide--image-uploaded .cs-image-teaser__content-wrapper--over {
        position: absolute;
        top: 0;
        left: 0; }
    .cs-image-teaser__content-wrapper--content-align-x-2 {
      justify-content: center;
      text-align: center; }
    .cs-image-teaser__content-wrapper--content-align-x-3 {
      justify-content: flex-end;
      text-align: right; }
    .cs-image-teaser__content-wrapper--content-align-y-2 {
      align-items: center; }
    .cs-image-teaser__content-wrapper--content-align-y-3 {
      align-items: flex-end; }
  .cs-image-teaser__content {
    position: relative; }
  .cs-image-teaser__text-content + .cs-image-teaser__cta {
    margin-top: 1em !important; }
  .cs-image-teaser__slogan {
    margin: 0;
    line-height: 1.1;
    font-size: var(--slogan-font-size);
    font-weight: 900;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
    -webkit-hyphens: auto;
            hyphens: auto;
    text-transform: uppercase; }
  .cs-image-teaser__description {
    margin: 1em 0 0;
    line-height: 1.1;
    font-size: var(--description-font-size); }
  .cs-image-teaser__cta {
    display: none; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta {
      display: inline-block;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active {
        background-color: #78b0e0 !important; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
        content: '';
        position: absolute;
        top: -1px;
        bottom: -1px;
        right: -1px; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:before {
        width: 5.5rem;
        border-radius: 0 0px 0px 0;
        z-index: -1;
        background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:after {
        width: 4rem;
        min-width: auto;
        background-color: #346097;
        transition: width 0.25s linear;
        z-index: -2;
        border-radius: 0px; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:after {
        width: calc(100% + 2px); }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited {
        cursor: pointer;
        border-radius: 0px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #78b0e0; }
        .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:visited * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #346097; }
        .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta[disabled] {
        opacity: 0.65;
        cursor: auto; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta {
      display: inline-block;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active {
        background-color: #78b0e0 !important; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:before, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:after {
        content: '';
        position: absolute;
        top: -1px;
        bottom: -1px;
        right: -1px; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:before {
        width: 5.5rem;
        border-radius: 0 0px 0px 0;
        z-index: -1;
        background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:after {
        width: 4rem;
        min-width: auto;
        background-color: #346097;
        transition: width 0.25s linear;
        z-index: -2;
        border-radius: 0px; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:after {
        width: calc(100% + 2px); }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
        cursor: pointer;
        border-radius: 0px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #78b0e0; }
        .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]), .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #346097; }
        .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:hover:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:focus:not([disabled]) *, .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta[disabled] {
        opacity: 0.65;
        cursor: auto; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
    .cs-image-teaser__slide--scheme-dark .cs-image-teaser__cta-icon {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em; }
    .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-icon {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em; }
    @media (min-width: 30em) {
      .cs-image-teaser__cta {
        display: inline-flex;
        z-index: 1;
        margin: 1.2em 0 0;
        align-items: center;
        font-size: 1.2rem; }
        .cs-image-teaser__cta-icon {
          width: 1.2rem;
          height: 1.4rem; } }
  .cs-image-teaser__overlay, .cs-image-teaser__gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-light .cs-image-teaser__optimizer-container {
    background-color: #484848; }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__overlay, .cs-image-teaser__slide--scheme-dark .cs-image-teaser__optimizer-container {
    background-color: #fff; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(135deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(45deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-1.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(45deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(180deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(0deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-2.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(0deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(-135deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-1 {
    background: linear-gradient(-135deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(-90deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-2 {
    background: linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(-45deg, #484848 0%, rgba(72, 72, 72, 0) 85%); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__gradient--direction-x-3.cs-image-teaser__gradient--direction-y-3 {
    background: linear-gradient(-45deg, #fff 0%, rgba(255, 255, 255, 0) 85%); }
  .cs-image-teaser__image--mirror {
    transform: scaleX(-1); }
  .cs-image-teaser__content--container {
    position: relative;
    z-index: 1;
    padding: 2em; }
  .cs-image-teaser__optimizer-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-0 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-5 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.05); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-10 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.1); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-15 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.15); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-20 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.2); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-25 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.25); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-30 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.3); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-35 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.35); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-40 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.4); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-45 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.45); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-50 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.5); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-55 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.55); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-60 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.6); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-65 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.65); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-70 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.7); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-75 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.75); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-80 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.8); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-85 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.85); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-90 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.9); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-95 {
    text-shadow: 0 0 2.5rem rgba(255, 255, 255, 0.95); }
  .cs-image-teaser__slide--scheme-dark .cs-image-teaser__text-content--text-shadow-100 {
    text-shadow: 0 0 2.5rem white; }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-0 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-5 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.05); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-10 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.1); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-15 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.15); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-20 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.2); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-25 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.25); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-30 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.3); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-35 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.35); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-40 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.4); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-45 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.45); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-50 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.5); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-55 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.55); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-60 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.6); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-65 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.65); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-70 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.7); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-75 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.75); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-80 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.8); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-85 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.85); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-90 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.9); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-95 {
    text-shadow: 0 0 0.4rem rgba(72, 72, 72, 0.95); }
  .cs-image-teaser__slide--scheme-light .cs-image-teaser__text-content--text-shadow-100 {
    text-shadow: 0 0 0.4rem #484848; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --gap: 0.8rem;
    --base-size: calc(100% - 0px);
    --size: var(--base-size); }
    .cs-image-teaser--icon.cs-image-teaser--container-width {
      margin-left: -1.5rem;
      margin-right: -1.5rem; }
      .cs-image-teaser--icon.cs-image-teaser--container-width .cs-image-teaser__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
  @media (min-width: 48em) and (max-width: 63.99em) and (prefers-reduced-motion: no-preference) {
    .cs-image-teaser--icon .cs-image-teaser__slides {
      scroll-behavior: smooth; } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .cs-image-teaser--icon .cs-image-teaser__slides-wrapper {
      position: relative; }
    .cs-image-teaser--icon .cs-image-teaser__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-image-teaser--icon .cs-image-teaser__slides {
          scroll-snap-type: x mandatory; } } }
    @media (min-width: 48em) and (max-width: 63.99em) and (min-width: 48em) {
      .cs-image-teaser--icon .cs-image-teaser__slides {
        overflow: -moz-scrollbars-none;
        scrollbar-width: none; }
        .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar {
          display: none;
          width: 0;
          height: 0;
          background: transparent; }
        .cs-image-teaser--icon .cs-image-teaser__slides::-webkit-scrollbar-thumb {
          background: transparent;
          width: 0;
          height: 0; } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .cs-image-teaser--icon .cs-image-teaser__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-image-teaser--icon .cs-image-teaser__slide:last-of-type {
        margin-right: 0; }
    .cs-image-teaser--icon .cs-image-teaser__image {
      display: block; } }

@media (min-width: 0px) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(var(--base-size) / 2 - ((1 * var(--gap)) / 2)) !important; } }

@media (min-width: 23.125em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(var(--base-size) / 2 - ((1 * var(--gap)) / 2)) !important; } }

@media (min-width: 30em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(var(--base-size) / 3 - ((2 * var(--gap)) / 3)) !important; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon {
    --size: calc(var(--base-size) / 5 - ((4 * var(--gap)) / 5)) !important; } }

@media (min-width: 48em) and (max-width: 63.99em) and (hover: hover) and (pointer: fine) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__nav {
    display: block; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-image-teaser--icon.cs-image-teaser--slider-mobile:not(.cs-image-teaser--slider) .cs-image-teaser__pagination {
    display: flex; } }
  .cs-image-teaser--icon .cs-image-teaser__slogan {
    --slogan-font-size: 1.6rem; }
  .cs-image-teaser--icon .cs-image-teaser__description {
    margin-top: 0.5em; }
  .cs-image-teaser--icon .cs-image-teaser__cta {
    display: none; }
  .cs-image-teaser--icon .cs-image-teaser__content-wrapper--under {
    margin-top: 0;
    padding: 1rem; }
  .cs-image-teaser--icon .cs-image-teaser__content-wrapper--cta-only {
    display: none; }
  @media (min-width: 48em) {
    .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-1 {
      grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
    .cs-image-teaser--mosaic .cs-image-teaser__slides--mosaic-scenario-2 {
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
  @media (max-width: 47.99em) {
    .cs-image-teaser--teaser-and-text .cs-image-teaser__slides {
      display: flex;
      flex-wrap: wrap; }
    .cs-image-teaser--teaser-and-text .cs-image-teaser__slide {
      flex: 0 0 100%; } }
  .cs-image-teaser--instagram-feed .cs-image-teaser__picture {
    height: 100%; }
  .cs-image-teaser--instagram-feed .cs-image-teaser__image {
    -o-object-fit: contain;
       object-fit: contain;
    background-color: #f0f0f0; }

.cs-container--image-teaser {
  margin: 0 0 2rem; }

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

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

.cs-container--image-teaser-slider {
  padding-left: 0;
  padding-right: 0; }

.cms-home .cs-container.cs-container--static-block .cs-container__inner {
  width: 100%; }
  .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo {
    display: flex;
    justify-content: center;
    width: 100vw;
    border-top: 5px solid #82cad4; }
    .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo .slogan {
      width: 84%;
      margin: 0;
      text-transform: uppercase;
      color: #fff;
      padding: 15px 0;
      margin: -5px;
      font-size: 50px;
      font-weight: 700;
      text-shadow: 0 0 0.2rem #212121;
      text-align: center;
      line-height: 1;
      position: absolute;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 100; }
      @media (min-width: 30em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo .slogan {
          font-size: 60px; } }
      @media (min-width: 48em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo .slogan {
          font-size: 70px; } }
      @media (min-width: 64em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo .slogan {
          font-size: 100px; } }
      .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo .slogan span {
        width: 80%; }
    .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo video {
      max-height: 100%;
      max-width: 200vw;
      width: 200vw;
      display: block;
      filter: brightness(1); }
      @media (min-width: 30em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo video {
          width: 170vw; } }
      @media (min-width: 48em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo video {
          width: 130vw; } }
      @media (min-width: 64em) {
        .cms-home .cs-container.cs-container--static-block .cs-container__inner .homevideo video {
          width: 100vw; } }

.category-kim-jestesmy .cs-container.cs-container--static-block {
  padding: 0; }
  .category-kim-jestesmy .cs-container.cs-container--static-block .cs-container__inner {
    width: 100%;
    margin: 0; }
    .category-kim-jestesmy .cs-container.cs-container--static-block .cs-container__inner .video-kim-jestesmy .slogan {
      width: 100vw;
      margin: 0;
      text-transform: uppercase;
      color: #fff;
      font-size: 70px;
      font-weight: 700;
      text-shadow: 0 0 0.2rem #212121;
      text-align: center;
      line-height: 1;
      position: absolute;
      height: 170%;
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 100; }
      .category-kim-jestesmy .cs-container.cs-container--static-block .cs-container__inner .video-kim-jestesmy .slogan span {
        width: 80%; }
      .category-kim-jestesmy .cs-container.cs-container--static-block .cs-container__inner .video-kim-jestesmy .slogan.sub {
        font-size: 30px;
        height: 130%; }
    .category-kim-jestesmy .cs-container.cs-container--static-block .cs-container__inner .video-kim-jestesmy video {
      max-height: 100%;
      max-width: 100vw;
      width: 100vw;
      display: block;
      filter: brightness(1); }

.cms-home .column.main {
  padding: 0; }
  .cms-home .column.main .cs-container.cs-container--static-block:nth-of-type(1) {
    padding: 0; }
    .cms-home .column.main .cs-container.cs-container--static-block:nth-of-type(1) .cs-container__inner {
      margin: 0;
      width: 100vw; }
  .cms-home .column.main div:nth-child(3) .cs-container.cs-container--image-teaser {
    background-color: #f0f0f0; }
  .cms-home .column.main div:nth-child(2) .cs-container.cs-container--headline {
    background-color: #f0f0f0; }
  .cms-home .column.main div:nth-child(8) {
    margin-top: 1rem; }
    .cms-home .column.main div:nth-child(8) .cs-button-component {
      margin: 0; }
  .cms-home .column.main div:nth-child(10) .cs-image-teaser {
    margin-bottom: 0.8rem; }
  .cms-home .column.main div:nth-child(11) .cs-image-teaser__slide .cs-image-teaser__slide-wrapper {
    position: relative; }
  .cms-home .column.main div:nth-child(11) .cs-image-teaser__slide:first-child .cs-image-teaser__slide-wrapper {
    position: absolute; }

.catalog-category-view .cs-image-teaser--items-in-row-1.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-light.cs-image-teaser__slide--image-uploaded {
  padding: 0; }

.catalog-category-view .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-dark.cs-image-teaser__slide--image-uploaded,
.catalog-category-view .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-light.cs-image-teaser__slide--image-uploaded {
  padding: 0;
  width: 49%;
  margin-bottom: 1rem; }
  .catalog-category-view .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-dark.cs-image-teaser__slide--image-uploaded:nth-child(odd),
  .catalog-category-view .cs-image-teaser.cs-image-teaser--items-in-row-2.cs-image-teaser--items-in-row-mobile-1 .cs-image-teaser__slide.cs-image-teaser__slide--scheme-light.cs-image-teaser__slide--image-uploaded:nth-child(odd) {
    margin-right: auto; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * It is intended, to not use the same config pattern (js/conlumnsConfig) as for other slider-based componets,
 * because Products Carousels should have the same config as product grid for consistency.
 * If custom columns config is needed, redefine it.
 */
.cs-products-carousel {
  margin: 0 0 3rem;
  --gap: 0.8rem;
  --base-size: calc(100% - 0px);
  --size: var(--base-size);
  /**
     * class-based columns config relates to classnames, like '--items-in-row-4'
     * which are added to elements, depending on the CC Components configuration.
     */
  --size: calc(
            var(--base-size) /
                2 -
                1 *
                var(--gap) /
                2
        );
  /*  container padding fix  */ }
  @media (min-width: 48em) {
    .cs-products-carousel {
      margin: 0 0 4rem; } }
  .cs-products-carousel--skip-spacing {
    margin: 0; }
  @media (min-width: 83.125em) {
    .cs-products-carousel.cs-products-carousel--container-width {
      --base-size: calc(130rem - 0px); }
    .cs-products-carousel.cs-products-carousel--use-whole-screen:not(.cs-products-carousel--full-width-slider) {
      --base-size: 100%;
      max-width: 100%; }
      .cs-products-carousel.cs-products-carousel--use-whole-screen:not(.cs-products-carousel--full-width-slider) .cs-products-carousel__slides {
        scroll-snap-type: x proximity;
        padding-left: calc((100% - 130rem) / 2);
        padding-right: calc((100% - 130rem) / 2);
        scroll-padding-left: calc((100% - 130rem) / 2);
        scroll-padding-right: calc((100% - 130rem) / 2);
        scroll-margin-left: calc((100vw - 130rem) / 2);
        scroll-margin-right: calc((100vw - 130rem) / 2); } }
  @media (hover: hover) and (pointer: fine) and (min-width: 83.125em) {
    .cs-products-carousel.cs-products-carousel--container-width {
      --base-size: 130rem; } }
  @media (min-width: 48em) {
    .cs-products-carousel {
      --gap: 0.8rem; } }
  @media (min-width: 23.125em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
  @media (min-width: 30em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
  @media (min-width: 48em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
  @media (min-width: 64em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
  @media (min-width: 80em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
  @media (min-width: 90em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
  @media (min-width: 120em) {
    .cs-products-carousel {
      --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
  @media (max-width: 83.0625em) {
    .cs-products-carousel.cs-products-carousel--container-width .cs-products-carousel__slides {
      padding-left: 1.5rem;
      padding-right: 1.5rem;
      scroll-padding-left: 1.5rem;
      scroll-padding-right: 1.5rem; } }
  @media (prefers-reduced-motion: no-preference) {
    .cs-products-carousel .cs-products-carousel__slides {
      scroll-behavior: smooth; } }
  .cs-products-carousel .cs-products-carousel__slides-wrapper {
    position: relative; }
  .cs-products-carousel .cs-products-carousel__slides {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex: 0 0 100%;
    gap: 0;
    flex-wrap: nowrap;
    padding: var(--gap) 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin; }
    @supports (scroll-behavior: smooth) {
      .cs-products-carousel .cs-products-carousel__slides {
        scroll-snap-type: x mandatory; } }
    @media (min-width: 48em) {
      .cs-products-carousel .cs-products-carousel__slides {
        overflow: -moz-scrollbars-none;
        scrollbar-width: none; }
        .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar {
          display: none;
          width: 0;
          height: 0;
          background: transparent; }
        .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
          background: transparent;
          width: 0;
          height: 0; } }
  .cs-products-carousel .cs-products-carousel__slide {
    margin: 0;
    padding: 0;
    list-style: none;
    display: inline-block;
    flex: 0 0 var(--size);
    margin-right: var(--gap);
    scroll-snap-align: start;
    min-width: 0; }
    .cs-products-carousel .cs-products-carousel__slide:last-of-type {
      margin-right: 0; }
  .cs-products-carousel .cs-products-carousel__image {
    display: block; }
  .cs-products-carousel__wrapper {
    position: relative;
    z-index: 2; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Gap between columns (all CSS units allowed) [Example: 1.5rem]
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap
 */
/**
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule
 */
.cs-paragraph {
  -moz-column-gap: 6rem;
       column-gap: 6rem;
  -moz-column-rule: 1px solid #dcdcdc;
       column-rule: 1px solid #dcdcdc;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-paragraph {
      margin: 0 0 4rem; } }
  .cs-paragraph--skip-spacing {
    margin: 0; }
  .cs-paragraph img {
    height: auto; }
  @media (min-width: 48em) {
    .cs-paragraph--cols-2, .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
      -moz-column-count: 2;
           column-count: 2; }
      .cs-paragraph--cols-2 li, .cs-paragraph--cols-3 li, .cs-paragraph--cols-4 li {
        width: 100%; }
      .cs-paragraph--cols-2 img, .cs-paragraph--cols-3 img, .cs-paragraph--cols-4 img {
        display: block;
        max-width: 100%; } }
  @media (min-width: 64em) {
    .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
      -moz-column-count: 3;
           column-count: 3; } }
  @media (min-width: 80em) {
    .cs-paragraph--cols-4 {
      -moz-column-count: 4;
           column-count: 4; } }
  .cs-paragraph--mode-optimal {
    max-width: 40em;
    margin-left: auto;
    margin-right: auto;
    -moz-column-count: initial;
         column-count: initial; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-separator {
  position: relative;
  clear: both;
  border: none;
  border-top: 1px solid #dcdcdc;
  background: transparent;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-separator {
      margin: 0 0 4rem; } }
  .cs-separator--skip-spacing {
    margin: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.ui-datepicker {
  display: none;
  z-index: 999999 !important;
  border: none;
  border-radius: 0px;
  padding: 0;
  width: auto;
  min-width: 25rem;
  box-shadow: 1px 3px 3rem 0 rgba(72, 72, 72, 0.28);
  background: #f0f0f0; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
  position: absolute;
  /*must have*/
  z-index: -1;
  /*must have*/
  filter: mask();
  /*must have*/
  top: -4px;
  /*must have*/
  left: -4px;
  /*must have*/
  width: 200px;
  /*must have*/
  height: 200px;
  /*must have*/ }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-captcha__image-controls {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 1.5rem; }
  .cs-dashboard .cs-captcha__image-controls {
    flex-direction: column;
    align-items: flex-start; }
    @media (min-width: 30em) {
      .cs-dashboard .cs-captcha__image-controls {
        flex-direction: row;
        align-items: flex-end; } }
  @media (max-width: 48em) {
    .cs-captcha__image-controls {
      flex-wrap: wrap; } }

.cs-captcha__image {
  margin-right: 1rem; }

.cs-captcha__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-captcha__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-captcha__button, .cs-captcha__button:visited {
    cursor: pointer;
    border-radius: 0px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #78b0e0;
    color: #78b0e0;
    background-color: #fff; }
    .cs-captcha__button *, .cs-captcha__button:visited * {
      color: #78b0e0;
      fill: #78b0e0; }
  .cs-captcha__button:hover:not([disabled]), .cs-captcha__button:focus:not([disabled]), .cs-captcha__button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #346097;
    color: #fff;
    background-color: #346097; }
    .cs-captcha__button:hover:not([disabled]) *, .cs-captcha__button:focus:not([disabled]) *, .cs-captcha__button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-captcha__button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-dashboard .cs-captcha__button {
    margin-top: 2rem; }
    @media (min-width: 30em) {
      .cs-dashboard .cs-captcha__button {
        margin-top: 0; } }

.cs-captcha__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal; }

.cs-captcha__note {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969; }

.cs-dashboard .cs-captcha__wrapper {
  width: 100%;
  margin-bottom: 2rem; }

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

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.delete {
    width: 100%; }
    .cs-dashboard .table-additional-addresses-items .action.delete:before {
      display: none !important; } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.edit {
    margin-right: 0;
    width: 100%; } }
  .cs-dashboard .form-newsletter-manage {
    background: transparent; }
    .cs-dashboard .form-newsletter-manage .fieldset {
      margin-bottom: 1rem; }
  .cs-dashboard__button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-dashboard__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-dashboard__button, .cs-dashboard__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-dashboard__button *, .cs-dashboard__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard__button:hover:not([disabled]), .cs-dashboard__button:focus:not([disabled]), .cs-dashboard__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-dashboard__button:hover:not([disabled]) *, .cs-dashboard__button:focus:not([disabled]) *, .cs-dashboard__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-dashboard__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal; }
  .cs-dashboard__button-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-dashboard__wishlist-guest {
    padding-top: 2rem; }
  .cs-dashboard__wishlist-guest-copy {
    padding-left: 1rem;
    position: relative; }
  .cs-dashboard__wishlist-guest-copy-icon {
    width: 2rem;
    height: 2rem;
    fill: #696969;
    position: absolute; }

.cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
  padding-top: 2rem;
  padding-bottom: 2rem; }
  @media (min-width: 64em) {
    .cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
      padding-top: 3rem;
      padding-bottom: 5rem; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-container--my-account-page {
    padding-left: 1.5rem;
    padding-right: 1.5rem; } }

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

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

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

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

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

.account.page-print .items-qty {
  margin: 0;
  padding: 0;
  list-style: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-form, .cs-form__fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__field + .cs-form__field {
  margin-top: 1em; }

.cs-form--disabled {
  opacity: 0.6; }

.cs-form__button {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-form__button:hover, .cs-form__button:focus, .cs-form__button:active {
    background-color: #78b0e0 !important; }
  .cs-form__button:before, .cs-form__button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-form__button:before {
    width: 5.5rem;
    border-radius: 0 0px 0px 0;
    z-index: -1;
    background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
  .cs-form__button:after {
    width: 4rem;
    min-width: auto;
    background-color: #346097;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 0px; }
  .cs-form__button:hover:after {
    width: calc(100% + 2px); }
  .cs-form__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-form__button, .cs-form__button:visited {
    cursor: pointer;
    border-radius: 0px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #78b0e0; }
    .cs-form__button *, .cs-form__button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-form__button:hover:not([disabled]), .cs-form__button:focus:not([disabled]), .cs-form__button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #346097; }
    .cs-form__button:hover:not([disabled]) *, .cs-form__button:focus:not([disabled]) *, .cs-form__button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-form__button[disabled] {
    opacity: 0.65;
    cursor: auto; }

.cs-form__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 4em; }

.cs-form__button-icon {
  max-width: 1em;
  max-height: 1.4rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 1em; }

.form,
.form .fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

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

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.password-strength-meter {
  font-size: 1.2rem;
  background-color: initial;
  border: none;
  border-top-width: 0;
  height: 3.2rem;
  line-height: 3.2rem;
  padding: 0 1rem;
  position: relative;
  z-index: 1;
  background-size: 2rem 0.7rem;
  background-repeat: no-repeat;
  background-position-y: 50%;
  background-position-x: calc(100% - 1rem), calc(100% - (2.5rem + 1rem)), calc(100% - (2.5rem * 2 + 1rem)), calc(100% - (2.5rem * 3 + 1rem)), calc(100% - (2.5rem * 4 + 1rem)), calc(100% - (2.5rem * 5 + 1rem));
  background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"); }
  @media (max-width: 29.99em) {
    .password-strength-meter {
      font-size: 1rem;
      padding: 0 0.5rem; } }
  .password-strength-meter:before {
    display: none; }
  .password-weak .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-weak.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-weak.svg"); }
  .password-medium .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"); }
  .password-strong .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"); }
  .password-very-strong .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"); }
  @media (max-width: 29.99em) {
    .password-strength-meter {
      background-size: 1.5rem 0.5rem;
      background-position-x: calc(100% - 1rem), calc( 100% - ( 1.7rem + 1rem )), calc( 100% - ( 1.7rem * 2 + 1rem )), calc( 100% - ( 1.7rem * 3 + 1rem )), calc( 100% - ( 1.7rem * 4 + 1rem )), calc( 100% - ( 1.7rem * 5 + 1rem )); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-review {
  font-size: 1.4rem; }
  .cs-review__title {
    font-weight: 700;
    margin: 0 0 0.7rem;
    color: #484848; }
  .cs-review__rating, .cs-review__ratings {
    margin: 0 0 2rem;
    padding: 0; }
  .cs-review__compound-rating {
    list-style-type: none;
    display: flex;
    justify-content: space-between;
    max-width: 20rem;
    margin-bottom: 0.3em; }
    .cs-review__compound-rating:last-child {
      margin-bottom: 0; }
  .cs-review__meta {
    margin: 0 0 2rem;
    font-size: 0.9em; }
    .cs-review__meta--variant-support {
      display: flex;
      align-items: center; }
  .cs-review__meta-item {
    vertical-align: middle;
    padding: 0 1rem;
    line-height: 1em;
    border-right: 1px solid #dcdcdc; }
    .cs-review__meta-item:first-child {
      padding-left: 0; }
    .cs-review__meta-item:last-child {
      border-right: none; }
  .cs-review__author {
    color: #484848; }
  .cs-review__date {
    margin-left: -4px;
    color: #888; }
  .cs-review__variant {
    flex-grow: 1;
    padding: 0 1rem; }
    .cs-review__variant .swatch-attribute-options {
      margin-bottom: 0; }
    .cs-review__variant .swatch-option {
      cursor: default; }
  .cs-review__content {
    margin: 0;
    color: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-reviews-summary {
  line-height: 1;
  display: flex;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  flex: 1 0 100%;
  border-bottom: 1px solid #dcdcdc; }
  @media (min-width: 64em) {
    .cs-reviews-summary {
      flex: 0 0 35rem;
      margin-bottom: 0;
      margin-right: 2.5rem;
      padding-right: 2.5rem;
      border-right: 1px solid #dcdcdc;
      border-bottom: 0;
      align-content: flex-start; } }
  .cs-reviews-summary__note {
    font-size: 4rem;
    line-height: 100%;
    color: #484848;
    font-weight: 300;
    margin-bottom: 0.5rem; }
  .cs-reviews-summary__note-right {
    color: #696969; }
  .cs-reviews-summary__all-count {
    width: 100%;
    margin: 1rem 0 2rem; }
  .cs-reviews-summary__button-wrapper {
    width: 100%;
    margin-top: 2.5rem;
    padding: 2.5rem 0;
    border-top: 1px solid #dcdcdc; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-reviews-summary__button-wrapper {
    margin-top: 0;
    border-top: 0; } }
  .cs-reviews-summary__button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    font-size: 1.4rem; }
    .cs-reviews-summary__button:hover, .cs-reviews-summary__button:focus, .cs-reviews-summary__button:active {
      background-color: #78b0e0 !important; }
    .cs-reviews-summary__button:before, .cs-reviews-summary__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-reviews-summary__button:before {
      width: 5.5rem;
      border-radius: 0 0px 0px 0;
      z-index: -1;
      background: linear-gradient(100deg, transparent 0%, transparent 15%, #346097 15%, #346097 100%); }
    .cs-reviews-summary__button:after {
      width: 4rem;
      min-width: auto;
      background-color: #346097;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 0px; }
    .cs-reviews-summary__button:hover:after {
      width: calc(100% + 2px); }
    .cs-reviews-summary__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-reviews-summary__button, .cs-reviews-summary__button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-reviews-summary__button *, .cs-reviews-summary__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-reviews-summary__button:hover:not([disabled]), .cs-reviews-summary__button:focus:not([disabled]), .cs-reviews-summary__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-reviews-summary__button:hover:not([disabled]) *, .cs-reviews-summary__button:focus:not([disabled]) *, .cs-reviews-summary__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-reviews-summary__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .cs-reviews-summary__button {
        width: 100%; } }
  .cs-reviews-summary__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-reviews-summary__button-icon {
    max-width: 1em;
    max-height: 1.4rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }
  .cs-reviews-summary__stars {
    margin-right: 1rem;
    flex: 1 0 auto; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__stars {
        flex: 0 1 auto;
        margin-right: 4rem; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__stars {
        flex: 0 1 100%; } }
  .cs-reviews-summary__bars {
    font-size: 1.4rem;
    list-style: none inside none;
    padding: 0;
    margin: 2.5rem 0 0;
    flex-grow: 1;
    color: #696969;
    max-width: 40rem;
    width: 100%; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__bars {
        margin-top: 0;
        width: auto; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__bars {
        margin-top: 2.5rem; } }
  .cs-reviews-summary__bar {
    position: relative;
    vertical-align: bottom;
    display: flex;
    align-items: center;
    margin: 0 0 1rem 0; }
    .cs-reviews-summary__bar:last-child {
      margin-bottom: 0; }
    .cs-reviews-summary__bar-label {
      flex: 0 1 3.5em; }
    .cs-reviews-summary__bar-count {
      width: 1.5em;
      text-align: right; }
    .cs-reviews-summary__bar-progress {
      flex: 1 0 auto;
      position: relative;
      display: inline-block;
      min-width: 9rem;
      height: 0.9em;
      margin: 0 0.8rem 0 0.7rem;
      background: #f0f0f0; }
      .cs-reviews-summary__bar-progress-inner {
        position: absolute;
        left: 0;
        top: 0;
        height: inherit;
        background: #fedfa4; }
  .cs-reviews-summary__ratings-averages {
    list-style-type: none;
    width: 100%;
    margin: 2.5rem 0 0;
    padding: 2.5rem 0 0;
    border-top: 1px solid #dcdcdc;
    line-height: 1.43; }
    .cs-reviews-summary__ratings-averages-item {
      width: 100%;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin-bottom: 0.3em; }
      @media (min-width: 23.125em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 25rem; } }
      @media (min-width: 48em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 40rem; } }
      .cs-reviews-summary__ratings-averages-item:last-child {
        margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-reviews {
  flex: 1 1; }
  @media (max-width: 63.99em) {
    .cs-reviews {
      border-bottom: 1px solid #dcdcdc; } }
  .cs-reviews__title {
    background: #f0f0f0; }
    @media (min-width: 48em) {
      .cs-reviews__title {
        background: none;
        padding: 0; } }
  .cs-reviews__list {
    list-style: none;
    margin: 0;
    padding: 0; }
  .cs-reviews__label {
    float: left;
    line-height: 4rem; }
  .cs-reviews__item {
    padding: 0 0 2.5rem;
    margin: 0 0 2.5rem;
    border-bottom: 1px solid #dcdcdc;
    list-style: none; }
    .cs-reviews__item:last-of-type {
      border-bottom: 0;
      margin-bottom: 0; }
  .cs-reviews__form {
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    margin: 2.5rem 0; }
    @media (min-width: 64em) {
      .cs-reviews__form {
        background: #f0f0f0;
        padding: 3rem; } }
    .cs-reviews__form .swatch-opt {
      margin-bottom: 1.5em;
      font-size: 1.4rem;
      width: 100%; }
      .cs-reviews__form .swatch-opt .swatch-attribute {
        flex-direction: column;
        align-items: flex-start !important; }
      .cs-reviews__form .swatch-opt .swatch-attribute-label {
        font-weight: 700;
        font-size: 0.85em;
        width: 100%;
        text-transform: none;
        color: inherit; }
        .cs-reviews__form .swatch-opt .swatch-attribute-label:after {
          content: ' *'; }
      .cs-reviews__form .swatch-opt .swatch-attribute-options {
        margin-bottom: 0; }
  .cs-reviews__headline {
    width: 100%;
    margin: 0 0 1.4em;
    text-align: left;
    font-size: 1.8rem; }
  .cs-reviews__product-name {
    font-weight: 200; }
  .cs-reviews__rating-item:not(:first-of-type) {
    margin-top: 1em; }
  .cs-reviews__options {
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1.5em;
    font-size: 1.4rem; }
    @media (min-width: 64em) {
      .cs-reviews__options {
        width: 50%;
        padding-right: 3rem;
        border-right: 1px solid #dcdcdc; } }
  .cs-reviews__ratings {
    width: 100%; }
  .cs-reviews__fieldset {
    width: 100%;
    margin-bottom: 1.5em;
    text-align: left;
    box-sizing: border-box; }
    @media (min-width: 64em) {
      .cs-reviews__fieldset {
        width: 50%;
        padding-left: 3rem; } }
  .cs-reviews__submit {
    width: 100%;
    display: flex;
    justify-content: flex-start; }
    @media (min-width: 64em) {
      .cs-reviews__submit {
        justify-content: center; } }
  .cs-reviews__submit-button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-reviews__submit-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-reviews__submit-button, .cs-reviews__submit-button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #78b0e0; }
      .cs-reviews__submit-button *, .cs-reviews__submit-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-reviews__submit-button:hover:not([disabled]), .cs-reviews__submit-button:focus:not([disabled]), .cs-reviews__submit-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #346097; }
      .cs-reviews__submit-button:hover:not([disabled]) *, .cs-reviews__submit-button:focus:not([disabled]) *, .cs-reviews__submit-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-reviews__submit-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 30em) {
      .cs-reviews__submit-button {
        width: 100%; } }
  .cs-reviews__rating-control {
    box-sizing: content-box;
    border: 1px solid #dcdcdc;
    border-radius: 0px;
    padding: 0.75em 1em;
    height: 1.275em;
    background: transparent;
    margin: 0 0 0.2em;
    display: flex;
    align-items: center; }
    .cs-reviews__rating-control input[type='radio'],
    .cs-reviews__rating-control .cs-reviews__rate-stars span {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-reviews__rate-stars {
    box-sizing: border-box;
    order: 0; }
  .cs-reviews__rate-feedback {
    order: 1;
    font-size: 0.85em;
    line-height: 0.9em;
    color: #888;
    font-weight: 700;
    margin-left: 1.5rem;
    display: flex;
    align-items: center; }
  .cs-reviews__review-field {
    min-height: 10rem;
    resize: vertical; }
  .cs-reviews .cs-pagination__content {
    justify-content: center;
    margin: 2.5rem 0; }
  .cs-reviews--load-more {
    padding-bottom: 3rem; }
    @media (min-width: 48em) {
      .cs-reviews--load-more .cs-reviews__content {
        position: relative; } }
    .cs-reviews--load-more .cs-reviews__button {
      display: inline-block;
      font-size: 1.4rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      position: relative;
      margin: 2rem 0 0.5rem;
      padding-right: 4rem;
      position: relative; }
      .cs-reviews--load-more .cs-reviews__button::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-reviews--load-more .cs-reviews__button, .cs-reviews--load-more .cs-reviews__button:visited {
        cursor: pointer;
        border-radius: 0px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #78b0e0; }
        .cs-reviews--load-more .cs-reviews__button *, .cs-reviews--load-more .cs-reviews__button:visited * {
          color: #fff;
          fill: #fff; }
      .cs-reviews--load-more .cs-reviews__button:hover:not([disabled]), .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]), .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #346097; }
        .cs-reviews--load-more .cs-reviews__button:hover:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-reviews--load-more .cs-reviews__button[disabled] {
        opacity: 0.65;
        cursor: auto; }
      .cs-reviews--load-more .cs-reviews__button:before, .cs-reviews--load-more .cs-reviews__button:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 1rem;
        height: 1px;
        left: auto;
        background-color: #fff;
        transition: background-color 0.15s linear;
        backface-visibility: hidden; }
      .cs-reviews--load-more .cs-reviews__button:hover:before, .cs-reviews--load-more .cs-reviews__button:hover:after {
        background-color: #888; }
      .cs-reviews--load-more .cs-reviews__button[aria-expanded="true"]:before, .cs-reviews--load-more .cs-reviews__button[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-reviews--load-more .cs-reviews__button:before {
        transform: rotate(45deg) translate3d(0, 0, 0);
        right: calc( 1.5rem + 1.2rem - 0.4rem); }
      .cs-reviews--load-more .cs-reviews__button:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 1.6rem; }
      .cs-reviews--load-more .cs-reviews__button:hover:after, .cs-reviews--load-more .cs-reviews__button:hover:before {
        color: #fff; }
      .cs-reviews--load-more .cs-reviews__button span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
      .cs-reviews--load-more .cs-reviews__button .count {
        display: inline-flex;
        padding-left: 0.5rem; }
        .cs-reviews--load-more .cs-reviews__button .count:before {
          content: '('; }
        .cs-reviews--load-more .cs-reviews__button .count:after {
          content: ')'; }
      .cs-reviews--load-more .cs-reviews__button .loading-mask {
        position: absolute;
        width: 100%;
        height: 100%;
        background-image: url("../../frontend/Creativestyle/theme-tuplex/pl_PL/images/spinner.svg");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 2.5rem 2.5rem; }
        .cs-reviews--load-more .cs-reviews__button .loading-mask img {
          display: none; }
    .cs-reviews--load-more .cs-reviews__count {
      color: #696969; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-stack-nav__trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  background-color: #f0f0f0;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 700; }
  @media (min-width: 48em) {
    .cs-stack-nav__trigger {
      display: none; } }
  .cs-stack-nav__trigger-icon {
    margin-left: 1.5rem;
    width: 6px;
    height: 10px;
    fill: #888;
    transform: rotate(90deg);
    transition: transform 0.3s; }
  .cs-stack-nav__trigger[aria-expanded='true'] .cs-stack-nav__trigger-icon {
    transform: rotate(-90deg); }

@media (max-width: 47.99em) {
  .cs-stack-nav__content {
    background-color: #f0f0f0; } }

@media (min-width: 48em) {
  .cs-stack-nav__content {
    border-radius: 0px;
    background-color: #fff;
    box-shadow: 1px 3px 3rem 0 rgba(72, 72, 72, 0.28);
    padding: 2rem 0; } }

.cs-stack-nav__list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-stack-nav__list > svg,
  .cs-stack-nav__list > img {
    display: none; }

.cs-stack-nav__nav .cs-stack-nav__list li {
  margin: 0;
  overflow: hidden;
  white-space: nowrap; }

.cs-stack-nav__nav .cs-stack-nav__list li a,
.cs-stack-nav__nav .cs-stack-nav__list li strong {
  font-size: 1.4rem;
  font-weight: 300;
  color: #696969;
  border-left: none;
  padding: 0.75rem 1.5rem;
  display: block;
  margin-bottom: 0.1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }
  @media (min-width: 48em) {
    .cs-stack-nav__nav .cs-stack-nav__list li a,
    .cs-stack-nav__nav .cs-stack-nav__list li strong {
      padding: 0.5rem 1.8rem 0.5rem 2.5rem; } }
  .cs-stack-nav__nav .cs-stack-nav__list li a svg,
  .cs-stack-nav__nav .cs-stack-nav__list li a img,
  .cs-stack-nav__nav .cs-stack-nav__list li strong svg,
  .cs-stack-nav__nav .cs-stack-nav__list li strong img {
    width: 2rem;
    height: 1.4rem;
    margin-left: 0.3rem;
    transform: translateY(0.1rem); }

.cs-stack-nav__nav .cs-stack-nav__list li a:hover {
  background-color: #dcdcdc;
  color: #484848; }
  @media (min-width: 48em) {
    .cs-stack-nav__nav .cs-stack-nav__list li a:hover {
      background-color: #f0f0f0; } }

.cs-stack-nav__nav .cs-stack-nav__list li.current strong {
  position: relative;
  border-left: none;
  border-color: transparent;
  font-weight: 700;
  color: #484848; }
  .cs-stack-nav__nav .cs-stack-nav__list li.current strong:hover {
    color: #484848; }
  .cs-stack-nav__nav .cs-stack-nav__list li.current strong:before {
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    display: block;
    width: 0.5rem;
    height: 100%;
    background: #FFEF45; }

.cs-stack-nav__nav .item .delimiter {
  border-top: 1px solid #dcdcdc;
  display: block;
  margin: 1rem 1.8rem; }

.cs-stack-nav__nav .cs-stack-nav__list li.current a {
  padding: 0;
  margin-bottom: 0; }

@media (min-width: 48em) {
  .cs-stack-nav__nav {
    display: block;
    position: relative; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
.cs-sticky-block {
  box-sizing: border-box; }
  @media (min-width: 64em) {
    .cs-sticky-block {
      position: sticky;
      z-index: 10;
      top: 1em; } }
  @media (min-width: 48em) {
    .cs-sticky-block--pdp {
      position: relative;
      z-index: 3;
      margin-right: calc(15px - 0.5rem); }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media (min-width: 64em) {
    .cs-sticky-block--pdp {
      top: 3rem;
      margin-right: 15px; }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media screen and (min-width: 1230px) {
    .cs-sticky-block--pdp {
      margin-right: 0; } }
  @media (min-width: 48em) {
    .cs-sticky-block--no-mobile {
      position: sticky;
      top: 8.5rem; } }
  @media (min-width: 64em) {
    .cs-sticky-block--no-mobile {
      top: 1.5rem; } }

@charset "UTF-8";
/** Styles form _tables.less of theme blank are moved here.
   * For some tables there is mobile layout applied also for tablet resolutions
   * Variables for typograpy, colors, border etc. are added
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable no-descending-specificity */
.table-wrapper {
  margin-bottom: 2rem; }
  @media (max-width: 47.99em) {
    .table-wrapper {
      border: none;
      display: block; } }
  @media (min-width: 48em) {
    .table-wrapper.cart .table-wrapper.cart {
      border-top: none; } }
  .table-wrapper.grouped tbody:last-child td {
    border-bottom: none; }

.table {
  max-width: 100%;
  width: 100%;
  background: transparent; }
  .table > caption {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .table:not(.totals):not(.table-totals) {
    border: none; }
    .table:not(.totals):not(.table-totals) td {
      border: none;
      padding: 0.8rem 1rem; }
    .table:not(.totals):not(.table-totals) thead {
      border-bottom: 2px solid #dcdcdc;
      background: #78b0e0; }
      .table:not(.totals):not(.table-totals) thead th {
        font-size: 1.4rem;
        color: #fff;
        text-align: center;
        font-weight: 400; }
    .table:not(.totals):not(.table-totals) tbody .rows {
      height: 72px; }
      .table:not(.totals):not(.table-totals) tbody .rows .wartosc {
        font-weight: 600; }
        .table:not(.totals):not(.table-totals) tbody .rows .wartosc:after {
          content: ' zł'; }
    .table:not(.totals):not(.table-totals) tbody td {
      font-size: 1.4rem;
      color: #484848;
      font-weight: 400;
      border-left: none; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      .table:not(.totals):not(.table-totals) tbody td.actions a + a:before {
        margin: 0 0.7rem 0 0.5rem;
        content: '';
        display: inline-block;
        width: 1px;
        height: 1.4rem;
        border-right: 2px solid #dcdcdc;
        vertical-align: middle; }
      .table:not(.totals):not(.table-totals) tbody td:first-child {
        border-left: none; }
    @media (max-width: 63.99em) {
      .account .table:not(.totals):not(.table-totals) tbody tr:first-child td {
        padding-top: 0; } }
    .table:not(.totals):not(.table-totals) tbody tr:nth-child(even) {
      background: transparent; }
    .table:not(.totals):not(.table-totals) tfoot {
      font-size: 1.4rem; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot {
          background: #f0f0f0; } }
      .table:not(.totals):not(.table-totals) tfoot .mark {
        text-align: right; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot .amount {
          text-align: right; } }
  .table .price-excluding-tax,
  .table .price-including-tax,
  .table .items-qty,
  .table .product-item-name {
    font-size: 1.4rem;
    line-height: 155%; }

@media (max-width: 47.99em) {
  .table-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    position: relative; }
    .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) {
      border: none;
      font-size: 1.4rem;
      padding: 0; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals):last-child {
        padding-bottom: 1.2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) thead {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td {
        border: none;
        display: block;
        font-size: 1.4rem;
        padding: 0.2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:first-child {
          padding-top: 2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:last-child {
          padding-bottom: 1rem; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:before {
          padding-right: 10px;
          content: attr(data-th) ": ";
          display: inline-block;
          color: #484848;
          font-weight: 700;
          vertical-align: top; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions:before {
          border: 0;
          clip: rect(0 0 0 0);
          height: 1px;
          margin: -1px;
          overflow: hidden;
          padding: 0;
          position: absolute;
          width: 1px;
          white-space: nowrap;
          /* 1 */ } }

@media (max-width: 47.99em) {
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot {
        display: block; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot th {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: left;
          width: 70%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot td {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: right;
          width: 30%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr {
          display: block; }
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child th,
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child td {
            padding-top: 2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody th {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody td:last-child {
        border: none;
        padding: 0 0 0.5rem; }
  .data-table-definition-list thead {
    display: none; }
  .data-table-definition-list tbody th {
    padding-bottom: 0; }
  .data-table-definition-list tbody th,
  .data-table-definition-list tbody td {
    display: block;
    padding-left: 0;
    padding-right: 0; } }

.table-wrapper.cart,
.account .table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  position: relative; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table,
  .account .table-wrapper .table {
    border: none;
    font-size: 1.4rem;
    padding: 0; }
    .table-wrapper.cart .table:last-child,
    .account .table-wrapper .table:last-child {
      padding-bottom: 1.2rem; }
    .table-wrapper.cart .table thead,
    .account .table-wrapper .table thead {
      display: none; }
    .table-wrapper.cart .table tbody td,
    .account .table-wrapper .table tbody td {
      border: none;
      display: block;
      font-size: 1.4rem;
      padding: 0.2rem; }
      .table-wrapper.cart .table tbody td:first-child,
      .account .table-wrapper .table tbody td:first-child {
        padding-top: 2rem; }
      .table-wrapper.cart .table tbody td:last-child,
      .account .table-wrapper .table tbody td:last-child {
        padding-bottom: 1rem; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td:before,
      .account .table-wrapper .table tbody td:before {
        padding-right: 10px;
        content: attr(data-th) ": ";
        display: inline-block;
        color: #484848;
        font-weight: 700;
        vertical-align: top; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions,
      .account .table-wrapper .table tbody td.actions {
        border-bottom: 1px solid #dcdcdc; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions:before,
      .account .table-wrapper .table tbody td.actions:before {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .table-wrapper.cart .table tfoot,
    .account .table-wrapper .table tfoot {
      display: block; }
      .table-wrapper.cart .table tfoot th,
      .account .table-wrapper .table tfoot th {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: left;
        width: 70%; }
      .table-wrapper.cart .table tfoot td,
      .account .table-wrapper .table tfoot td {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: right;
        width: 30%; }
      .table-wrapper.cart .table tfoot tr,
      .account .table-wrapper .table tfoot tr {
        display: block; }
        .table-wrapper.cart .table tfoot tr:first-child th,
        .table-wrapper.cart .table tfoot tr:first-child td,
        .account .table-wrapper .table tfoot tr:first-child th,
        .account .table-wrapper .table tfoot tr:first-child td {
          padding-top: 2rem; } }

/* stylelint-enable */
.price-and-cart {
  display: flex; }
  .price-and-cart #validation-message-box {
    flex-grow: 2; }
  .price-and-cart .totality-price {
    flex-grow: 1; }
    .price-and-cart .totality-price p {
      text-align: center;
      font-size: 22px; }
      .price-and-cart .totality-price p span:nth-child(1) {
        font-weight: 300; }
      .price-and-cart .totality-price p span:nth-child(2) {
        font-weight: 600 !important; }
      .price-and-cart .totality-price p:nth-child(2) {
        font-size: 18px !important; }

.table.data.grouped {
  margin-top: 1rem;
  border-bottom: 1px solid #d1d1d1; }
  .table.data.grouped thead {
    display: table-header-group !important; }
  .table.data.grouped .tbody .promo {
    text-decoration: line-through; }
  .table.data.grouped .tbody .col.item {
    display: table-cell; }
    .table.data.grouped .tbody .col.item::before {
      display: none; }
  .table.data.grouped .col {
    min-width: 100px;
    text-align: center;
    vertical-align: middle;
    margin: 5px 0;
    padding: 15px 0; }
  .table.data.grouped .col-full-width:before {
    display: none !important; }
  .table.data.grouped tbody td {
    display: table-cell; }
    .table.data.grouped tbody td:before {
      display: none; }
    .table.data.grouped tbody td tr {
      display: flex; }
      @media (min-width: 48.01em) {
        .table.data.grouped tbody td tr {
          display: table-row; } }
    .table.data.grouped tbody td td {
      padding-top: 0 !important; }
      @media (min-width: 48.01em) {
        .table.data.grouped tbody td td {
          padding-top: 8px !important; } }
      .table.data.grouped tbody td td:first-letter {
        text-transform: uppercase; }
      .table.data.grouped tbody td td:before {
        display: none !important; }
  .table.data.grouped .col-full-width tr td {
    margin-left: 10px; }
  .table.data.grouped .col-full-width #customers div {
    padding: 5px 10px;
    font-size: 16px; }
    .table.data.grouped .col-full-width #customers div span:first-letter {
      text-transform: uppercase; }
  .table.data.grouped .col-full-width #customers div:nth-child(even) {
    background-color: #f0f0f0; }
  .table.data.grouped .col-full-width .town {
    width: 25%;
    display: inline-block; }
  .table.data.grouped .click-me .fa-chevron-down.active {
    transform: rotate(-180deg); }
  .table.data.grouped .stock.unavailable .out-of-stock {
    font-size: 20px; }
  .table.data.grouped .stock.unavailable a {
    font-size: 41px; }
  .table.data.grouped .fa-chevron-down {
    margin-left: 5px; }

.rows .col.item.sztuka.ecommerce-tuplex .brutto {
  font-size: 14px; }

.rows .col.item.cena {
  display: flex !important;
  flex-direction: column-reverse; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-toolbar {
  font-size: 1.2rem;
  font-weight: inherit;
  text-transform: uppercase; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; }
        .cs-toolbar__item:last-child {
          padding-right: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: auto; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: inherit;
    width: auto; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem; } }
  .cs-toolbar .cs-html-select__trigger {
    min-height: 3.5rem; }
  .cs-toolbar__filters-button {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-toolbar__filters-button::before, .cs-toolbar__filters-button::after {
      content: none; }
    .cs-toolbar__filters-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
      cursor: pointer;
      border-radius: 0px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #78b0e0;
      color: #78b0e0;
      background-color: #fff; }
      .cs-toolbar__filters-button *, .cs-toolbar__filters-button:visited * {
        color: #78b0e0;
        fill: #78b0e0; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #346097;
      color: #fff;
      background-color: #346097; }
      .cs-toolbar__filters-button:hover:not([disabled]) *, .cs-toolbar__filters-button:focus:not([disabled]) *, .cs-toolbar__filters-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-toolbar__filters-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-toolbar__filters-button svg {
      max-width: 1em;
      max-height: 1.4rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-left: 0;
      left: 1em;
      max-width: 2.3rem;
      max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-right: 0;
    padding-left: 4em; }

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

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

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

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

.cs-dashboard .limiter-text {
  white-space: nowrap; }

.cs-dashboard .limiter-options {
  margin-right: 0.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-pagination {
  /**
     * Input mode
     */
  /**
     * Bullet points mode
     */ }
  .cs-pagination__content {
    display: flex;
    align-items: center; }
  .cs-pagination__prefix-label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-pagination__page-provider {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    width: auto; }
  .cs-pagination__page-provider-input.input-text {
    margin: 0;
    max-height: 3.5rem;
    width: 4.5em;
    text-align: center;
    font-size: 0.85em; }
  .cs-pagination__page-provider-label {
    padding-left: 1rem;
    width: auto !important; }
  .cs-pagination__items {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-pagination__item {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-pagination__item:first-child {
      border-top-left-radius: 0px;
      border-bottom-left-radius: 0px; }
    .cs-pagination__item:last-child {
      border-top-right-radius: 0px;
      border-bottom-right-radius: 0px; }
  .cs-pagination__number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-pagination__number, .cs-pagination__number:visited {
      color: #696969;
      text-decoration: none; }
    .cs-pagination__number:hover, .cs-pagination__number:focus, .cs-pagination__number:active {
      border: 0;
      color: #484848;
      background: inherit;
      text-decoration: inherit; }
    .cs-pagination__item--current .cs-pagination__number, .cs-pagination__item--current .cs-pagination__number:hover, .cs-pagination__item--current .cs-pagination__number:focus, .cs-pagination__item--current .cs-pagination__number:active {
      color: #78b0e0;
      background: #f0f0f0;
      cursor: default; }
  .cs-pagination__prev {
    margin-right: 1.5rem; }
  .cs-pagination__next {
    margin-left: 1.5rem; }
  .cs-pagination__action {
    display: flex;
    min-width: 3.5rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center; }
  .cs-pagination__action-icon {
    width: 1.3rem;
    height: 2.4rem;
    fill: #78b0e0;
    transition: fill 0.15s linear; }
    .cs-pagination__action--disabled .cs-pagination__action-icon {
      fill: #dcdcdc; }
    .cs-pagination__action:not(.cs-pagination__action--disabled):hover .cs-pagination__action-icon,
    .cs-pagination__action:not(.cs-pagination__action--disabled):focus .cs-pagination__action-icon,
    .cs-pagination__action:not(.cs-pagination__action--disabled):active .cs-pagination__action-icon {
      fill: #346097; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
 * Default project breakpoints - [em]
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 0px;
      border-bottom-left-radius: 0px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 0px;
      border-bottom-right-radius: 0px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #696969;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #484848;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #78b0e0;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon {
    fill: currentColor; }
    .cs-viewmode-switcher__mode-icon--grid {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode-icon--list {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon {
      fill: #78b0e0; }
    .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
      padding-left: 0.7rem; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2N1c3RvbWVyLmNzcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy91dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy91dGlscy9mb250LWZhbWlseS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9fbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvTWFnZW50b19UaGVtZS93ZWIvY3NzL3NvdXJjZS9fbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZHVsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy91dGlscy92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9NYWdlbnRvX0N1c3RvbWVyL3dlYi9jc3Mvc291cmNlL21vZHVsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2FkZHRvY2FydC9hZGR0b2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vYW5pbWF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2F1dGhvcml6YXRpb24tbGluay9hdXRob3JpemF0aW9uLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dG9jb21wbGV0ZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JhZGdlL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JhZGdlL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9icmVhZGNydW1icy9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jb29raWUtbWVzc2FnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Nvb2tpZS1tZXNzYWdlL2Nvb2tpZS1tZXNzYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2RhaWx5ZGVhbC9kYWlseWRlYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZGlzcGxheS1jb250cm9sbGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZGlzcGxheS1jb250cm9sbGVyL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duLXN3aXRjaGVyL2Ryb3Bkb3duLXN3aXRjaGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9maWVsZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZm9vdGVyLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9nb29nbGUtcmVjYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZ29vZ2xlLXJlY2FwdGNoYS9nb29nbGUtcmVjYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZ3JpZC1sYXlvdXQvZ3JpZC1sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZ3JpZC1sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvdXRpbHMvYXNwZWN0LXJhdGlvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL2NsZWFyZml4LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL3BvbHktZmx1aWQtc2l6aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2VhcmNoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL3NlYXJjaC9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdXNlci1uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9xdHktY291bnRlci9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGxpbmUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGxpbmUvaGVhZGxpbmUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2xhenlsb2FkL2xhenlsb2FkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2xpbmtzLWJsb2NrLWFkZHRvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2xvZ28vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS9tZXNzYWdlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL21lc3NhZ2VzL21lc3NhZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21pbmljYXJ0LXByb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9taW5pY2FydC1wcm9kdWN0L21pbmljYXJ0LXByb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9oaWRlLXNjcm9sbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbmF2aWdhdGlvbi90ZWFzZXIvdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtbmF2aWdhdGlvbi9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvb2ZmY2FudmFzLXRvZ2dsZS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL29mZmNhbnZhcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL29mZmNhbnZhcy9vZmZjYW52YXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnZS1ib3R0b20uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcGFnZS10aXRsZS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3ByaWNlLWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC9wcmljZS1ib3guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcmljZS1ib3gvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0cy1saXN0L3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcXR5LWluY3JlbWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3F0eS1pbmNyZW1lbnQvcXR5LWluY3JlbWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWxlY3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3NsaWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc29jaWFsLW1lZGlhLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9zb2NpYWwtbWVkaWEtbGlzdC9zb2NpYWwtbWVkaWEtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGFyLXJhdGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3N3YXRjaGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc3dhdGNoZXMvc3dhdGNoZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3ZpZGVvLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdmlkZW8tdGVhc2VyL3ZpZGVvLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Jhbm5lci1tb2Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYmFubmVyLW1vZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGF0aWMtYmxvY2stbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3N0YXRpYy1ibG9jay1tb2Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZ2xvYmFsX21vZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9nbG9iYWxfbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3R1cGxleC10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi90dXBsZXgtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGVyX3N3aXRjaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9oZWFkZXJfc3dpdGNoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Byb2R1Y3QtbGlzdC10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hY2NvcmRlb25zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2FjY29yZGVvbnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY21zLWthcmllcmEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vY21zLWthcmllcmEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3RyZmEtd2llZHp5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3N0cmZhLXdpZWR6eS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYXRhbG9nLXByb2R1Y3Qtdmlldy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9jYXRhbG9nLXByb2R1Y3Qtdmlldy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9ha3R1YWxub3NjaS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9ha3R1YWxub3NjaS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9ob21lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2hvbWUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4va2ltLWplc3Rlc215LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2tvc3p5a19wbHVzX2ZpbmFsaXphY2phLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2N1c3RvbWVyX2xvZ2luX3JlZ2lzdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3N6YWNob3duaWNhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb21vYmFubmVyX2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wcm9tb2Jhbm5lcl9oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYW1hc3lfZm9ybS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9lY28uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vZWNvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2NvdW50ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vcG9wdXAuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWVzaHFhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL21lc2hxYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9sYXlvdXQtYWt0dWFsbm9zY2kuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vbGF5b3V0LWFrdHVhbG5vc2NpLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2ZpbHRlcnMta29sb3Iuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vZmlsdGVycy1rb2xvci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kaXNjb3VudC1jb2RlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Rpc2NvdW50LWNvZGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY291bnRkb3duLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2NvdW50ZG93bi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9pbWFnZS10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vaW1hZ2UtdGVhc2VyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL2ltYWdlLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ltYWdlLXRlYXNlci9taXhpbnMvY29udHJhc3Qtb3B0aW1pemVycy9ncmFkaWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ltYWdlLXRlYXNlci9taXhpbnMvY29udHJhc3Qtb3B0aW1pemVycy90ZXh0LXNoYWRvdy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wcm9kdWN0cy1jYXJvdXNlbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Byb2R1Y3RzLWNhcm91c2VsL3Byb2R1Y3RzLWNhcm91c2VsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhcmFncmFwaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3BhcmFncmFwaC9wYXJhZ3JhcGguc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2VwYXJhdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc2VwYXJhdG9yL3NlcGFyYXRvci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYWxlbmRhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9jYXB0Y2hhL2NhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZGFzaGJvYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9wYWdlcy9sYXlvdXQvMmNvbHVtbnMtbGVmdC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9ybS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIvcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcmV2aWV3LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcmV2aWV3L3Jldmlldy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9yZXZpZXdzLXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9yZXZpZXdzLXN1bW1hcnkvcmV2aWV3cy1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Jldmlld3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9yZXZpZXdzL3Jldmlld3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3RhY2stbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc3RhY2stbmF2L3N0YWNrLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGlja3ktYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9zdGlja3ktYmxvY2svc3RpY2t5LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc3RpY2t5LWJsb2NrL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90YWJsZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdGFibGUvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdG9vbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9zb3J0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL2hvb2tzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9saW1pdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbiBAaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbiBAaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbiBcbiAvLyBCcmVha3BvaW50cyBpbXBvcnQgZnJvbSB2aWV3LnhtbCBbcHhdXG4gJGJyZWFrcG9pbnRzX3B4OiBkZWVwLWdldCgkdmlldy14bWwsIHZhcnMsIE1hZ2VudG9fVGhlbWUsIGJyZWFrcG9pbnRzKTtcbiAkYnJlYWtwb2ludHNfZW06ICgpO1xuIFxuIEB1c2UgXCJzYXNzOm1hcFwiO1xuIFxuIEBmdW5jdGlvbiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpIHtcbiAgICAgJHJlc3VsdDogJGJyZWFrcG9pbnRzX2VtO1xuICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzX3B4IHtcbiAgICAgICAgICRyZXN1bHQ6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICAkcmVzdWx0LFxuICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgdW5xdW90ZSgka2V5KTogJHZhbHVlIC8gMTYgKiAxZW0sXG4gICAgICAgICAgICAgKVxuICAgICAgICAgKTtcbiAgICAgfVxuIFxuICAgICBAcmV0dXJuICRyZXN1bHQ7XG4gfVxuIFxuIC8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4gXG4gJGJyZWFrcG9pbnRzOiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpICFkZWZhdWx0O1xuIFxuIC8vIHBob25lOiAyMy4xMjVlbSAtIDM3MHB4XG4gLy8gcGhvbmVMZzogMzBlbSAtIDQ4MHB4LFxuIC8vIHRhYmxldDogNDhlbSAtIDc2OHB4LFxuIC8vIGxhcHRvcDogNjRlbSAtIDEwMjRweCxcbiAvLyBsYXB0b3BMZzogODBlbSAtIDEyODBweCxcbiAvLyBkZXNrdG9wOiA5MGVtIC0gMTQ0MHB4LFxuIC8vIHR2OiAxMjBlbSAtIDE5MjBweCxcbiAiLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDYyLjUlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LWRpc3BsYXk6IHN3YXA7IH1cblxuYnV0dG9uLFxuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi8qIEhpZGUgSFRNTDUgVXAgYW5kIERvd24gYXJyb3dzLiAqL1xuaW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IH1cbiAgaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIGlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwOyB9XG4iLCIvKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AZnVuY3Rpb24gZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9mb250LWZhbWlseSc7XG5cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiA2Mi41JTtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZV9iYWNrZ3JvdW5kO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAvLyBoaWRlcyBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBFZGdlIGFuZCBJRVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYW1pbHkoJGZvbnRfZmFtaWx5LXByaW1hcnkpIDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbkBpZiAkaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlIHtcbiAgICAvKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbiAgICBpbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG5AbWl4aW4gZm9udC1mYW1pbHkoJGZvbnRzLi4uKSB7XG4gICAgQGlmICRmb250cyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udHMsICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1mYWxsYmFjaztcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4uY3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY3JTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuYm9keSxcbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwdnc7IH1cblxuLm5vLXNjcm9sbCB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuI21haW5jb250ZW50IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLnBhZ2Utd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfSB9XG5cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gIHBhZGRpbmc6IDRyZW0gMCAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtOyB9XG5cbi5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAzMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1tYWluLFxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICB3aWR0aDogMjIuNSU7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjBmMGYwOyB9IH1cblxuLmllMTEgLnBhZ2Utd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuYSB7XG4gIGNvbG9yOiAjNzhiMGUwOyB9XG4gIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICM3OGIwZTA7IH1cbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICMzNDYwOTc7IH1cblxuLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXlwYWwtZXhwcmVzcy1yZXZpZXcgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAucGF5cGFsLXJldmlldy52aWV3IC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGF5cGFsLXJldmlldy52aWV3IHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG5cbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uYW1hem9uLWJ1dHRvbi1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDMwMzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBtYXgtd2lkdGg6IDMycmVtOyB9IH1cbiAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyIGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbDpudGgtY2hpbGQoMikge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgbGVmdDogY2FsYygxMDAlICsgMC42cmVtKTtcbiAgICB0b3A6IDEuOXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgICAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTAwJSArIDAuOHJlbSk7IH0gfVxuICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgd2lkdGg6IDI1cmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAycHggcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgcGFkZGluZzogMC44cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDI4cmVtOyB9IH1cbiAgICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjODg4OyB9XG4gICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQsXG4gICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICBib3R0b206IDQycHg7XG4gICAgICBsZWZ0OiAtMjEwcHg7XG4gICAgICByaWdodDogYXV0bzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQsXG4gICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgIGxlZnQ6IC0yNTBweDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCxcbiAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgbGVmdDogLTIzMnB4OyB9IH1cbiAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSwgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXG4gICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICBsZWZ0OiAyMTBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDI1MHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLCAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlcixcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDIzMnB4OyB9IH1cbiAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogMjEwcHg7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDI1MXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDIzM3B4OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxuICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG5AbWl4aW4gY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci1uZWdhdGVkKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGhvcml6b250YWwtcGFkZGluZztcbiAgICBtYXJnaW4tcmlnaHQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG5AbWl4aW4gY29udGFpbmVyLXdyYXBwZXIoJG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoKSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvbWl4aW4nO1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci13cmFwcGVyKCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NyU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nJyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ub3Njcm9sbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJi0tb250b3Age1xuICAgICAgICB6LWluZGV4OiAzMDE7XG4gICAgfVxuXG4gICAgJi0tdmlld3BvcnQtd2lkdGgge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXInO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG4kbnM6ICdjcy0nO1xuJGxheW91dF9wYWRkaW5nOiAkbWFpbi1jb2x1bW5fcGFkZGluZztcblxuYm9keSxcbmh0bWwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuXG4ubm8tc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4jbWFpbmNvbnRlbnQge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIC8vIG1hcmdpbi10b3A6IDRyZW07XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogNHJlbTtcbn1cblxuLnBhZ2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgLy8gd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogJGxheW91dF9wYWRkaW5nO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMHJlbTtcbn1cblxuLnBhZ2UtbGF5b3V0LTFjb2x1bW4ge1xuICAgIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCB7XG5cbiAgICAgICAgLnNpZGViYXItbWFpbixcbiAgICAgICAgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgICAgICAgICB3aWR0aDogMjIuNSU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX2dhbGxlcnk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5pZTExIC5wYWdlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbmEge1xuICAgIGNvbG9yOiAkbGluay1jb2xvcl9iYXNlO1xuXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2U7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyO1xuICAgIH1cbn1cblxuLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vUGF5cGFsIG1vZHVsZVxuLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIH1cbn1cblxuLnBheXBhbC1yZXZpZXcudmlldyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICB9XG59XG5cbi5wYXlwYWwtZXhwcmVzcy1pbi1jb250ZXh0LW1pbmktY2FydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4vL0FtYXpvbiBQYXkgbG9naW4gYnV0dG9uXG5cbi8vVGhlIGhpZ2hlc3Qgb2YgYWxsIGFtYXpvbiBwYXkgY29udGFpbmVyc1xuLy9TaG91bGQgbm90IGJlIHRvbyBsb25nXG4vL2luIG1pbmljYXJ0LCBzYWxlIGJsb2NrLCBjaGVja291dCBzdW1tYXJ5IGl0IHNob3VsZCBiZSBjZW50ZXJcbi5hbWF6b24tYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDMwMztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMnJlbTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2NlbGwge1xuXG4gICAgICAgIC8vSW5mbyBzaWduIGVsZW1lbnQgLSBpcyBwbGFjZWQgYWJzb2x1dGVseSB0byBub3QgdGFrZSBwbGFjZSB3aGVuIGJ1dHRvbiBpcyBjZW50ZXJlZFxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAwLjZyZW0pO1xuICAgICAgICAgICAgdG9wOiAxLjlyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC44cmVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vVG9vbHRpcCBzdHlsZSBhbmQgcG9zaXRpb25cbiAgICAgICAgLy9BcnJvdyBwb3NpdGlvblxuICAgICAgICAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAyNXJlbTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3JfZ3JheTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9Nb3ZlIHRvb2x0aXAgZnJvbSByaWdodCB0byB0b3AgYmVjYXVzZSB0aGVyZSBpcyBubyBzcGFjZSBpbiBvdXIgc2hvcHMgb24gdGhlIHJpZ2h0XG4gICAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAmLFxuICAgICAgICAgICAgLiN7JG5zfWNhcnQtc3VtbWFyeSAmIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiA0MnB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0yMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTI1MHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTIzMnB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDI1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIzMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMTBweDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyNTFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMzNweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDYXJ0IHN1bW1hcnkgdG9vbHRpcCBuZWVkcyBzbWFsbCBhZGp1c3RtZW50c1xuICAgICAgICAgICAgLiN7JG5zfWNhcnQtc3VtbWFyeSAmIHtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrLW5ldy1jdXN0b21lciAuYWN0aW9ucy10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogMi41cmVtOyB9XG5cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U4ZThlODtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG5cbi5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcbiAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgY29udGVudDogYXR0cihkYXRhLWhhc3JlcXVpcmVkKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICBjb2xvcjogI2UwMmIyNztcbiAgZm9udC1zaXplOiAxLjJyZW07IH1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1hZGRyZXNzLWVkaXQgLnJlZ2lvbl9pZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvcm0tYWRkcmVzcy1lZGl0IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5IHtcbiAgZm9udC1zaXplOiAxLjhyZW07IH1cblxuLmZvcm0tZWRpdC1hY2NvdW50IC5maWVsZHNldC5wYXNzd29yZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmJveC1iaWxsaW5nLWFkZHJlc3MgLmJveC1jb250ZW50LFxuLmJveC1zaGlwcGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcbi5ib3gtaW5mb3JtYXRpb24gLmJveC1jb250ZW50LFxuLmJveC1uZXdzbGV0dGVyIC5ib3gtY29udGVudCB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgaHlwaGVuczogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTsgfVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG5cbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCAubWFnZS1lcnJvciB7XG4gIG9yZGVyOiAyOyB9XG5cbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCAuaW5wdXQtdGV4dCB7XG4gIG9yZGVyOiAwO1xuICB6LWluZGV4OiAyOyB9XG5cbi5maWVsZHNldCAuZnVsbG5hbWUuZmllbGQgPiAubGFiZWwge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqLyB9XG4gIC5maWVsZHNldCAuZnVsbG5hbWUuZmllbGQgPiAubGFiZWwgKyAuY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLmZpZWxkLnN0cmVldCAuZmllbGQgLmxhYmVsIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuXG4uY29udHJvbC5jYXB0Y2hhLWltYWdlIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4uY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MzlweCkge1xuICAuYWNjb3VudCAuY29sdW1uLm1haW4sXG4gIC5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xuICAgIG1hcmdpbjogMDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNvbnRyb2wuY2FwdGNoYS1pbWFnZSAuY2FwdGNoYS1pbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZC5wcmljZSAud2l0aC1hZGRvbiAuaW5wdXQtdGV4dCB7XG4gICAgZmxleC1iYXNpczogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5sb2dpbiAuYWN0aW9ucy10b29sYmFyID4gLnByaW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtOyB9XG4gIC5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5sb2dpbiAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmZpZWxkc2V0IC5mdWxsbmFtZSAuZmllbGQgLmxhYmVsIHtcbiAgICBwYWRkaW5nOiA2cHggMTVweCAwIDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2lkdGg6IDI1LjglO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmZpZWxkc2V0IC5mdWxsbmFtZSAuZmllbGQgLmNvbnRyb2wge1xuICAgIHdpZHRoOiA3NC4yJTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyB7XG4gICAgZm9udC1zaXplOiAwOyB9XG4gIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgd2lkdGg6IDQ4LjglOyB9XG4gIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW06bnRoLWxhc3QtY2hpbGQoMSksXG4gIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW06bnRoLWxhc3QtY2hpbGQoMikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtY2hpbGQoZXZlbikge1xuICAgIG1hcmdpbi1sZWZ0OiAyLjQlOyB9XG4gIC5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgICBtYXJnaW46IDAgMXJlbSAxcmVtIDA7IH1cbiAgLmRhc2hib2FyZC13ZWxjb21lLXRvZ2dsZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH0gfVxuIiwiLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIDEgKi9cbn1cblxuQG1peGluIHZpc3VhbGx5LXZpc2libGUge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbiIsIi8vIFN0eWxlcyBtb3ZlZCBmcm9uIG1hZ2VudG8gYmxzbmsgdGhlbWU6IE1hZ2VudG9fQ3VzdG9tZXIvd2ViL2Nzcy9zb3VyY2UvX21vZHVsZS5sZXNzXG4vLyBpbiBvcmRlciB0byBoYXZlIGJldHRlciBjb250cm9sIG92ZXIgdGhlbSBhbmQgYmUgYWJsZSB0byBpbXBvcnQgdGhlbSBvbmx5IGluc2lkZSBjdXN0b21lci50cyBlbnRyeVxuXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4ubG9naW4tY29udGFpbmVyIC5ibG9jay1uZXctY3VzdG9tZXIgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xufVxuXG4ubG9naW4tY29udGFpbmVyIC5ibG9jayAuYmxvY2stdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xufVxuXG4ubG9naW4tY29udGFpbmVyIC5maWVsZHNldDphZnRlciB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtaGFzcmVxdWlyZWQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gICAgY29sb3I6ICNlMDJiMjc7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG59XG5cbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmZvcm0tYWRkcmVzcy1lZGl0IC5yZWdpb25faWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mb3JtLWFkZHJlc3MtZWRpdCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG59XG5cbi5mb3JtLWVkaXQtYWNjb3VudCAuZmllbGRzZXQucGFzc3dvcmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5ib3gtYmlsbGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcbi5ib3gtc2hpcHBpbmctYWRkcmVzcyAuYm94LWNvbnRlbnQsXG4uYm94LWluZm9ybWF0aW9uIC5ib3gtY29udGVudCxcbi5ib3gtbmV3c2xldHRlciAuYm94LWNvbnRlbnQge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgaHlwaGVuczogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xufVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5tYWdlLWVycm9yIHtcbiAgICBvcmRlcjogMjtcbn1cblxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5pbnB1dC10ZXh0IHtcbiAgICBvcmRlcjogMDtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4uZmllbGRzZXQgLmZ1bGxuYW1lLmZpZWxkIHtcbiAgICA+IC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcblxuICAgICAgICArIC5jb250cm9sIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmllbGQuc3RyZWV0IHtcbiAgICAuZmllbGQge1xuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29udHJvbC5jYXB0Y2hhLWltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4uY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MzlweCkge1xuICAgIC5hY2NvdW50IC5jb2x1bW4ubWFpbixcbiAgICAuYWNjb3VudCAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQ6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wuY2FwdGNoYS1pbWFnZSAuY2FwdGNoYS1pbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkLnByaWNlIC53aXRoLWFkZG9uIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmxvZ2luIC5hY3Rpb25zLXRvb2xiYXIgPiAucHJpbWFyeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICB9XG5cbiAgICAubG9naW4tY29udGFpbmVyIC5ibG9jayAubG9naW4gLmFjdGlvbnMtdG9vbGJhciA+IC5zZWNvbmRhcnkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWwge1xuICAgICAgICBwYWRkaW5nOiA2cHggMTVweCAwIDA7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMjUuOCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IDc0LjIlO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgd2lkdGg6IDQ4LjglO1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW06bnRoLWxhc3QtY2hpbGQoMSksXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBtYXJnaW4tbGVmdDogMi40JTtcbiAgICB9XG5cbiAgICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgICAgIG1hcmdpbjogMCAxcmVtIDFyZW0gMDtcbiAgICB9XG5cbiAgICAuZGFzaGJvYXJkLXdlbGNvbWUtdG9nZ2xlciB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogNC40cmVtO1xuICAgICAgaGVpZ2h0OiA1LjJyZW07XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbi0tcHJldiB7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSBzdmcge1xuICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpOyB9XG4gICAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb246bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNHJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluJztcblxuLiN7JG5zfXNsaWRlci1uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuJHRyaWdnZXJfd2lkdGg6IDQuNHJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2hlaWdodDogNS4ycmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfZWRnZS1vZmZzZXQ6IDEuNXJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JvcmRlcjogMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3JhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3NoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9zaGFkb3ctLWhvdmVyOiAxcHggMXB4IDEwcHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0OyAvLyBpY29uIGNvbG9yIGluaGVyaXRzXG4kdHJpZ2dlci0tZGlzYWJsZWQtb3BhY2l0eTogMC4yNSAhZGVmYXVsdDtcbiR0cmlnZ2VyLS1kaXNhYmxlZC1ncmF5b3V0OiB0cnVlICFkZWZhdWx0O1xuXG4kdHJpZ2dlci1pY29uX3dpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlci1pY29uX2hlaWdodDogMi43cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLW5hdmlnYXRpb24oKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkdHJpZ2dlcl93aWR0aDtcbiAgICBoZWlnaHQ6ICR0cmlnZ2VyX2hlaWdodDtcbiAgICBib3JkZXI6ICR0cmlnZ2VyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkdHJpZ2dlcl9yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHRyaWdnZXJfYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAkdHJpZ2dlcl9zaGFkb3c7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHRyaWdnZXJfY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgICAgbGVmdDogJHRyaWdnZXJfZWRnZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAkdHJpZ2dlcl9lZGdlLW9mZnNldDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICR0cmlnZ2VyLS1kaXNhYmxlZC1vcGFjaXR5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgIEBpZiAoJHRyaWdnZXItLWRpc2FibGVkLWdyYXlvdXQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJHRyaWdnZXJfc2hhZG93LS1ob3ZlcjtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICR0cmlnZ2VyLWljb25fd2lkdGg7XG4gICAgICAgIGhlaWdodDogJHRyaWdnZXItaWNvbl9oZWlnaHQ7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbi1ob29rKCk7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1zbGlkZXItcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC44cmVtO1xuICBtaW4taGVpZ2h0OiAzcmVtOyB9XG4gIC5jcy1zbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb24ge1xuICAgIGdhcDogMDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb24gc3BhbiB7XG4gICAgICBjb2xvcjogI0ZGRUY0NTsgfVxuICAuY3Mtc2xpZGVyLXBhZ2luYXRpb25fX2J1bGxldCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlcjogMDtcbiAgICBpbmxpbmUtc2l6ZTogMi4ycmVtO1xuICAgIGJsb2NrLXNpemU6IDAuOXJlbTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWluZGVudDogLTk5cmVtOyB9XG4gICAgLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQuY3VycmVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFRjQ1OyB9XG4gICAgLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQ6b25seS1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9wYWdpbmF0aW9uL21peGluJztcblxuLiN7JG5zfXNsaWRlci1wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItcGFnaW5hdGlvbigpO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvaG9va3MnO1xuXG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0cy1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYm9yZGVyOiAwICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1yYWRpdXM6IDJweCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmc6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmctLWN1cnJlbnQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXdpZHRoOiAyLjJyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWhlaWdodDogMC45cmVtICFkZWZhdWx0O1xuXG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2NvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jdXJyZW50LWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcblxuQG1peGluIHNsaWRlci1wYWdpbmF0aW9uKCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0cy1nYXA7XG4gICAgbWluLWhlaWdodDogM3JlbTtcblxuICAgICYtLWZyYWN0aW9uIHtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIGNvbG9yOiAkc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2NvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9mb250LXdlaWdodDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2N1cnJlbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idWxsZXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtcmFkaXVzO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnO1xuICAgICAgICBib3JkZXI6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYm9yZGVyO1xuICAgICAgICBpbmxpbmUtc2l6ZTogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC13aWR0aDtcbiAgICAgICAgYmxvY2stc2l6ZTogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1oZWlnaHQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05OXJlbTtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZy0tY3VycmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLXBhZ2luYXRpb24taG9vaygpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1hZGR0b2NhcnQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cbiAgLmNzLWFkZHRvY2FydF9fd3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICAgIHBhZGRpbmc6IDE3cHggMTBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNDFmMTI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gc3BhbiB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmJlZm9yZSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiA1LjVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDBweCAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgIzM0NjA5NyAxNSUsICMzNDYwOTcgMTAwJSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDRyZW07XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3O1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgICAgei1pbmRleDogLTI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uLCAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB3aWR0aDogMi4ycmVtO1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIHJpZ2h0OiAwLjhlbTsgfVxuICAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTEge1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTIge1xuICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMyB7XG4gICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnLCAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xZW07XG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMi41ZW0pO1xuICAgIHRyYW5zZm9ybTogc2tldygtMThkZWcpIHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjAxLCAwLjY1LCAwLjM4LCAxKTtcbiAgICBiYWNrZ3JvdW5kOiAjODJjYWQ0OyB9XG4gICAgLmNzLWFkZHRvY2FydC0tbm8tdHJhbnNpdGlvbnMgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcsIC5jcy1hZGR0b2NhcnQtLW5vLXRyYW5zaXRpb25zIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnLCAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjYzFjMTA7IH1cbiAgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4MmNhZDQ7XG4gICAgei1pbmRleDogMjtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNDFmMTI7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIGhlaWdodDogMS43MjVlbTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzLjVyZW07IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3ksIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIHtcbiAgICAgIG1heC13aWR0aDogMTMwcmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC51aS1kaWFsb2csIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC51aS1kaWFsb2cge1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC5ibG9jay1taW5pY2FydDphZnRlciwgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDMuMnJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayxcbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rIHtcbiAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNS4zcmVtOyB9IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDEuOHJlbTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTEuMjVlbSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbCB7XG4gICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7IH1cbiAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2Zvcm06IHNrZXcoLTE4ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNS4zcmVtLCAwLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1zdWNjZXNzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1zdWNjZXNzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwsXG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcsIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCxcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgbGluZWFyLCB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24sXG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuXG5Aa2V5ZnJhbWVzIGJhbGwtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWluaWNhcnQtaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWluaWNhcnQtb3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbiAgLmNzLWFkZHRvY2FydCAuYmxvY2stbWluaWNhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNzLWFkZHRvY2FydF9fYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2MxYzEwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2U0MWYxMiAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxNSUsICNjYzFjMTAgMTUlLCAjY2MxYzEwIDEwMCUpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjMWMxMDsgfVxuIiwiLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGUsICRzaWRlKSB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2YXJpYWJsZSk7XG5cbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIE9SICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAnbGVmdCcpIE9SICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDQpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCA0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gYnV0dG9uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2NvbG9ycyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb246ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGggIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyOiAwLjhlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGg6IDUuMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdDogMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTogMTBweCAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9mZWVkYmFjay1iZy1za2V3OiAkdHJhbnNmb3JtX3NrZXctNDAwICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1wcmltYXJ5OiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1zZWNvbmRhcnk6ICRjb2xvcl9zdWNjZXNzLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LWZhaWwtYmctcHJpbWFyeTogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXNlY29uZGFyeTogJGNvbG9yX2Vycm9yLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvciAhZGVmYXVsdDtcblxuLiN7JG5zfWFkZHRvY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgLy8gYmVjYXVzZSBidXR0b24gY2FuJ3QgaGF2ZSBvdmVyZmxvdywgd2UgbmVlZCB0byBhZGQgaXQgb24gYnV0dG9uIHdyYXBwZXJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXJhZGl1cyA+IDApIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cykpIHtcbiAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgJGJ1dHRvbl9ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICBwYWRkaW5nOiAxN3B4IDEwcHggIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9jcmltc29uO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICBjb2xvcjogJGNvbG9yX2NyaW1zb247XG5cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvblxuXG4gICAgICAgICk7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRhZGR0b2NhcnRfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19jb25maWd1cmUtaWNvbixcbiAgICAmX19idXR0b24taWNvbixcbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvblxuICAgICAgICApO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24taGVpZ2h0O1xuICAgICAgICAjeyRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb259OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyO1xuICAgIH1cblxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cblxuICAgICZfX2xvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZSAqIDQ7XG4gICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcblxuICAgICAgICAmLWJhbGwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICAgICAmLS0xIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS0yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4xNXMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tMyB7XG4gICAgICAgICAgICAgICAgbGVmdDogMzBweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3MgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgJixcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IC0xZW07XG4gICAgICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06ICRhZGR0b2NhcnRfZmVlZGJhY2stYmctc2tldyB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMDEsIDAuNjUsIDAuMzgsIDEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5O1xuXG4gICAgICAgICAgICAjeyRyb290fS0tbm8tdHJhbnNpdGlvbnMgJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWZhaWwgJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LWZhaWwtYmctc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1wcmltYXJ5O1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcblxuICAgICAgICAgICAgI3skcm9vdH0tLWZhaWwgJiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LWZhaWwtYmctcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtbGFiZWwsXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAxLjcyNWVtO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICN7JGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1yaWdodCAtXG4gICAgICAgICAgICAkYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLWxlZnR9O1xuICAgIH1cblxuICAgICZfX21pbmljYXJ0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLS1zdGlja3ksXG4gICAgICAgICYtLXVuc3RpY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMy4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtbGluayB7XG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tc3RpY2t5ICYsXG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtaW5pY2FydC1pbiAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbWluaWNhcnQtLXVuc3RpY2sgJiB7XG4gICAgICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAkYmFkZ2Utd3JhcHBlcjogJjtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHotaW5kZXg6IDYwMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgJi0tYW5pbWF0aW5nIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogMS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogNS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skYmFkZ2Utd3JhcHBlcn0tLW1pbmljYXJ0LXN0aWNreSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIHRvcDogMS44cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcsXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWxvYWRpbmcge1xuICAgICAgICAjeyRyb290fV9fbG9hZGluZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG5cbiAgICAgICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBiYWxsLWluIDFzIGluZmluaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJGFkZHRvY2FydF9mZWVkYmFjay1iZy1za2V3IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKFxuICAgICAgICAgICAgICAgICAgICAtI3skYWRkdG9jYXJ0X2J1dHRvbi1za2V3ZWQtYmFja2dyb3VuZC13aWR0aCArIDAuMn0sXG4gICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3VjY2VzcyB7XG4gICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZmFpbCB7XG4gICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mYWlsLWxhYmVsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYW5pbWF0aW9uLWRvbmUge1xuICAgICAgICAjeyRyb290fV9fYnV0dG9uLWxhYmVsLFxuICAgICAgICAjeyRyb290fV9fYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mZWVkYmFjay1iZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwsXG4gICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGxpbmVhcixcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbixcbiAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICBAa2V5ZnJhbWVzIGJhbGwtaW4ge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbWluaWNhcnQtaW4ge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG1pbmljYXJ0LW91dCB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgIDE1JSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgICAgIDgwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4gICAgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5jcy1hZGR0b2NhcnRfX2J1dHRvbiB7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfY3JpbXNvbjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfY3JpbXNvbjtcblxuICAgICY6aG92ZXJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl90aHVuZGVyYmlyZCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfY3JpbXNvbiAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmJlZm9yZXtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgJGNvbG9yX3RodW5kZXJiaXJkIDE1JSwgJGNvbG9yX3RodW5kZXJiaXJkIDEwMCUpO1xuICAgIH1cbiAgICAmOmFmdGVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfdGh1bmRlcmJpcmQ7XG4gICAgfVxufVxuIiwiQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9hbmltYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vaG9vayc7XG5cbi8vIERlZmluZSBkZWZhdWx0IHR5cGUgZm9yIGJ1dHRvbnMuIFlvdSBjYW4gb3ZlcnJpZGUgaXQgaW5kaXZpZHVhbGx5IHBlciBidXR0b24gaW4gZWFjaCBjb21wb25lbnRcbi8vIFZhcmlhbnRzOiBwcmltYXJ5IHwgc2Vjb25kYXJ5IHwgbGluayB8IHN1Y2Nlc3MgfCBlcnJvclxuJGJ1dHRvbl9kZWZhdWx0LXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIGRlZmF1bHQgcG9zaXRpb24gZm9yIGljb25zIGluIGJ1dHRvbi4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IGxlZnQgfCByaWdodCB8IG5vLWljb24gfCBvbmx5LWljb25cbiRidXR0b25fZGVmYXVsdC1pY29uLXBvczogJ3JpZ2h0JyAhZGVmYXVsdDtcblxuLy8gR2VuZXJhbCBzdHlsZXMgZm9yIGJ1dHRvbnNcbiRidXR0b25fZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmc6IDAuNzVlbSAxZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uOiAzZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmUtaGVpZ2h0OiAxLjI3NWVtICFkZWZhdWx0O1xuJGJ1dHRvbl9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLWJlZm9yZS13aWR0aDogMy40ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1hZnRlci13aWR0aDogM2VtICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZzogbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHByaW1hcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3ByaW1hcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1lbmFibGUtYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzZWNvbmRhcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3NlY29uZGFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdHlsZSBmb3IgYGxpbmtgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay0taG92ZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay1pY29uLXBhZGRpbmc6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHN1Y2Nlc3NgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgZXJyb3JgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2Vycm9yLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEZWZpbmVzIGhvdyBtdWNoIGJ1dHRvbiBpY29uIHNob3VsZCBiZSBwdWxsZWQgdmVydGljYWxseSB0byBjZW50ZXIgaXQuXG4vLyBTaG91bGQgYmUgZGVmaW5lZCBpbiBlbSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIGJ1dHRvbidzIGZvbnQgc2l6ZS5cbiRidXR0b25fc3Bhbi1mb250LW9mZnNldDogMCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0IG9uIGljb24gYnV0dG9uLlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX2ljb24tb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY2FsYy1uby11bnNwYWNlZC1vcGVyYXRvclxuXG5AbWl4aW4gYnV0dG9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbl90ZXh0LWFsaWduO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRidXR0b25fdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICBwYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9wcmltYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICBAaWYgKCRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICBAaWYgKCRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fYW5pbWF0aW9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdlcnJvcicpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3ByaW1hcnktZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnZXJyb3InKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fZXJyb3ItYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fZXJyb3ItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgIT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9lcnJvci0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgbWFyZ2luLXRvcDogJGJ1dHRvbl9zcGFuLWZvbnQtb2Zmc2V0O1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBsZXR0ZXItc3BhY2luZzogJGJ1dHRvbl90ZXh0LWxldHRlci1zcGFjaW5nO1xuXG4gICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmc7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICB1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pID09XG4gICAgICAgICAgICAgICAgICAgIHVuaXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArXG4gICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICN7JGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbn0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgI3tnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgdW5pdCgkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uKSA9PVxuICAgICAgICAgICAgICAgICAgICB1bml0KFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArXG4gICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArXG4gICAgICAgICAgICAgICAgICAgICAgICAje2dldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdvbmx5LWljb24nKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cblxuICAgIEBpZiAoJGljb25fcG9zID09ICdvbmx5LWljb24nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAkYnV0dG9uX2ljb24tb2Zmc2V0O1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZyAvIDI7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX2ljb24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cbiIsIi8vIEluIHRoaXMgbWl4aW4geW91IGNhbiBkZWZpbmUgeW91ciBjdXN0b20gYW5pbWF0aW9uIGZvciBidXR0b25zXG4vLyBZb3UgY2FuIGNoZWNrIGV4YW1wbGVzIG9mIGFuaW1hdGlvbnMgaW4gaHR0cDovL2lhbmx1bm4uZ2l0aHViLmlvL0hvdmVyLyBsaWJyYXJ5XG5cbkBtaXhpbiBidXR0b25fYW5pbWF0aW9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIGFuZFxuICAgICAgICAoKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0JykpIFxuICAgIHtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3N0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgICAgIGJvdHRvbTogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICByaWdodDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGxlZnQ6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDUuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgJGJ1dHRvbl9ib3JkZXItcmFkaXVzICRidXR0b25fYm9yZGVyLXJhZGl1cyAwO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgMTAwZGVnLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDE1JSxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDE1JSxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICA4MGRlZyxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgODUlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDg1JSxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9lbmQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICAgICAgICB6LWluZGV4OiAtMjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGlmICgkYnV0dG9uX2JvcmRlci1zaXplID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgI3syICogJGJ1dHRvbl9ib3JkZXItc2l6ZX0pO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTsgfSB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbms6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmZvY3VzLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmFjdGl2ZSwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMzNDYwOTc7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24ge1xuICAgIHdpZHRoOiAxLjhyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lX2hvb2soJGxldmVsKSB7XG59XG5cbkBtaXhpbiBsaW5rX2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0X2hvb2soKSB7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW1faG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRhdXRob3JpemF0aW9uLWxpbmtfaXRlbS1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3JfYm9yZGVyLTEwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaG92ZXItZGVjb3JhdGlvbjogJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWF1dGhvcml6YXRpb24tbGluayB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gICAgcGFkZGluZzogMCAwIDAgMC4zcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjNyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjdyZW07XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRhdXRob3JpemF0aW9uLWxpbmtfaXRlbS1ib3JkZXI7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkY29sb3I6ICRhdXRob3JpemF0aW9uLWxpbmtfY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRhdXRob3JpemF0aW9uLWxpbmtfY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICRhdXRob3JpemF0aW9uLWxpbmtfaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9ob29rJztcbkBpbXBvcnQgJ3V0aWxzL2ZvbnQtZmFtaWx5JztcblxuJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC1mYW1pbHk6ICRmb250X2ZhbWlseS1wcmltYXJ5ICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtbWFyZ2luczogMXJlbSAwIDJyZW0gIWRlZmF1bHQ7XG5cbiR0eXBvZ3JhcGh5X2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGluay0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiAkdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGlzdC1tYXJnaW46IDAgMCAyLjVyZW0gIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saXN0LXBhZGRpbmc6IDAgMCAwIDRyZW0gIWRlZmF1bHQ7XG5cbiR0eXBvZ3JhcGh5X2xpc3QtaXRlbS1tYXJnaW46IDAgMCAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpIHtcbiAgICBAaW5jbHVkZSBmb250LWZhbWlseSgkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LWZhbWlseSk7XG5cbiAgICBmb250LXNpemU6ICRsZXZlbDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLXRleHQtdHJhbnNmb3JtO1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfaGVhZGxpbmUtbWFyZ2lucztcblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lX2hvb2soJGxldmVsKTtcbn1cblxuQG1peGluIGxpbmsoXG4gICAgJGNvbG9yOiAkdHlwb2dyYXBoeV9saW5rLWNvbG9yLFxuICAgICRjb2xvci1ob3ZlcjogJHR5cG9ncmFwaHlfbGluay0taG92ZXItY29sb3IsXG4gICAgJGRlY29yYXRpb246ICR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uLFxuICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkdHlwb2dyYXBoeV9saW5rLS1ob3Zlci10ZXh0LWRlY29yYXRpb25cbikge1xuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJjp2aXNpdGVkOmhvdmVyLFxuICAgICY6dmlzaXRlZDpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24taG92ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGlua19ob29rKCk7XG59XG5cbkBtaXhpbiBsaXN0KCkge1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfbGlzdC1tYXJnaW47XG4gICAgcGFkZGluZzogJHR5cG9ncmFwaHlfbGlzdC1wYWRkaW5nO1xuXG4gICAgQGluY2x1ZGUgbGlzdF9ob29rKCk7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW0oKSB7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9saXN0LWl0ZW0tbWFyZ2luO1xuXG4gICAgQGluY2x1ZGUgbGlzdC1pdGVtX2hvb2soKTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi5jcy1hdXRvY29tcGxldGUge1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgei1pbmRleDogMjAwO1xuICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgZm9udC1zaXplOiAxLjI5cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbSB7XG4gICAgcGFkZGluZzogMXJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQ6aG92ZXIsIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLnNlbGVjdGVkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmhvdmVyLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLnNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZDpsYXN0LWNoaWxkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLWNvbnRhaW5lciwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWltYWdlIHtcbiAgICAgIHdpZHRoOiA0LjVyZW07XG4gICAgICBoZWlnaHQ6IDQuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscyAuZi1maXgsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyAuZi1maXgge1xuICAgICAgICBoZWlnaHQ6IDUuOHJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMgaW1nLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1icmFuZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1icmFuZCB7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtbmFtZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLXByaWNlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLXByaWNlIHtcbiAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDsgfVxuICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggPiAucHJpY2Uge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSA+IC5wcmljZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlID4gLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODJjYWQ0O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgyY2FkNDtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3Qge1xuICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3Q6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gIHBhZGRpbmc6IDEuMnJlbSAzcmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZTpob3ZlciwgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGU6bm90KDplbXB0eSk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IHRyYW5zcGFyZW50OyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJhZGdlX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cblxuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9sYWJlbC1jb2xvcjogJHByaWNlX2NvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uOiB0cnVlICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1tYXJnaW46IDAuM3JlbSAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlczogMXJlbSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMnO1xuXG4kYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoJGNvbG9yX3RleHQtOTAwLCAwLjE3KSAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ6IDUuOHJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDogJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC13aWR0aDogNC41cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC1oZWlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1mb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRvY29tcGxldGUge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc8I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgbWFyZ2luOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgLmYtZml4IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1icmFuZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdmcmVlLXNoaXBwaW5nJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdmcmVlLXNoaXBwaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICAgIGJvcmRlci10b3A6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hbW91bnQge1xuICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nO1xuICAgIGJvcmRlci1ib3R0b206ICRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyO1xuICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtc2l6ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW47XG5cbiAgICAmOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9ob29rJztcblxuJGJhZGdlX2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJGJhZGdlX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYmFkZ2VfaGVpZ2h0OiAyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfcGFkZGluZzogMCAwLjdyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfYm9yZGVyOiAwICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kYmFkZ2VfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLW5ldy1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tbmV3LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGlzY291bnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXBvcHVsYXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tdG9wLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tdG9wLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBiYWRnZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS0tZGVmYXVsdC1jb2xvcjtcbiAgICBib3JkZXI6ICRiYWRnZV9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJhZGdlX2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJGJhZGdlX3BhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkYmFkZ2VfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYmFkZ2VfZm9udC13ZWlnaHQ7XG4gICAgbWluLWhlaWdodDogJGJhZGdlX2hlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJhZGdlX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgYmFkZ2VfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBiYWRnZV90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09ICduZXcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tbmV3LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLW5ldy1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdmcmVlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWZyZWUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZnJlZS1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdmcmVlLXNoaXBwaW5nJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZnJlZS1zaGlwcGluZy1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdwb3B1bGFyJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXBvcHVsYXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tcG9wdWxhci1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkaXNjb3VudCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kaXNjb3VudC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1kaXNjb3VudC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdyZWNlbnRseS1ib3VnaHQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkYWlseWRlYWwnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdkYWlseWRlYWwtcGRwJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAndG9wJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS10b3AtY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2VfdHlwZS1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4oJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmICsgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4uY3MtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLXRvcDogMS4zcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIGNvbnRlbnQ6IFwi4oGEXCI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4OyB9XG4gIC5jcy1icmVhZGNydW1ic19fc2VwYXJhdG9yLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMC41ZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDAuOGVtO1xuICAgIGZpbGw6ICM4ODg7IH1cblxuLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjAgdXJsKFwiLi4vaW1hZ2VzL2JyZWFkY3J1bWJzLnBuZ1wiKSBuby1yZXBlYXQgcmlnaHQvYXV0byA2LjhyZW07IH0gfVxuIiwiLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWN1c3RvbS1zaG93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGJyZWFkY3J1bWJzLFxuICAgIGN1c3RvbV9zZXBhcmF0b3IsXG4gICAgZGlzcGxheVxuKSAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9icmVhZGNydW1icy5wbmcnKSAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kOiAkYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvclxuICAgICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWltYWdlIG5vLXJlcGVhdCByaWdodCAvIGF1dG8gNi44cmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50OiAnXFwyMDQ0JyAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlOiAxLjNyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31icmVhZGNydW1icyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgcGFkZGluZy10b3A6ICRicmVhZGNydW1ic192ZXJ0aWNhbC1zcGFjZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDEuOTVlbSAwIDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2xhc3QtaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29udGVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvcjtcblxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLXZpc2l0ZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlcGFyYXRvci1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDAuNWVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAwLjhlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgICAgZmlsbDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICB9XG59XG5cbi5jcy1jb250YWluZXIge1xuICAgICYtLWJyZWFkY3J1bWJzIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLmNzLWJ1dHRvbjpob3ZlciwgLmNzLWJ1dHRvbjpmb2N1cywgLmNzLWJ1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDsgfVxuICAuY3MtYnV0dG9uOmJlZm9yZSwgLmNzLWJ1dHRvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWJ1dHRvbjpiZWZvcmUge1xuICAgIHdpZHRoOiA1LjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAwcHggMHB4IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgIzM0NjA5NyAxNSUsICMzNDYwOTcgMTAwJSk7IH1cbiAgLmNzLWJ1dHRvbjphZnRlciB7XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuICAuY3MtYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWJ1dHRvbiwgLmNzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgIC5jcy1idXR0b24gKiwgLmNzLWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAuY3MtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1idXR0b25fX3NwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogNGVtOyB9XG4gIC5jcy1idXR0b25fX2ljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTsgfVxuXG4uY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBtYXJnaW46IDAgMCAzcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1cywgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlIHtcbiAgICB3aWR0aDogNS41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMHB4IDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxNSUsICMzNDYwOTcgMTUlLCAjMzQ2MDk3IDEwMCUpOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmFmdGVyIHtcbiAgICB3aWR0aDogNHJlbTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NztcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgei1pbmRleDogLTI7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4OyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50ICosIC5jcy1idXR0b24tY29tcG9uZW50OnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQge1xuICAgICAgbWFyZ2luOiAwIDAgNHJlbTsgfSB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2ljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fYW1vdW50OmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19hbW91bnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRidXR0b24tZmFsbGJhY2tfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRidXR0b24tY29tcG9uZW50X3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb246IDUwJSAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtdHJhbnNsYXRpb246IHRyYW5zbGF0ZVgoLTUwJSkgIWRlZmF1bHQ7XG5cbi4jeyRuc31idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgKTtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uI3skbnN9YnV0dG9uLWNvbXBvbmVudCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICk7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXBvc2l0aW9uO1xuICAgIHRyYW5zZm9ybTogJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2Ftb3VudCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBjb21wb25lbnQtc3BhY2luZygkbWFyZ2lucy1jb25maWc6ICRjb21wb25lbnQtc3BhY2luZy1jb25maWd1cmF0aW9uKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCkge1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCBjb21wb25lbnQgbWFyZ2luIHZhbHVlXG4gICAgICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAvLyBBZGRpbmcgbWFyZ2luIHJ1bGVzIGZvciBlYWNoIHBhc3NlZCBicmVha3BvaW50XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkbWFyZ2luIGluIG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNraXAtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4uY3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY3JTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLWNvb2tpZS1tZXNzYWdlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMS4ycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzAwMDtcbiAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGZvbnQtc2l6ZTogODUlO1xuICB6LWluZGV4OiA5ODtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMTAlLCAwKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMThzIGxpbmVhcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlLS1zaG93biB7XG4gICAgei1pbmRleDogMjAyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiA4cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9faW5uZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24td3JhcHBlciB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgYWxpZ24tc2VsZjogdW5zZXQ7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgLmJsb2NrLWNtcy1saW5rLndpZGdldCxcbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYSwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmhvdmVyLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTpmb2N1cywgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6YWN0aXZlLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTp2aXNpdGVkOmhvdmVyLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMzQ2MDk3O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDAuNXJlbTtcbiAgICB3aWR0aDogNS41cmVtO1xuICAgIGhlaWdodDogNS41cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2ljb24ge1xuICAgICAgICB0b3A6IC0zLjVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi10b3A6IDEuMnJlbTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpmb2N1cywgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmJlZm9yZSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcHg7XG4gICAgICBib3R0b206IC0xcHg7XG4gICAgICByaWdodDogLTFweDsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmJlZm9yZSB7XG4gICAgICB3aWR0aDogNS41cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwcHggMHB4IDA7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxNSUsICMzNDYwOTcgMTUlLCAjMzQ2MDk3IDEwMCUpOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDRyZW07XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3O1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgICAgei1pbmRleDogLTI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3ZlcjphZnRlciB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LXNpemU6IDg1JSAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfbGluay1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludDogJ3RhYmxldCcgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjogZmxleC1zdGFydCAhZGVmYXVsdDtcblxuLiN7JG5zfWNvb2tpZS1tZXNzYWdlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEuMnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29va2llLW1lc3NhZ2VfYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgZm9udC1zaXplOiAkY29va2llLW1lc3NhZ2VfZm9udC1zaXplO1xuICAgIHotaW5kZXg6IDk4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xOHMgbGluZWFyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2hvd24ge1xuICAgICAgICB6LWluZGV4OiAyMDI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAuYmxvY2stY21zLWxpbmsud2lkZ2V0LFxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLWRhaWx5ZGVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWRhaWx5ZGVhbF9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faXRlbXMtYW1vdW50IHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4OyB9XG4gICAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNlNDFmMTI7XG4gICAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGVhc2VyIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgIG1pbi1oZWlnaHQ6IDRyZW07IH1cbiAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWljb24ge1xuICAgIHdpZHRoOiAxLjlyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgcGFkZGluZzogMnB4IDAgMDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDJweCAwIDA7IH1cbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2F2YWlsYWJpbGl0eSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjODg4O1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgei1pbmRleDogNDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSBhbmQgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpsYXN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Omxhc3QtY2hpbGQgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpudGgtY2hpbGQoMikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDBweCAwcHggMDsgfVxuICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnOic7IH1cbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZGFpbHlkZWFsX19iYWRnZS1wZHAtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBmaWxsOiAjZmZmOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kZGFpbHlkZWFsLS10aWxlLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYm90dG9tOiAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1sZWZ0OiAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLW1hcmdpbjogMCAwIDAuNXJlbSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF90aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF90aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYmFja2dyb3VuZDogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1wYWRkaW5nOiAycHggNHB4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfaXRlbXMtYW1vdW50LWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1qdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2ggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1hbGlnbi1pdGVtczogc3RyZXRjaCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1tYXJnaW4tZmFjdG9yOiAzcHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS10aWxlLW1hcmdpbi1mYWN0b3I6IDFweCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXBhZGRpbmc6IDAuM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWxpbmUtaGVpZ2h0OiAxICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1iYWNrZ3JvdW5kOiBub25lICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC13aWR0aDogNTAlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC1iYWNrZ3JvdW5kOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi13aWR0aDogMS45cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1oZWlnaHQ6IDIuNHJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWljb24tZmlsbDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmc6IDJweCAwIDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDogaW5oZXJpdCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWNvbG9yOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLXBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4kZGFpbHktZGVhbC10ZWFzZXJfcHJvZHVjdC1kZC1jb3VudGVyLW1pbi1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24td2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24taGVpZ2h0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWZpbGwtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gQmVjYXVzZSB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgZm9yIGRpc3BsYXkgZnVsbCBjb3VudGVyIG9uIG1vYmlsZSAoZGVwZW5kcyBvbiBkZXNpbmcpLCB3ZSBjYW4gZGlzcGxheSBjb3VudGVyIGluIGxpZ2h0ZXIgdmVyc2lvbiAob25seSBvbiB0aWxlKVxuLy8gU2V0IGBmYWxzZWAgdG8gaWdub3JlIGxpZ2h0ZXIgdmVyc2lvblxuJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQ6ICc+PXBob25lJywgJzw2MDBweCcgIWRlZmF1bHQ7XG5cbi4jeyRuc31kYWlseWRlYWwge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAkZGFpbHlkZWFsX2hlYWRlci1tYXJnaW47XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9oZWFkZXItZm9udC1zaXplO1xuXG4gICAgICAgIEBpZiAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5ID09XG4gICAgICAgICAgICBmbGV4IG9yXG4gICAgICAgICAgICAkZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5ID09XG4gICAgICAgICAgICBpbmxpbmUtZmxleFxuICAgICAgICB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRkYWlseWRlYWxfaGVhZGVyLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkZGFpbHlkZWFsX2hlYWRlci1hbGlnbi1pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGRhaWx5ZGVhbF90aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9faXRlbXMtYW1vdW50IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfaXRlbXMtYW1vdW50LWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93biB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXk7XG4gICAgICAgIG1hcmdpbjogJGRhaWx5ZGVhbF9jb3VudGRvd24tbWFyZ2luO1xuXG4gICAgICAgIEBpZiAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5ID09XG4gICAgICAgICAgICBmbGV4IG9yXG4gICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5ID09XG4gICAgICAgICAgICBpbmxpbmUtZmxleFxuICAgICAgICB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRkYWlseWRlYWxfY291bnRkb3duLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1hbGlnbi1pdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC13aWR0aDtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWRpc3BsYXk7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWZsZXgtZGlyZWN0aW9uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtbGluZS1oZWlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYtLXNwZWNpYWwge1xuICAgICAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXRlYXNlciAmIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRkYWlseS1kZWFsLXRlYXNlcl9wcm9kdWN0LWRkLWNvdW50ZXItbWluLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24tZmlsbDtcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1kaXNwbGF5O1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZGlzcGxheTtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1wYWRkaW5nO1xuICAgIH1cblxuICAgICYtLXRpbGUge1xuICAgICAgICBwb3NpdGlvbjogJGRhaWx5ZGVhbC0tdGlsZS1wb3NpdGlvbjtcbiAgICAgICAgbGVmdDogJGRhaWx5ZGVhbC0tdGlsZS1sZWZ0O1xuICAgICAgICBib3R0b206ICRkYWlseWRlYWwtLXRpbGUtYm90dG9tO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAjeyRyb290fV9fYXZhaWxhYmlsaXR5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJhY2tncm91bmQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LXBhZGRpbmc7XG4gICAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYm9yZGVyLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICRkYWlseWRlYWxfZnVsbC1jb3VudGVyLWxpZ2h0ZXItdmVyc2lvbi1icmVha3BvaW50Li4uXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLS1zcGVjaWFsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fY291bnRkb3duLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQRFBcbiAgICAmX19iYWRnZS1wZHAtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24taGVpZ2h0O1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgZmlsbDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1maWxsLWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWRpc3BsYXktY29udHJvbGxlci0taGlkZGVuLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1kaXNwbGF5LWNvbnRyb2xsZXItLWhpZGRlbi1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWRpc3BsYXktY29udHJvbGxlciB7XG4gICAgJi0taGlkZGVuLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1zaHJpbms6IDA7IH1cbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAxLjNyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogMC4ycmVtIHNvbGlkICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLXN0b3JlczpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24ge1xuICAgIG1pbi13aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX29wdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4ICNkY2RjZGMgc29saWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyLCByaWdodCAwLjE1cyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogM3JlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDIuNXJlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMC41cmVtOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMDsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH0gfVxuICAgIC5hY3RpdmUgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuYWN0aXZlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXItc3BhbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgbGVmdDogMXJlbTsgfSB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tY3VycmVuY3kge1xuICAgICAgcmlnaHQ6IC0xcmVtOyB9XG4gICAgLmFjdGl2ZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4ICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluazpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBzZXVkb2ljb25fYmVmb3JlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHBzZXVkb2ljb25fYWZ0ZXItaG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjogMXB4ICRjb2xvcl9ib3JkZXItNTAwIHNvbGlkICFkZWZhdWx0O1xuXG4vLyBPZmZjYW52YXMgdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGg6IDAuN3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDNyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8gRHJvcGRvd24gdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTgwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvci0tYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0OiAnZG93bicgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItaGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDAuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfdG9wYmFyLXNlcGFyYXRvci1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3JfYm9yZGVyLTEwMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5OiAxLjRyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTogMS4xcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9ZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEuM3JlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3RvcmVzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb24ge1xuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1sYW5ndWFnZSAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpdGNoZXItb3B0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLWJvdHRvbS1ib3JkZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbigkdHlwZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgJGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvci0tYWN0aXZlLFxuICAgICAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcmLmFjdGl2ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgICAgQGlmICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oJHR5cGU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRkcm9wZG93bi1zd2l0Y2hlci10cmlnZ2VyLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWV4cGFuZGVkOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvci0tYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAkYWN0aXZlLXNlbGVjdG9yOiAnJi5hY3RpdmUnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1jdXJyZW5jeSB7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbS1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWl0ZW0tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNHJlbSAycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL2hvb2snO1xuXG4kcHNldWRvaWNvbi10eXBlOiAncGx1cycgIWRlZmF1bHQ7IC8vIHBsdXMgKGRlZmF1bHQpIG9yIGFycm93XG4vLyBBbmltYXRpb24gZm9yIGFycm93cyB3b3JrcyBvbmx5IGlmIGRlZmF1bHQgYW5kIGFjdGl2ZSBkaXJlY3Rpb24gYXJlIG9wcG9zaXRlXG4kcHNldWRvaWNvbi1hbmltYXRlOiB0cnVlICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tYW5pbWF0aW9uLXRpbWU6IDAuMTVzICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24taG92ZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tZXhwYW5kZWQtY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJHBzZXVkb2ljb24td2lkdGg6IDEuMnJlbSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWhlaWdodDogMC4ycmVtICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4vLyBBZGRpdGlvbmFsIHNldHRpbmdzIGZvciBhcnJvd3NcbiRwc2V1ZG9pY29uLWFycm93LWRlZmF1bHQtZGlyZWN0aW9uOiAndXAnICFkZWZhdWx0O1xuJHBzZXVkb2ljb24tYXJyb3ctYWN0aXZlLWRpcmVjdGlvbjogJ2Rvd24nICFkZWZhdWx0O1xuLy8gSW4gc29tZSBjYXNlcyAoaXQgZGVwZW5kcyBvbiAkcHNldWRvaWNvbi13aWR0aC9oZWlnaHQgdmFsdWUpLCB3ZSBuZWVkIHRvIGZpeCBvZmZzZXQgZm9yIGxlZnQgcGFydCBvZiBpY29uXG4kcHNldWRvaWNvbi1hcnJvdy1sZWZ0LW9mZnNldDogY2FsYyhcbiAgICAjeyRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0fSArICN7JHBzZXVkb2ljb24td2lkdGh9IC0gI3syICpcbiAgICAgICAgJHBzZXVkb2ljb24taGVpZ2h0fVxuKSAhZGVmYXVsdDtcblxuJHBzZXVkb2ljb24tYWN0aXZlLXNlbGVjdG9yOiAnJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXScgIWRlZmF1bHQ7XG5cbkBtaXhpbiBwc2V1ZG9pY29uKFxuICAgICR0eXBlOiAkcHNldWRvaWNvbi10eXBlLFxuICAgICRhbmltYXRlZDogJHBzZXVkb2ljb24tYW5pbWF0ZSxcbiAgICAkYW5pbWF0aW9uLXRpbWU6ICRwc2V1ZG9pY29uLWFuaW1hdGlvbi10aW1lLFxuICAgICRjb2xvcjogJHBzZXVkb2ljb24tY29sb3IsXG4gICAgJGNvbG9yLWhvdmVyOiAkcHNldWRvaWNvbi1ob3Zlci1jb2xvcixcbiAgICAkY29sb3ItZXhwYW5kZWQ6ICRwc2V1ZG9pY29uLWV4cGFuZGVkLWNvbG9yLFxuICAgICR3aWR0aDogJHBzZXVkb2ljb24td2lkdGgsXG4gICAgJGhlaWdodDogJHBzZXVkb2ljb24taGVpZ2h0LFxuICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogJHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgJGFycm93LWRlZmF1bHQ6ICRwc2V1ZG9pY29uLWFycm93LWRlZmF1bHQtZGlyZWN0aW9uLFxuICAgICRhcnJvdy1hY3RpdmU6ICRwc2V1ZG9pY29uLWFycm93LWFjdGl2ZS1kaXJlY3Rpb24sXG4gICAgJGFycm93LW9mZnNldDogJHBzZXVkb2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgJGFjdGl2ZS1zZWxlY3RvcjogJHBzZXVkb2ljb24tYWN0aXZlLXNlbGVjdG9yXG4pIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgICAgIEBpZiAoJGFuaW1hdGVkKSB7XG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdhcnJvdycpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSkgb3JcbiAgICAgICAgICAgICAgICAgICAgKCgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSkgb3JcbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0JykgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0JylcbiAgICAgICAgICAgICAgICAgICAgKSBvclxuICAgICAgICAgICAgICAgICAgICAoKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpKVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRhbmltYXRpb24tdGltZSBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodCAkYW5pbWF0aW9uLXRpbWUgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICgyICogJGFuaW1hdGlvbi10aW1lKSBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAkYW5pbWF0aW9uLXRpbWUgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRjb2xvci1ob3ZlciAhPSAkY29sb3IpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgQGlmICgkY29sb3ItaG92ZXIgIT0gJGNvbG9yKSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkY29sb3ItZXhwYW5kZWQgIT0gJGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWV4cGFuZGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnYXJyb3cnKSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDUwJSwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb25fYmVmb3JlLWhvb2soJHR5cGUpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uX2FmdGVyLWhvb2soJHR5cGUpO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY3MtZmllbGQsXG4uY3MtaW5wdXQge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWZpZWxkX19jb250cm9sLFxuICAuY3MtaW5wdXRfX2NvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1maWVsZF9fbGFiZWwsXG4gIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgICAucmVxdWlyZWQgLmNzLWZpZWxkX19sYWJlbDphZnRlciwgLnJlcXVpcmVkXG4gICAgLmNzLWlucHV0X19sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnIConO1xuICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19pbnB1dCwgLmNzLWZpZWxkX190ZXh0YXJlYSxcbiAgLmNzLWlucHV0X19pbnB1dCxcbiAgLmNzLWlucHV0X190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX190ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXIsIC5jcy1maWVsZF9fdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1maWVsZF9faW5wdXRbZGlzYWJsZWRdLCAuY3MtZmllbGRfX3RleHRhcmVhW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX2lucHV0W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvciwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5jcy1maWVsZF9fc2VsZWN0LFxuICAuY3MtaW5wdXRfX3NlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdDotbW96LWZvY3VzcmluZywgLmNzLWZpZWxkX19zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6LW1vei1mb2N1c3JpbmcsXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3NlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3OGIwZTAnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0IG9wdGlvbixcbiAgICAuY3MtaW5wdXRfX3NlbGVjdCBvcHRpb24ge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAuY3MtZmllbGRfX3JhZGlvLFxuICAuY3MtaW5wdXRfX3JhZGlvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOjotbW96LWZvY3VzLWlubmVyLCAuY3MtZmllbGRfX3JhZGlvOi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19yYWRpbzotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3OGIwZTAnIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkLCAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQ6aG92ZXIsIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZDpmb2N1cyxcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZCxcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZDpob3ZlcixcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gIC5jcy1maWVsZF9fY2hlY2tib3gsXG4gIC5jcy1pbnB1dF9fY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWZpZWxkX19jaGVja2JveDotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDYwOTc7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzNzhiMGUwJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCwgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkOmhvdmVyLCAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQ6Zm9jdXMsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQ6aG92ZXIsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nJTIzNzhiMGUwJyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2NoZWNrYm94Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X19jaGVja2JveC5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5jcy1maWVsZF9faWNvbixcbiAgLmNzLWlucHV0X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEuM2VtO1xuICAgIGhlaWdodDogMS4zZW07XG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIHRvcDogMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZmllbGRfX25vdGUsXG4gIC5jcy1pbnB1dF9fbm90ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZzogMC4zZW0gMCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gIC5jcy1maWVsZF9fZXJyb3IsXG4gIC5jcy1pbnB1dF9fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuXG4uZmllbGQge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmZpZWxkLl9zdWNjZXNzOm5vdCguX3dhcm4pIC5jb250cm9sIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2FybikgLmNvbnRyb2w6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEuM2VtO1xuICAgICAgaGVpZ2h0OiAxLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIHRvcDogMC44ZW07XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2NoZWNrLWdyZWVuLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlci9jb250YWluO1xuICAgICAgY29udGVudDogJyc7IH1cbiAgLmZpZWxkIC5jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmZpZWxkIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAuZmllbGQucmVxdWlyZWQgPiAubGFiZWw6YWZ0ZXIsIC5maWVsZC5fcmVxdWlyZWQgPiAubGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgKic7XG4gICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLmZpZWxkLnJlcXVpcmVkIC5fcmVxdWlyZWQgPiAubGFiZWw6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZpZWxkIC5pbnB1dC10ZXh0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3IsIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNDFmMTI7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuZmllbGQgLnNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQgLnNlbGVjdDotbW96LWZvY3VzcmluZywgLmZpZWxkIC5zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLnNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzNzhiMGUwJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuZmllbGQgLnNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZCAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmZpZWxkIC5jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzc4YjBlMCcgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQsIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZDpob3ZlciwgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjM3OGIwZTAnIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94Lm1hZ2UtZXJyb3IsIC5maWVsZCAuY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5maWVsZCAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZCAucmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsIC5maWVsZCAucmFkaW86LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAucmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDYwOTc7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuZmllbGQgLnJhZGlvOmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3OGIwZTAnIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkLCAuZmllbGQgLnJhZGlvOmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAucmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3OGIwZTAnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZC5maWVsZC1kb2IgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yLCAuZmllbGQuZmllbGQtZG9iIGlucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MWYxMjsgfVxuICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjo6YmVmb3JlLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ2MDk3O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0LCAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0OmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAuZmllbGQuX2Vycm9yIC5jaGVja2JveCxcbiAgLmZpZWxkLl9lcnJvciAuY2hlY2tib3g6aG92ZXI6bm90KDpmb2N1cykge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmZpZWxkIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuZmllbGQgLmZpZWxkLXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmxhYmVsLFxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLm5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuXG5kaXYubWFnZS1lcnJvcixcbmRpdi5maWVsZC1lcnJvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgcGFkZGluZzogMC4zZW0gMCAwO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgY29sb3I6ICNlNDFmMTI7IH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBmaWVsZC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0LWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uLWhvb2soJHR5cGU6ICcnKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtd2FybmluZy1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0LWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtZG9iLWhvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3VyaS1mcmllbmRseS1oZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9ob29rJztcblxuJGZpZWxkX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGZpZWxkX3RyYW5zaXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcblxuJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG5cbiRmaWVsZF9pbnB1dC1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1saW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1wYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTogMC42NSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kZmllbGRfZXJyb3ItZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9ub3RlLWZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9ub3RlLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9lcnJvci1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX3dhcm5pbmctY29sb3I6ICRjb2xvcl93YXJuaW5nLTUwMCAhZGVmYXVsdDtcbi8vIEJhc2VkIG9uIGh0dHBzOi8vd3d3LmZpbGFtZW50Z3JvdXAuY29tL2xhYi9zZWxlY3QtY3NzLmh0bWxcbiRmaWVsZF9zZWxlY3QtZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1saW5lLWhlaWdodDogJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1wYWRkaW5nOiAkZmllbGRfaW5wdXQtcGFkZGluZyAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDogMi4zZW0gIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCUgIWRlZmF1bHQ7XG5cbi8vIE5vdGUgdGhhdCBzZWxlY3QgYmFja2dyb3VuZCBuZWVkcyB0byBiZSBkZWZpbmVkIGFzIGJhY2tncm91bmQtaW1hZ2UgdG8gcHJldmVudFxuLy8gb3B0aW9uIGVsZW1lbnRzIGZyb20gaW5oZXJpdGluZyBpdCBvbiBzb21lIGJyb3dzZXJzLlxuJGZpZWxkX3NlbGVjdC1pY29uLWZpbGw6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtYWN0aXZlOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSkgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtYWN0aXZlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZSl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKSAhZGVmYXVsdDtcblxuJGZpZWxkX3NlbGVjdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm9yZGVyLWFjdGl2ZTogMXB4IHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdy1hY3RpdmU6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbiRmaWVsZF9yYWRpby1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1zaXplOiAxZW0gIWRlZmF1bHQ7XG4vLyBMZXRzIHlvdSBhZGp1c3QgYm90aCByYWRpbyBhbmQgY2hlY2tib3ggYWxpZ25tZW50IGJhc2VkIG9uIGZvbnQgeW91J3ZlIGNob3Nlbi5cbiRmaWVsZF9yYWRpby1vZmZzZXQ6IC0wLjA2MjVlbSAhZGVmYXVsdDtcbi8vIEFsaWduaW5nIGFueXRoaW5nIHRoYXQgY29tZXMgYWZ0ZXIgd2l0aCBpbnB1dCBwYWRkaW5ncywgdGhpcyAxcHggc3RhbmRzIGZvciBpbnB1dCdzIGJvcmRlciB3aWR0aC5cbiRmaWVsZF9yYWRpby1tYXJnaW46ICRmaWVsZF9yYWRpby1vZmZzZXRcbiAgICBjYWxjKCN7MS41ZW0gLSAkZmllbGQtcmFkaW8tc2l6ZX0gKyAxcHgpIDAgMCAhZGVmYXVsdDtcblxuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9yYWRpby1pY29uLWZpbGwpfScgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpICFkZWZhdWx0O1xuXG4kZmllbGRfcmFkaW8tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDogMXB4IHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctY2hlY2tlZDogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9jaGVja2JveC1pY29uLWZpbGwpfScgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuJGZpZWxkX2ljb24td2lkdGg6IDEuM2VtICFkZWZhdWx0O1xuJGZpZWxkX2ljb24taGVpZ2h0OiAxLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvY2hlY2stZ3JlZW4uc3ZnJykgbm8tcmVwZWF0XG4gICAgY2VudGVyIGNlbnRlciAvIGNvbnRhaW4gIWRlZmF1bHQ7XG5cbiRmaWVsZF9kb2ItYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJGZpZWxkX2RvYi1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2ZvbnQtc2l6ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3IoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfZXJyb3ItZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY29sb3JfZXJyb3ItNTAwO1xuICAgIG1hcmdpbi10b3A6IDAuMmVtO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwoKSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmaWVsZF9sYWJlbC1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRmaWVsZF9sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICBjb2xvcjogJGZpZWxkX2xhYmVsLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtcmVxdWlyZWQoKSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgKic7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfZXJyb3ItNTAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNvbnRyb2woKSB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jb250cm9sLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0KCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGZpZWxkX2lucHV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyO1xuICAgIGJveC1zaGFkb3c6ICRmaWVsZF9pbnB1dC1ib3gtc2hhZG93O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgLy8gUmVtb3ZlcyBkcm9wIHNoYWRvdyBmcm9tIGlucHV0cyBvbiBpT1MuXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3IoKSB7XG4gICAgJixcbiAgICAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyOiAkZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWljb24oJHR5cGU6ICcnKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAkZmllbGRfaWNvbi13aWR0aDtcbiAgICBoZWlnaHQ6ICRmaWVsZF9pY29uLWhlaWdodDtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnc3VjY2VzcycpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWljb24taG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlKCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX25vdGUtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogJGZpZWxkX25vdGUtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfZXJyb3ItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfd2FybmluZy1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLXdhcm5pbmctaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0KCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDtcbiAgICBjb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6LW1vei1mb2N1c3JpbmcsXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBvcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgd2lkdGg6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIG1hcmdpbjogJGZpZWxkX3JhZGlvLW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmaWVsZF9yYWRpby1mb250LXNpemU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87IC8vIFByZXZlbnQgZmxleCBwYXJlbnQgZnJvbSBicmVha2luZyBkaW1lbnNpb25zLlxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyLFxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAmW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1sYWJlbCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplO1xuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2IoKSB7XG4gICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGZpZWxkX2RvYi1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtZG9iLWhvb2soKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi8vIE91ciBCRU0gY29tcG9uZW50LlxuLmNzLWZpZWxkLFxuLy8gTGVmdCBmb3Igbm93IGZvciBjb21wYXRpYmlsaXR5IHNha2UuXG4uY3MtaW5wdXQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcblxuICAgICAgICAucmVxdWlyZWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQsXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgJl9fcmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCk7XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICB9XG5cbiAgICAmX19lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG4gICAgfVxufVxuLy8gTWFnZW50byBjbGFzc2VzIHVzZWQgaW4gY2hlY2tvdXQsIGxvZ2luL3JlZ2lzdGVyIGZvcm1zIGV0Yy5cbi5maWVsZCB7XG4gICAgQGluY2x1ZGUgZmllbGQoKTtcblxuICAgICYuX3N1Y2Nlc3M6bm90KC5fd2Fybikge1xuICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWljb24oJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuXG4gICAgICAgID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG4gICAgfVxuXG4gICAgJi5yZXF1aXJlZCxcbiAgICAmLl9yZXF1aXJlZCB7XG4gICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkIHtcbiAgICAgICAgLl9yZXF1aXJlZCB7XG4gICAgICAgICAgICA+IC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgYXN0ZXJpc2tzIGZvciBsYWJlbHMgaW5zaWRlIGZpZWxkc2V0cyBhcyB0aGV5IGFyZSB1c3VhbGx5IHJlbmRlcmVkIGVtcHR5LlxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmVxdWlyZWQtZW50cnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3Qge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAuY2hlY2tib3gge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhZGlvIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1c3RvbWVyLW5hbWUtcHJlZml4IHtcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5maWVsZC1kb2Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1kb2IoKTtcbiAgICB9XG5cbiAgICAmLl9lcnJvciB7XG4gICAgICAgIC5pbnB1dC10ZXh0LFxuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldmVydGluZyBzdHlsZXMgZm9yIGlucHV0IHdpdGggdG9vbHRpcC5cbiAgICAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgLy8gUmV2ZXJ0aW5nIGluZm8gdG9vbHRpcCBzdHlsZXMgdG8gbWFrZSBpdCBhcHBlYXIgYXMgbm90ZSBiZWxvdyB0aGUgaW5wdXQuXG4gICAgLmZpZWxkLXRvb2x0aXAge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuXG4gICAgICAgIC5sYWJlbCxcbiAgICAgICAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuICAgIH1cbn1cbi8vIEhhcyB0byBiZSBzY29wZWQgdG8gZGl2LCBvdGhlcndpc2UgaXQgY29sbGlkZXMgd2l0aCBpbnB1dCBjbGFzcy5cbmRpdi5tYWdlLWVycm9yLFxuZGl2LmZpZWxkLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvcigpO1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKipcbiAqIEZvb3RlciBjb21wb25lbnQgY3VzdG9taXphdGlvbi5cbiAqIEBzZWUgL01hZ2VudG9fVGhlbWUvdGVtcGxhdGVzL2Zvb3Rlci9jb2x1bW5zLnBodG1sIGZvciB0ZW1wbGF0ZXMuXG4gKi9cbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGZvb3Rlcl90ZXh0LWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG4kZm9vdGVyX2JhY2tncm91bmQ6ICRjb2xvci10dXBsZXgtYmctZ3JleSAhZGVmYXVsdDtcbiRmb290ZXJfZWRnZS1ndXR0ZXI6ICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ6IDJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtaGVhZGxpbmUtbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNCAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS1wYWRkaW5nOiAycmVtIDEuNXJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS1jb2xvcjogJGNvbG9yLXR1cGxleC10ZXh0LW5vcm1hbCAgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLWxpLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZTogdHJ1ZSAhZGVmYXVsdDtcbiRmb290ZXJfcHJvbW8tZGlzcGxheS1vbi1tb2JpbGU6IGZhbHNlICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLXdpZHRoOiAxMy41ZW0gIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28taGVpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWZvb3RlciB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgY29sb3I6ICRmb290ZXJfdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCAkZm9vdGVyX2JhY2tncm91bmQsIDEwJSApO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCAwIDFyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGZvb3Rlcl9lZGdlLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9tbyB7XG4gICAgICAgICAgICBAaWYgJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZT09ZmFsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRyYXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIC8vIGZsZXgtYmFzaXM6IDI1JTtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMCU7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgICYgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3c2xldHRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29jaWFscyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0b3Jlcy1zd2l0Y2hlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbi10aXRsZSxcbiAgICBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCAhPSdub25lJyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogJGZvb3Rlcl9zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI7XG4gICAgICAgIHBhZGRpbmc6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1wYWRkaW5nO1xuICAgICAgICBjb2xvcjogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtdHJhbnNmb3JtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XSAmLFxuICAgICAgICAgICAgI3skcm9vdH1fX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gJiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi1wc2V1ZG9pY29uLWluY2x1ZGUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tc29jaWFscyAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZzogMCAkZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXIgJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyO1xuICAgICAgICBmb250LXNpemU6ICRmb290ZXJfc2VjdGlvbi1saS1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XSAmLFxuICAgICAgICAgICAgI3skcm9vdH1fX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Nob3AtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6ICRmb290ZXJfbG9nby1kaXNwbGF5O1xuICAgICAgICB3aWR0aDogJGZvb3Rlcl9sb2dvLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRmb290ZXJfbG9nby1oZWlnaHQ7XG4gICAgICAgIG1pbi13aWR0aDogJGZvb3Rlcl9sb2dvLXdpZHRoO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4uY3MtY29udGFpbmVyIHtcbiAgICAmLS1mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuXG4uZm9vdGVyLWNvcHlyaWdodCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAkZm9vdGVyX3NlY3Rpb24tbGktZm9udC1zaXplO1xuICAgIC5uaXAge1xuICAgICAgICBwYWRkaW5nOiAwcHggMCAwcHggMDtcbiAgICB9XG4gICAgLmNvbnRhY3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgIH1cbn1cblxuLmNzLWZvb3Rlci1saW5rc19faXRlbSAuYmxvY2stY2F0ZWdvcnktbGluay53aWRnZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbn1cblxuLmJsb2NrLXN0YXRpYy1ibG9jay53aWRnZXQsIC5ibG9jay1jbXMtbGluay53aWRnZXQge1xuICAgIG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIC5jcy1mb290ZXJfX3NlY3Rpb246bnRoLWNoaWxkKDIpIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgfVxuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICB9XG59XG5cbi5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1leHRyYXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAmIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uICB7XG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5mb290ZXItZmlybWEge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi5jcy1mb290ZXJfX3NlY3Rpb24tLW5ld3NsZXR0ZXIge1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxufVxuLmNzLWZvb3Rlcl9fc2VjdGlvbi5jcy1mb290ZXJfX3NlY3Rpb24tLXNvY2lhbHMge1xuICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEZvb3RlciBjb21wb25lbnQgY3VzdG9taXphdGlvbi5cbiAqIEBzZWUgL01hZ2VudG9fVGhlbWUvdGVtcGxhdGVzL2Zvb3Rlci9jb2x1bW5zLnBodG1sIGZvciB0ZW1wbGF0ZXMuXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4uY3MtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIGNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDAgMXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXIge1xuICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAuY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2NvbnRlbnQge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbSB7XG4gICAgICBmbGV4OiAxOyB9IH1cbiAgLmNzLWZvb3Rlcl9faXRlbS0tcHJvbW8ge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9faXRlbS0tcHJvbW8ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9faXRlbS0tcHJvbW8ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19pdGVtLS1wcm9tbyB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIGZsZXgtZ3JvdzogMTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbS0tbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiAyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICBmbGV4LWdyb3c6IDU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleC1iYXNpczogMTAlO1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIHtcbiAgICAgIGZsZXg6IDE7IH1cbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24gaDIge1xuICAgICAgICBmb250LXNpemU6IDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLW5ld3NsZXR0ZXIge1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLXN0b3Jlcy1zd2l0Y2hlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsXG4gIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM4ODg7XG4gICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOHJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHBhZGRpbmc6IDJyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLCAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddLFxuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1tYWdlLWluaXRdIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTpiZWZvcmUsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyLFxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtY29sbGFwc2libGVdXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTpiZWZvcmUsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlcixcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSxcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ106YmVmb3JlLCAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ106YWZ0ZXIsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSxcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ106YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1tYWdlLWluaXRdIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGU6YWZ0ZXIsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyLFxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtY29sbGFwc2libGVdXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1tYWdlLWluaXRdXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLW1hZ2UtaW5pdF0gLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlcixcbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbltkYXRhLWNvbGxhcHNpYmxlXSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ11bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIsXG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV1cbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLXNvY2lhbHNcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSxcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LFxuICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgcGFkZGluZzogMCAxLjVyZW0gMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1tYWdlLWluaXRdIC5jcy1mb290ZXJfX3NlY3Rpb24tY29udGVudCxcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb25bZGF0YS1jb2xsYXBzaWJsZV0gLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LCAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtbWFnZS1pbml0XVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10sXG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uW2RhdGEtY29sbGFwc2libGVdXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tY29udGVudCxcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH0gfVxuICAuY3MtZm9vdGVyX19zaG9wLWxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMy41ZW07XG4gICAgaGVpZ2h0OiAyLjNlbTtcbiAgICBtaW4td2lkdGg6IDEzLjVlbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuXG4uY3MtY29udGFpbmVyLS1mb290ZXIge1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLmZvb3Rlci1jb3B5cmlnaHQge1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS45O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgLmZvb3Rlci1jb3B5cmlnaHQgLm5pcCB7XG4gICAgcGFkZGluZzogMHB4IDAgMHB4IDA7IH1cbiAgLmZvb3Rlci1jb3B5cmlnaHQgLmNvbnRhY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1heC13aWR0aDogMzIwcHg7IH1cblxuLmNzLWZvb3Rlci1saW5rc19faXRlbSAuYmxvY2stY2F0ZWdvcnktbGluay53aWRnZXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMnB4OyB9XG5cbi5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0LCAuYmxvY2stY21zLWxpbmsud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4zcmVtICFpbXBvcnRhbnQ7IH1cblxuLmNzLWZvb3Rlcl9faXRlbS0tbGlua3MgLmNzLWZvb3Rlcl9fc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbS0tbGlua3MgLmNzLWZvb3Rlcl9fc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICAgICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cbiAgLmNzLWZvb3Rlcl9faXRlbS0tbGlua3MgLmNzLWZvb3Rlcl9fc2VjdGlvbjpudGgtY2hpbGQoMikgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19pdGVtLS1saW5rcyAuY3MtZm9vdGVyX19zZWN0aW9uOm50aC1jaGlsZCgyKSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIGgyIHtcbiAgICBmb250LXNpemU6IDJyZW07IH1cbiAgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyAuY3MtZm9vdGVyX19zZWN0aW9uOm50aC1jaGlsZCgyKSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIC5mb290ZXItZmlybWEge1xuICAgIG9yZGVyOiAtMTtcbiAgICBmbGV4LWdyb3c6IDA7IH1cbiAgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyAuY3MtZm9vdGVyX19zZWN0aW9uLmNzLWZvb3Rlcl9fc2VjdGlvbi0tbmV3c2xldHRlciB7XG4gICAgZmxleC1ncm93OiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1mb290ZXJfX3NlY3Rpb24uY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIGgyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH0gfVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1mb290ZXItbGlua3Mge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLWZvb3Rlci1saW5rc19faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMC4zZW07IH1cbiAgICAuY3MtZm9vdGVyLWxpbmtzX19pdGVtIC5hbS1hdHRhY2htZW50cyAuYW0tZmlsZWxpbmUgLmFtLWZpbGVsaW5rIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgaGVpZ2h0OiBpbmhlcml0OyB9XG4gIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGE6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTpmb2N1cywgLmNzLWZvb3Rlci1saW5rcyBhOmFjdGl2ZSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjVlbSAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICAgICAgcGFkZGluZzogMC4yZW0gMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luOiAwIDAgMC4zZW0gIWRlZmF1bHQ7XG5cbiRmb290ZXItbGlua3NfbGluay1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstY29sb3I6ICRjb2xvcl9ibGFjayAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcjogJGZvb3Rlci1saW5rc19saW5rLWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvbjogdW5kZXJsaW5lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctbW9iaWxlOiAwLjVlbSAwICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctZGVza3RvcDogMC4yMGVtIDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb290ZXItbGlua3Mge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luO1xuICAgICAgICAuYW0tYXR0YWNobWVudHMgLmFtLWZpbGVsaW5lIC5hbS1maWxlbGluayB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkZm9vdGVyLWxpbmtzX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZm9vdGVyLWxpbmtzX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlci1saW5rc19saW5rLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1nb29nbGUtcmVjYXB0Y2hhIHtcbiAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX2JhZGdlLS1pbnZpc2libGUgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMzNDYwOTc7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2NyZWF0ZSB7XG4gICAgbWFyZ2luLXRvcDogLTJyZW07IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2xvZ2luIC5nLXJlY2FwdGNoYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjogMXJlbSAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIG5ld3NsZXR0ZXJcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbWFyZ2luOiAxcmVtIDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbi1ob3ZlcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4uI3skbnN9Z29vZ2xlLXJlY2FwdGNoYSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjtcblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgJi0taW52aXNpYmxlIHtcbiAgICAgICAgICAgIC5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LW1hcmdpbjtcbiAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtY29sb3I7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJGRlY29yYXRpb246ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbmV3c2xldHRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1tYXJnaW47XG5cbiAgICAgICAgI3skcm9vdH1fX25vdGUge1xuICAgICAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1jb2xvcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24taG92ZXJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfbG9naW4ge1xuICAgICAgICAuZy1yZWNhcHRjaGEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIEZhaXIgd2FybmluZzogRG9uJ3QgbWl4IHVuaXRzIHdoaWxlIHVzaW5nICd1dGlscy9wb2x5LWZsdWlkLXNpemluZycgZmVhdHVyZS5cbiAqIElmIHlvdSB1c2UgcmVtcywgc3RpY2sgdG8gcmVtcyBldmVyeXdoZXJlIGluIHRoZSBhcmVhIG9mIHdob2xlIG1hcCwgb3IgZWxzZSB0aGUgbWl4aW4gd2lsbCB0aHJvdyBhbiBlcnJvclxuICovXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvYXNwZWN0LXJhdGlvJztcbkBpbXBvcnQgJ3V0aWxzL3BvbHktZmx1aWQtc2l6aW5nJztcbkBpbXBvcnQgJ3V0aWxzL2NsZWFyZml4JztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRncmlkLWxheW91dF9yb3dzLXNlcGFyYXRvci1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWhlaWdodDogMXB4ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWNvbG9yOiAkY29sb3JfZ2FsbGVyeSAhZGVmYXVsdDtcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1ndXR0ZXI6IDAgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfYnJpY2stbWFyZ2luOiAkZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmljay1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmljay1yYXRpby1oZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWxpZ2h0LXNjaGVtZS1jb2xvcjogJHNjaGVtZS0tbGlnaHRfdGV4dHMtY29sb3IgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yOiAkc2NoZW1lLS1kYXJrX3RleHRzLWNvbG9yICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1jb250ZW50LWxpbmUtaGVpZ2h0OiAxLjE1ICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW46IDAuMmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXdlaWdodDogJHRleHRzLW9uLWltYWdlX2hlYWRsaW5lLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1zaXplLW1pbjogMS44cmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXNpemUtbWF4OiAyLjhyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtc2l6ZS1taW4sXG4gICAgJHBhZ2VfbWF4LXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtc2l6ZS1tYXgsXG4pICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW4gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLWhlYWRsaW5lLWZvbnQtc2l6ZS1taW46ICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1heDogNHJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAkcGFnZV9taW4td2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1pbixcbiAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjogMC42ZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtd2VpZ2h0OiAkdGV4dHMtb24taW1hZ2Vfc3ViaGVhZGxpbmUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLXRleHQtdHJhbnNmb3JtOiAkdGV4dHMtb24taW1hZ2Vfc3ViaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW46IDEuNnJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heDogMS44cmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LW1hcDogKFxuICAgICRwYWdlX21pbi13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1mb250LXNpemUtbWF4LFxuKSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LXNpemUtbWluOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW4gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1tYXg6IDIuNXJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAkcGFnZV9taW4td2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1pbixcbiAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWJvdHRvbS1tYXJnaW46IDFlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtd2VpZ2h0OiAkdGV4dHMtb24taW1hZ2VfdGV4dC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLXRleHQtdHJhbnNmb3JtOiAkdGV4dHMtb24taW1hZ2VfdGV4dC10ZXh0LXRyYW5zZm9ybSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtc2l6ZS1taW46IDEuM3JlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtc2l6ZS1tYXg6IDEuNHJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1ib3R0b20tbWFyZ2luICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbjogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtc2l6ZS1tYXg6IDEuNnJlbSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1mb250LXNpemUtbWluLFxuICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1zaXplLW1heCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4vLyB2YWx1ZXM6IGZhbHNlIC8gYnJlYWtwb2ludCBuYW1lIC0gdGhlIHNhbWUgYXMgZm9yIEBtZWRpYSBtaXhpbjtcbi8vIFVzZSBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoaWRlIGJ1dHRvbiBhdCBhbGxcbiRncmlkLWxheW91dF90ZWFzZXItYnV0dG9uLXZpc2libGUtZnJvbTogJz49dGFibGV0JztcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlU3VpdGVfQ29udGVudENvbnN0cnVjdG9yLFxuICAgIGNvbHVtbnMsXG4gICAgb25lLWNvbHVtblxuKSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdy0td2l0aC1zaWRlYmFyOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlU3VpdGVfQ29udGVudENvbnN0cnVjdG9yLFxuICAgIGNvbHVtbnMsXG4gICAgbXVsdGlwbGUtY29sdW1uc1xuKSAhZGVmYXVsdDtcblxuLy8gQXBwbHkgbm9ybWFsIGZsb3cgZm9yIHRlYXNlcnMgb24gc21hbGxlc3QgbW9iaWxlLCBpbnN0ZWFkIG9mIHRlYXNlcnMgd2l0aCBoYXJkY29kZWQgMTAwJSB3aWR0aFxuJGdyaWQtbGF5b3V0X3NtYWxsLW1vYmlsZS1zdGFuZGFyZC10ZWFzZXJzLWZsb3c6IGZhbHNlICFkZWZhdWx0O1xuXG4uI3skbnN9Z3JpZC1sYXlvdXQge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpZiAkZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlciA9PSAwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogI3skZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlcn0pO1xuICAgICAgICBtYXJnaW46IC0jeyRncmlkLWxheW91dF9icmlja3MtZ3V0dGVyfSAtI3skZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlcn0gMDtcbiAgICB9XG5cbiAgICAmX19ncmlkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICB9XG5cbiAgICAmX190ZWFzZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tY2hpbGQtcG9zaXRpb24oKTtcblxuICAgICAgICAmLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWZpZ3VyZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1wYWRkaW5nO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1saW5lLWhlaWdodDtcblxuICAgICAgICAgICAgLyogVmFyaWFudHMgd2lsbCBiZSByZWZhY3RvcmVkIGFmdGVyIENDIElUIHJlZmFjdG9yIGR1ZSB0byBuZXcgcG9zaXRpb24gb3B0aW9ucyAqL1xuICAgICAgICAgICAgJi0tdmFyaWFudC0xIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tdmFyaWFudC0yIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS12YXJpYW50LTMge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS12YXJpYW50LTQge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWNvbnRlbnQtaW5uZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1oZWFkbGluZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW47XG4gICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1kYXJrLXNjaGVtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtbWFwXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYnJpY2stLXgyICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1tYXBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fdGVhc2VyLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRncmlkLWxheW91dF90ZWFzZXItbGlnaHQtc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zdWJoZWFkbGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKFxuICAgICAgICAgICAgICAgICdmb250LXNpemUnLFxuICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1tYXBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKFxuICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplJyxcbiAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LW1hcFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X190ZWFzZXItLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1saWdodC1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9seS1mbHVpZC1zaXppbmcoXG4gICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1tYXBcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWZvbnQtbWFwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX3RlYXNlci0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWxpZ2h0LXNjaGVtZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtY3RhIHtcbiAgICAgICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGdyaWQtbGF5b3V0X3RlYXNlci1jdGEtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWN0YS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmljayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRncmlkLWxheW91dF9icmljay1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICRncmlkLWxheW91dF9icmljay1wYWRkaW5nO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKFxuICAgICAgICAgICAgJHdpZHRoOiAkZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGgsXG4gICAgICAgICAgICAkaGVpZ2h0OiAkZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8taGVpZ2h0LFxuICAgICAgICAgICAgJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSxcbiAgICAgICAgICAgICRhdXRvcG9zaXRpb246IHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gI3skaXRlbXNQZXJSb3d9KTtcblxuICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPiAxIHtcbiAgICAgICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvICN7JGl0ZW1zUGVyUm93fSAqIDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0teDI6bm90KCN7JHJvb3R9X19icmljay0teTIpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpby1vdmVycmlkZShcbiAgICAgICAgICAgICAgICAkd2lkdGg6ICRncmlkLWxheW91dF9icmljay1yYXRpby13aWR0aCAqIDIsXG4gICAgICAgICAgICAgICAgJGhlaWdodDogJGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLWhlaWdodFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJiN7JHJvb3R9X19icmljay0tdGVhc2VyIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0teTIge1xuICAgICAgICAgICAgJiN7JHJvb3R9X19icmljay0tbGVmdCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KCN7JHJvb3R9X19icmljay0teDIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUoXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLXdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8taGVpZ2h0ICogMlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fYnJpY2stLXRlYXNlciB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZWFzZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLXJlYWR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXdpdGgtc2lkZWJhciB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LFxuICAgICAgICAgICAgJGl0ZW1zUGVyUm93IGluICRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdy0td2l0aC1zaWRlYmFyXG4gICAgICAgIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19icmljayB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAjeyRpdGVtc1BlclJvd30pO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPiAxIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYtLXgyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gI3skaXRlbXNQZXJSb3d9ICogMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLXNob3cge1xuICAgICAgICAmLFxuICAgICAgICAmX19icmljayB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3ItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmlkLWxheW91dF9yb3dzLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWhlaWdodH07XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYWdlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgICAgICAmX19ncmlkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuXG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skaXRlbXNQZXJSb3d9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDAsIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICRpdGVtc1BlclJvdyBpbiAkZ3JpZC1sYXlvdXRfYnJpY2tzLXBlci1yb3ctLXdpdGgtc2lkZWJhclxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRpdGVtc1BlclJvd30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDAsIDFmcilcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19icmljayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tcmVzZXQoXG4gICAgICAgICAgICAgICAgJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSxcbiAgICAgICAgICAgICAgICAkYXV0b3Bvc2l0aW9uOiB0cnVlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaWYgKCRncmlkLWxheW91dF9zbWFsbC1tb2JpbGUtc3RhbmRhcmQtdGVhc2Vycy1mbG93KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLS15MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdy1lbmQ6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRpdGVtc1BlclJvdyBpbiAkZ3JpZC1sYXlvdXRfYnJpY2tzLXBlci1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zUGVyUm93ID4gMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmLS14MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYtLXkyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdy1lbmQ6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH06bm90KCN7JHJvb3R9LS13aXRoLXNpZGViYXIpICYge1xuICAgICAgICAgICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCgjeyRyb290fV9fYnJpY2stLXgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRpdGVtc1BlclJvdyA+PSAyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmLS14MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRpdGVtc1BlclJvdyA+PSAzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS14Mjpub3QoI3skcm9vdH1fX2JyaWNrLS15Mikge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpby1vdmVycmlkZS1yZXNldCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS15MiB7XG4gICAgICAgICAgICAgICAgJjpub3QoI3skcm9vdH1fX2JyaWNrLS14Mikge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUtcmVzZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmLS10ZWFzZXItcmVhZHkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXRlYXNlci1yZWFkeSB7XG4gICAgICAgICAgICAgICAgQGlmIG5vdCAkZ3JpZC1sYXlvdXRfc21hbGwtbW9iaWxlLXN0YW5kYXJkLXRlYXNlcnMtZmxvdyB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLXNpZGViYXIge1xuICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsXG4gICAgICAgICAgICAgICAgJGl0ZW1zUGVyUm93IGluICRncmlkLWxheW91dF9icmlja3MtcGVyLXJvdy0td2l0aC1zaWRlYmFyXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2JyaWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zUGVyUm93ID4gMSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLS15MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoI3skcm9vdH1fX2JyaWNrLS14Mikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPj0gMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPj0gMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tZ3JpZC10ZWFzZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgICAgICAmLS1ncmlkLXRlYXNlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBGYWlyIHdhcm5pbmc6IERvbid0IG1peCB1bml0cyB3aGlsZSB1c2luZyAndXRpbHMvcG9seS1mbHVpZC1zaXppbmcnIGZlYXR1cmUuXG4gKiBJZiB5b3UgdXNlIHJlbXMsIHN0aWNrIHRvIHJlbXMgZXZlcnl3aGVyZSBpbiB0aGUgYXJlYSBvZiB3aG9sZSBtYXAsIG9yIGVsc2UgdGhlIG1peGluIHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogVXNpbmcgcHN1ZWRvIGVsZW1lbnRzIHRvIG1haW50YWluIGFuIGVsZW1lbnRzIGFzcGVjdCByYXRpbywgZXZlbiBhcyBpdCBzY2FsZXNcbiAqIEl0J3MgdXNpbmcgb25seSBmb3IgSUUxMSBhbmQgRWRnZSAodmVyc2lvbiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgbmF0aXZlIENTUyBncmlkKSBicm93c2Vyc1xuICogRm9yIGJyb3dzZXJzIHdoaWNoIHN1cHBvcnQgbmF0aXZlIENTUyBncmlkLCB3ZSBhcmUgdXNpbmcgbWl4aW5zIGNvbnRhaW4gYHJlc2V0YCBpbiBtaXhpbiBuYW1lXG4gKiB0byBvdmVycmlkZSBkZWZhdWx0IG1peGlucyAocHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQpXG4gKiBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvbWFpbnRhaW4tYXNwZWN0LXJhdGlvLW1peGluL1xuICogQHBhcmFtIHtudW1iZXJ9ICR3aWR0aDogd2lkdGggb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge251bWJlcn0gJGhlaWdodDogaGVpZ2h0IG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtzdHJpbmd9ICRjb250ZW50Q2xhc3M6IGNsYXNzIG9mIHRoZSBkaXJlY3QgY2hpbGQgZWxlbWVudCB0byBiZSBwb3NpdGlvbmVkIGFic29sdXRlbHk7XG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRhdXRvcG9zaXRpb246IHRlbGxzIGlmIGl0ZW0gc2hhbGwgdGFrZSAxMDAlIG9mIHBhcmVudCBzaXplIG9yIGlmIGl0IGNhbiBiZSB3aWRlci9oaWdoZXIgaWYgbmVlZGVkO1xuICovXG4vKipcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxNzlcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1ncmlkLWxheW91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19ncmlkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY29udGVudC13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWZpZ3VyZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWltYWdlIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAvKiBWYXJpYW50cyB3aWxsIGJlIHJlZmFjdG9yZWQgYWZ0ZXIgQ0MgSVQgcmVmYWN0b3IgZHVlIHRvIG5ldyBwb3NpdGlvbiBvcHRpb25zICovIH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtLXZhcmlhbnQtMSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY29udGVudC0tdmFyaWFudC0yIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtLXZhcmlhbnQtMyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtLXZhcmlhbnQtNCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtaW5uZXIge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzJyZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItaGVhZGxpbmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygxLjAyMDQxdncgKyAxLjQ3MzQ3cmVtKTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTMwcmVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWhlYWRsaW5lIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTsgfSB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzJyZW0pIHtcbiAgICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGNhbGMoMi4yNDQ5dncgKyAxLjA4MTYzcmVtKTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzByZW0pIHtcbiAgICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDRyZW07IH0gfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItLXNjaGVtZS1saWdodCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItc3ViaGVhZGxpbmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAwLjZlbTtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1zdWJoZWFkbGluZSB7XG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDAuMjA0MDh2dyArIDEuNTM0NjlyZW0pOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzByZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItc3ViaGVhZGxpbmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC42ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygwLjkxODM3dncgKyAxLjMwNjEycmVtKTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzByZW0pIHtcbiAgICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1zdWJoZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsgfSB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci0tc2NoZW1lLWxpZ2h0IC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgIG1hcmdpbjogMCAwIDFlbTtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgICAgICBmb250LXNpemU6IGNhbGMoMC4xMDIwNHZ3ICsgMS4yNjczNXJlbSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEzMHJlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfSB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMWVtO1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzJyZW0pIHtcbiAgICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygwLjMwNjEydncgKyAxLjIwMjA0cmVtKTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzByZW0pIHtcbiAgICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLS1zY2hlbWUtbGlnaHQgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItdGV4dCB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpob3ZlciwgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpmb2N1cywgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b246YmVmb3JlLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgIHJpZ2h0OiAtMXB4OyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiA1LjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMHB4IDBweCAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgIzM0NjA5NyAxNSUsICMzNDYwOTcgMTAwJSk7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b246YWZ0ZXIge1xuICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3O1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbiAqLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b24tc3BhbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b24taWNvbiB7XG4gICAgICAgIG1heC13aWR0aDogMWVtO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgcmlnaHQ6IDFlbTsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXRvcDogMTcwJTsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2sgLmNzLXByb2R1Y3QtdGlsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMik7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyICogMik7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDIpOyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMiAqIDIpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljayB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMgKiAyKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0ICogMik7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpOyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCAqIDIpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljayB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQgKiAyKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpOyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCAqIDIpOyB9IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14Mjpub3QoLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIpOmJlZm9yZSB7XG4gICAgICBwYWRkaW5nLXRvcDogODUlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MikuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS10ZWFzZXI6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyLmNzLWdyaWQtbGF5b3V0X19icmljay0tbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14Mik6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAzNDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyLmNzLWdyaWQtbGF5b3V0X19icmljay0tdGVhc2VyOmJlZm9yZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0tdGVhc2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXRlYXNlcjpiZWZvcmUge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXRlYXNlci1yZWFkeSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDIpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDIpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDIpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAyICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2sge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzICogMik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyAqIDIpOyB9IH1cbiAgLmNzLWdyaWQtbGF5b3V0OmFmdGVyLCAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDsgfVxuICAuY3MtZ3JpZC1sYXlvdXQge1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXQ6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fZ3JpZDphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljazpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrIC5jcy1wcm9kdWN0LXRpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogYXV0bzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MiB7XG4gICAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgICBncmlkLXJvdy1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MiB7XG4gICAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgICBncmlkLXJvdy1lbmQ6IHNwYW4gMjsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dDpub3QoLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIpIC5jcy1ncmlkLWxheW91dF9fYnJpY2s6bm90KC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyKSAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1ncmlkLWxheW91dDpub3QoLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIpIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0Om5vdCguY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhcikgLmNzLWdyaWQtbGF5b3V0X19icmljazpub3QoLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIpIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0Om5vdCguY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhcikgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZ3JpZC1sYXlvdXQ6bm90KC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyKSAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15Mik6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14Mik6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2ssIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXRlYXNlci1yZWFkeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0tdGVhc2VyLXJlYWR5IHtcbiAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMSAhaW1wb3J0YW50OyB9IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2s6bm90KC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyKSAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2s6bm90KC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyKSAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2s6bm90KC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyKSAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2s6bm90KC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyKSAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MiB7XG4gICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIge1xuICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgICBncmlkLXJvdy1lbmQ6IHNwYW4gMjsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0LS13aXRoLXNpZGViYXIgLmNzLWdyaWQtbGF5b3V0X19icmljazpub3QoLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIpIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtaW1hZ2UtdGVhc2VyX19hc3BlY3QtcmF0aW8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MiB7XG4gICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9XG4gICAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrOm5vdCguY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MikgLmNzLWltYWdlLXRlYXNlcl9fYXNwZWN0LXJhdGlvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1pbWFnZS10ZWFzZXJfX2FzcGVjdC1yYXRpbyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB1bnNldCAhaW1wb3J0YW50OyB9IH0gfVxuXG4uY3MtY29udGFpbmVyLS1ncmlkLXRlYXNlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbkBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgYW5kIChncmlkLWF1dG8tZmxvdzogcm93KSB7XG4gIC5jcy1jb250YWluZXItLWdyaWQtdGVhc2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9IH1cbiIsIi8qKipcbiAqIFVzaW5nIHBzdWVkbyBlbGVtZW50cyB0byBtYWludGFpbiBhbiBlbGVtZW50cyBhc3BlY3QgcmF0aW8sIGV2ZW4gYXMgaXQgc2NhbGVzXG4gKiBJdCdzIHVzaW5nIG9ubHkgZm9yIElFMTEgYW5kIEVkZ2UgKHZlcnNpb24gd2hpY2ggZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCkgYnJvd3NlcnNcbiAqIEZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCwgd2UgYXJlIHVzaW5nIG1peGlucyBjb250YWluIGByZXNldGAgaW4gbWl4aW4gbmFtZVxuICogdG8gb3ZlcnJpZGUgZGVmYXVsdCBtaXhpbnMgKHByb2dyZXNzaXZlIGVuaGFuY2VtZW50KVxuICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL21haW50YWluLWFzcGVjdC1yYXRpby1taXhpbi9cbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2lkdGg6IHdpZHRoIG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtudW1iZXJ9ICRoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudENsYXNzOiBjbGFzcyBvZiB0aGUgZGlyZWN0IGNoaWxkIGVsZW1lbnQgdG8gYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5O1xuICogQHBhcmFtIHtib29sZWFufSAkYXV0b3Bvc2l0aW9uOiB0ZWxscyBpZiBpdGVtIHNoYWxsIHRha2UgMTAwJSBvZiBwYXJlbnQgc2l6ZSBvciBpZiBpdCBjYW4gYmUgd2lkZXIvaGlnaGVyIGlmIG5lZWRlZDtcbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgIEByZXR1cm4gKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbn1cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQsICRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tcmVzZXQoJGNoaWxkQ2xhc3MsICRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tY2hpbGQtcG9zaXRpb24oJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUoJHdpZHRoLCAkaGVpZ2h0KSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlLXJlc2V0KCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBDbGVhcmZpeDogY29udGFpbiBmbG9hdHNcbiAqXG4gKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICogICAgYGNvbnRlbnRlZGl0YWJsZWAgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gKiAgICB0aGF0IHJlY2VpdmUgdGhlIGBjbGVhcmZpeGAgY2xhc3MuXG4gKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICogICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTc5XG4gKi9cblxuQG1peGluIGNsZWFyZml4KCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cbiIsIi8vLyBwb2x5LWZsdWlkLXNpemluZ1xuLy8vIEdlbmVyYXRlIGxpbmVhciBpbnRlcnBvbGF0ZWQgc2l6ZSB2YWx1ZXMgdGhyb3VnaCBtdWx0aXBsZSBicmVhayBwb2ludHNcbi8vLyBAcGFyYW0gJHByb3BlcnR5IC0gQSBzdHJpbmcgQ1NTIHByb3BlcnR5IG5hbWVcbi8vLyBAcGFyYW0gJG1hcCAtIEEgU0FTUyBtYXAgb2Ygdmlld3BvcnQgdW5pdCBhbmQgc2l6ZSB2YWx1ZSBwYWlyc1xuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBsaW5lYXItaW50ZXJwb2xhdGlvblxuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBtYXAtc29ydFxuLy8vIEBleGFtcGxlXG4vLy8gICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZygnZm9udC1zaXplJywgKDU3NnB4OiAyMnB4LCA3NjhweDogMjRweCwgOTkycHg6IDM0cHgpKTtcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBtaXhpbiBwb2x5LWZsdWlkLXNpemluZygkcHJvcGVydHksICRtYXApIHtcbiAgICAvLyBHZXQgdGhlIG51bWJlciBvZiBwcm92aWRlZCBicmVha3BvaW50c1xuICAgICRsZW5ndGg6IGxlbmd0aChtYXAta2V5cygkbWFwKSk7XG5cbiAgICAvLyBFcnJvciBpZiB0aGUgbnVtYmVyIG9mIGJyZWFrcG9pbnRzIGlzIDwgMlxuICAgIEBpZiAoJGxlbmd0aCA8IDIpIHtcbiAgICAgICAgQGVycm9yIFwicG9seS1mbHVpZC1zaXppbmcoKSAkbWFwIHJlcXVpcmVzIGF0IGxlYXN0IHZhbHVlc1wiO1xuICAgIH1cblxuICAgIC8vIFNvcnQgdGhlIG1hcCBieSB2aWV3cG9ydCB3aWR0aCAoa2V5KVxuICAgICRtYXA6IG1hcC1zb3J0KCRtYXApO1xuICAgICRrZXlzOiBtYXAta2V5cygkbWFwKTtcblxuICAgIC8vIE1pbmltdW0gc2l6ZVxuICAgICN7JHByb3BlcnR5fTogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsIDEpKTtcblxuICAgIC8vIEludGVycG9sYXRlZCBzaXplIHRocm91Z2ggYnJlYWtwb2ludHNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkbGVuZ3RoIC0gMSkge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogbnRoKCRrZXlzLCRpKSkge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiBsaW5lYXItaW50ZXJwb2xhdGlvbihcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIG50aCgka2V5cywgJGkpOiBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgJGkpKSxcbiAgICAgICAgICAgICAgICAgICAgbnRoKCRrZXlzLCAoJGkgKyAxKSk6IG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAoJGkgKyAxKSkpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYXhtaW11bSBzaXplXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG50aCgka2V5cywkbGVuZ3RoKSkge1xuICAgICAgICAjeyRwcm9wZXJ0eX06IG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAkbGVuZ3RoKSk7XG4gICAgfVxufVxuXG4vLy8gbGluZWFyLWludGVycG9sYXRpb25cbi8vLyBDYWxjdWxhdGUgdGhlIGRlZmluaXRpb24gb2YgYSBsaW5lIGJldHdlZW4gdHdvIHBvaW50c1xuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcCBvZiB2aWV3cG9ydCB3aWR0aHMgYW5kIHNpemUgdmFsdWUgcGFpcnNcbi8vLyBAcmV0dXJucyBBIGxpbmVhciBlcXVhdGlvbiBhcyBhIGNhbGMoKSBmdW5jdGlvblxuLy8vIEBleGFtcGxlXG4vLy8gICBmb250LXNpemU6IGxpbmVhci1pbnRlcnBvbGF0aW9uKCgzMjBweDogMThweCwgNzY4cHg6IDI2cHgpKTtcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBmdW5jdGlvbiBsaW5lYXItaW50ZXJwb2xhdGlvbigkbWFwKSB7XG4gICAgJGtleXM6IG1hcC1rZXlzKCRtYXApO1xuICAgIEBpZiAobGVuZ3RoKCRrZXlzKSAhPSAyKSB7XG4gICAgICAgIEBlcnJvciBcImxpbmVhci1pbnRlcnBvbGF0aW9uKCkgJG1hcCBtdXN0IGJlIGV4YWN0bHkgMiB2YWx1ZXNcIjtcbiAgICB9XG4gICAgLy8gVGhlIHNsb3BlXG4gICAgJG06IChtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMikpIC0gbWFwLWdldCgkbWFwLCBudGgoJGtleXMsIDEpKSkgL1xuICAgICAgICAobnRoKCRrZXlzLCAyKSAtIG50aCgka2V5cywgMSkpO1xuXG4gICAgLy8gVGhlIHktaW50ZXJjZXB0XG4gICAgJGI6IG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAxKSkgLSAkbSAqIG50aCgka2V5cywgMSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIHNpZ24gc2hvdWxkIGJlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlXG4gICAgJHNpZ246ICcrJztcbiAgICBAaWYgKCRiIDwgMCkge1xuICAgICAgICAkc2lnbjogJy0nO1xuICAgICAgICAkYjogYWJzKCRiKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuIGNhbGMoI3skbSAqIDEwMH12dyAjeyRzaWdufSAjeyRifSk7XG59XG5cbi8vLyBsaXN0LXNvcnRcbi8vLyBTb3J0IGEgU0FTUyBsaXN0XG4vLy8gQHBhcmFtICRsaXN0IC0gQSBTQVNTIGxpc3Rcbi8vLyBAcmV0dXJucyBBIHNvcnRlZCBTQVNTIGxpc3Rcbi8vLyBAcmVxdWlyZXMgZnVuY3Rpb24gbGlzdC1yZW1vdmVcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBmdW5jdGlvbiBsaXN0LXNvcnQoJGxpc3QpIHtcbiAgICAkc29ydGVkbGlzdDogKCk7XG4gICAgQHdoaWxlIGxlbmd0aCgkbGlzdCkgPiAwIHtcbiAgICAgICAgJHZhbHVlOiBudGgoJGxpc3QsIDEpO1xuICAgICAgICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgICAgICAgICBAaWYgJGl0ZW0gPCAkdmFsdWUge1xuICAgICAgICAgICAgICAgICR2YWx1ZTogJGl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJHNvcnRlZGxpc3Q6IGFwcGVuZCgkc29ydGVkbGlzdCwgJHZhbHVlLCAnc3BhY2UnKTtcbiAgICAgICAgJGxpc3Q6IGxpc3QtcmVtb3ZlKCRsaXN0LCBpbmRleCgkbGlzdCwgJHZhbHVlKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJHNvcnRlZGxpc3Q7XG59XG5cbi8vLyBtYXAtc29ydFxuLy8vIFNvcnQgbWFwIGJ5IGtleXNcbi8vLyBAcGFyYW0gJG1hcCAtIEEgU0FTUyBtYXBcbi8vLyBAcmV0dXJucyBBIFNBU1MgbWFwIHNvcnRlZCBieSBrZXlzXG4vLy8gQHJlcXVpcmVzIGZ1bmN0aW9uIGxpc3Qtc29ydFxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIG1hcC1zb3J0KCRtYXApIHtcbiAgICAka2V5czogbGlzdC1zb3J0KG1hcC1rZXlzKCRtYXApKTtcbiAgICAkc29ydGVkTWFwOiAoKTtcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAgICAgJHNvcnRlZE1hcDogbWFwLW1lcmdlKFxuICAgICAgICAgICAgJHNvcnRlZE1hcCxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAka2V5OiBtYXAtZ2V0KCRtYXAsICRrZXkpLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbiAgICBAcmV0dXJuICRzb3J0ZWRNYXA7XG59XG5cbi8vLyBsaXN0LXJlbW92ZVxuLy8vIFJlbW92ZSBhbiBpdGVtIGZyb20gYSBsaXN0XG4vLy8gQHBhcmFtICRsaXN0IC0gQSBTQVNTIGxpc3Rcbi8vLyBAcGFyYW0gJGluZGV4IC0gVGhlIGxpc3QgaW5kZXggdG8gcmVtb3ZlXG4vLy8gQHJldHVybnMgQSBTQVNTIGxpc3Rcbi8vLyBAYXV0aG9yIEpha2UgV2lsc29uIDxqYWtlLmUud2lsc29uQGdtYWlsLmNvbT5cbkBmdW5jdGlvbiBsaXN0LXJlbW92ZSgkbGlzdCwgJGluZGV4KSB7XG4gICAgJG5ld0xpc3Q6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICAgIEBpZiAkaSAhPSAkaW5kZXgge1xuICAgICAgICAgICAgJG5ld0xpc3Q6IGFwcGVuZCgkbmV3TGlzdCwgbnRoKCRsaXN0LCAkaSksICdzcGFjZScpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJG5ld0xpc3Q7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIFZhcmlhYmxlcyByZWxhdGVkIHRvIHN0aWNreSBoZWFkZXIgYW5kIHRvcGJhciBvbiBtb2JpbGUgZGV2aWNlcy5cbiAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAqIElmIHlvdSBoYXZlIG1vcmUgZWxlbWVudHMgb24gdG9wLCB5b3UgaGF2ZSB0byBpbmNsdWRlIHRoZWlyIGhlaWdodC5cbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi8qKlxuICAgICAqIFN0eWxlcyByZWxhdGVkIHRvIHN0aWNreSBoZWFkZXIgYW5kIHRvcGJhciBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gICAgICovXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDguM3JlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogNXJlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB6LWluZGV4OiA4MDA7XG4gICAgdG9wOiAwO1xuICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICogQWxzbywgYXMgYSBmYWxsYmFjayBmb3IgSUUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBzdGlja3kuXG4gICAgICAgICAgICAgICAgICovIH1cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3Blbi5uby1zY3JvbGwgLmNzLWNvbnRhaW5lci0taGVhZGVyLFxuICAgIC5jcy1jb250YWluZXItLWhlYWRlciAuaWUxMSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgIHRvcDogMDsgfSB9XG5cbi5jcy1oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiA4LjNyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiAxMXJlbTsgfSB9XG4gIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgIGhlaWdodDogNXJlbTtcbiAgICB6LWluZGV4OiAzMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMDB2dzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiA4LjNyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMTFyZW07IH0gfVxuICAuY3MtaGVhZGVyX19vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleDogMCAxIDRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMC43cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgICAgcGFkZGluZzogMC43cmVtIDAgMC43cmVtIDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLnBhZ2UtcHJpbnQgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgICAgIC5wYWdlLXByaW50IC5jcy1oZWFkZXJfX2xvZ286YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMzAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIC5jcy1oZWFkZXJfX3NlYXJjaC0tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50czsgfSB9XG4gIC5jcy1oZWFkZXJfX3VzZXItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAxIDMwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgICAgIGZsZXg6IDAgMSAyNSU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICBmaWxsOiAjODg4O1xuICAgIGhlaWdodDogMi41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kaGVhZGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXJfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kaGVhZGVyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gSG9yaXpvbnRhbCBhbGlnbiBvZiB0aGUgc2VhcmNoYm94IGlmIGl0J3MgZGlzcGxheWVkIGFzIGEgbGF5ZXIgLSBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgXG4kaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcblxuLy8gSWYgeW91IHdhbnQgdG8gY292ZXIgJ3NlYXJjaCcgaXRlbSBpbiBoZWFkZXIgYnkgc2VhcmNoYm94LCBwcm92aWRlIHByb3BlciBuZWdhdGl2ZSBtYXJnaW4gYmFzZWQgb24geW91ciBkZXNpZ25cbi8vIEl0IHdvcmtzIG9ubHkgaWYgJyRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50JyBoYXMgdmFsaWQgYnJlYWtwb2ludCBhbmQgYCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudGAgPSBmbGV4LWVuZFxuJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtOiAtNi44cmVtICFkZWZhdWx0O1xuXG4vLyBDaGFuZ2UgaW4gZXRjL3ZpZXcueG1sIGlmIG5lY2Vzc2FyeVxuJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfaXNfc3RpY2t5XG4pICFkZWZhdWx0O1xuXG4kaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlOiAwICFkZWZhdWx0O1xuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIChcbiAgICAkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUgYW5kICRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUgIT0gdHJ1ZVxuKSB7XG4gICAgLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9Y29udGFpbmVyIHtcbiAgICAgICAgJi0taGVhZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgei1pbmRleDogODAwO1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICogQWxzbywgYXMgYSBmYWxsYmFjayBmb3IgSUUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBzdGlja3kuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4ubm8tc2Nyb2xsICYsXG4gICAgICAgICAgICAgICAgLmllMTEge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31oZWFkZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkaGVhZGVyX2ZvbnQtc2l6ZTtcblxuICAgIEBpZiAoJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlKSB7XG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXJfYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlYWRlcl9ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4OiAwIDEgNHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwLjdyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50IGFuZFxuICAgICAgICAgICAgICAgICRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudCA9PVxuICAgICAgICAgICAgICAgICdmbGV4LWVuZCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50ID09ICdmbGV4LWVuZCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3VzZXItbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZmxleDogMCAxIDMwJTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDEgMjUlO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMSAyNSU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFjay1idXR0b24ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDRyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgZmlsbDogJGNvbG9yX2JvcmRlci03MDA7XG4gICAgICAgIGhlaWdodDogMi41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRlci1zZWFyY2gge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1oZWFkZXItc2VhcmNoIHtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAuY3MtaGVhZGVyLXNlYXJjaC0taW4tb2ZmY2FudmFzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSwgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgIGxlZnQ6IC0wLjVyZW07XG4gICAgICByaWdodDogLTAuNXJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgei1pbmRleDogMjA5OyB9XG4gICAgLmFjdGl2ZS1wb3B1cCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlLCAuYWN0aXZlLXBvcHVwIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjEwO1xuICAgIG1hcmdpbjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAgIC5hamF4LWxvYWRpbmcgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzICsgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuYWpheC1sb2FkaW5nIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1cyArIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24gLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDIyMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGxpbmVhcjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWxhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMC42NiwgMC4zMiwgMC45OSksIG9wYWNpdHkgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLXNlYXJjaCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tbG9hZGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC43cmVtKTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24sIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uICosIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTAuM3JlbSk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLXNlYXJjaCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMnJlbTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1zZWFyY2ggcGF0aCB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLWxvYWRlciB7XG4gICAgICBzdHJva2U6ICNmZmY7XG4gICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgaGVpZ2h0OiAzLjJyZW07IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoIDEwMHZoIC0gNXJlbSAtIDEuMjc1ZW0gLSA3cmVtKTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGhlYWRlci1zZWFyY2hfZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4vLyBPbiBpT1MgdGhlIHNlYXJjaCBpbnB1dCBoYXMgdG8gYmUgYXQgbGVhc3QgMTZweCBsYXJnZSxcbi8vIG90aGVyd2lzZSBpdCB3aWxsIG5lZWRsZXNzbHkgdHJpZ2dlciBwYWdlIHpvb20gb25jZSB0aGUgaW5wdXQgaXMgZm9jdXNlZC5cbi8vIC0gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjk4OTI2My9kaXNhYmxlLWF1dG8tem9vbS1pbi1pbnB1dC10ZXh0LXRhZy1zYWZhcmktb24taXBob25lXG4vLyAtIGh0dHBzOi8vd3d3LndhcnJlbmNoYW5kbGVyLmNvbS8yMDE5LzA0LzAyL3N0b3AtaXBob25lcy1mcm9tLXpvb21pbmctaW4tb24tZm9ybS1maWVsZHMvXG4kaGVhZGVyLXNlYXJjaF9mb250LXNpemUtbW9iaWxlOiAxLjZyZW0gIWRlZmF1bHQ7XG5cbi8vIFdpZHRoIG9mIHRoZSBzZWFyY2ggZmllbGQuIFdvcmtzIG9ubHkgZm9yIGAkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludGAgYnJlYWtwb2ludCwgaW4gb3RoZXIgY2FzZSBpdCdzIGFsd2F5cyAxMDAlXG4kaGVhZGVyLXNlYXJjaC13aWR0aC1hcy1sYXllcjogNTAlICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9jbG9zZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9idXR0b24td2lkdGg6IDVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50ICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjdyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tbG9hZGVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC4zcmVtKSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYnV0dG9uLWNvbnRhaW5lci10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41c1xuICAgICAgICAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwLFxuICAgIG9wYWNpdHkgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYm94LXNoYWRvdzogMCA0cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNykgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4uI3skbnN9aGVhZGVyLXNlYXJjaCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkaGVhZGVyLXNlYXJjaC13aWR0aC1hcy1sYXllcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWluLW9mZmNhbnZhcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgIGxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICByaWdodDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNyk7XG4gICAgICAgICAgICB0b3A6IC0wLjVyZW07XG4gICAgICAgICAgICBib3R0b206IC0wLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IC0xcmVtO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgei1pbmRleDogMjA5O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgLmFjdGl2ZS1wb3B1cCAmIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXNlYXJjaF9mb250LXNpemUtbW9iaWxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDIxMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci1zZWFyY2hfZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICArICN7JHJvb3R9X19hY3Rpb24ge1xuICAgICAgICAgICAgICAgIC5hamF4LWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24tY29udGFpbmVyLS1sb2FkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB6LWluZGV4OiAyMjA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItc2VhcmNoX2Nsb3NlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb247XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxvYWRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICdvbmx5LWljb24nXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTtcblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICB0cmFuc2Zvcm06ICRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtO1xuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sb2FkZXIge1xuICAgICAgICAgICAgc3Ryb2tlOiAkaGVhZGVyLXNlYXJjaF9pY29uLWxvYWRlci1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiAzLjJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDMuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICByaWdodDogMC41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYyhcbiAgICAgICAgICAgICAgICAxMDB2aCAtICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZX0gLSAjeyRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHR9IC1cbiAgICAgICAgICAgICAgICAgICAgN3JlbVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMSAxIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuNnJlbTtcbiAgICBoZWlnaHQ6IDIuNnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgdG9wOiAtMC41cmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICAgICAgcmlnaHQ6IC0xcmVtOyB9IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRUY0NTtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkVGNDU7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1oYXZlLWl0ZW1zIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgbWluLXdpZHRoOiAxY2g7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcXR5LWNvdW50ZXJfaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfdHlwZS1ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvbWl4aW4nO1xuXG4kaGVhZGVyLXVzZXItbmF2X2l0ZW1zOiAzICFkZWZhdWx0OyAvLyBudW1iZXIgb2YgaXRlbXMgaW4gaGVhZGVyIHVzZXIgbmF2ICh3aXRob3V0IHNlYXJjaCBpdGVtKVxuXG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoOiAyLjZyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGggIWRlZmF1bHQ7XG5cbi8vIFNldCB1cCB3aGVuIGxhYmVsIGluIGhlYWRlciB1c2VyIG5hdiBzaG91bGQgYmUgdmlzaWJsZVxuLy8gU3VwcG9ydGVkIHZhbHVlczogdHJ1ZSAoYWx3YXlzKSB8IGZhbHNlIChuZXZlcikgfCBicmVha3BvaW50XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGU6ICc+PXRhYmxldCcgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtbWFyZ2luLXRvcDogMC4zcmVtICFkZWZhdWx0O1xuXG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWNvbXBhcmUtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXdpc2hsaXN0LXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1taW5pY2FydC1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXNob3c6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG5cbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItdG9wLW9mZnNldDogLTAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LW1vYmlsZTogLTAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldDogLTFyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1kZXNrdG9wOiAtMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWhlYWRlci11c2VyLW5hdiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICRoZWFkZXItdXNlci1uYXZfaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09ZmFsc2UpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICgkaGVhZGVyLXVzZXItbmF2X2l0ZW1zICsgMSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gJGhlYWRlci11c2VyLW5hdl9pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGhlYWRlci11c2VyLW5hdl9pY29uLWhlaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGhlYWRlci11c2VyLW5hdl9sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtbWFyZ2luLXRvcDtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZSA9PXRydWUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgKCRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZSA9PWZhbHNlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTsgLy8gTGFiZWwgaXMgbm90IGRpc3BsYXllZCBvbiBzY3JlZW4gYnV0IGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGV9KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcXR5LWNvdW50ZXIge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcigpO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgdG9wOiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGUgIT0kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtdGFibGV0ICE9JGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcCApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1kZXNrdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93KSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCd3aXNobGlzdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluaWNhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnbWluaWNhcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnY29tcGFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGF2ZS1pdGVtcyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLW1pbmljYXJ0LXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHktY291bnRlci1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfc3BhbigpO1xuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vayc7XG5cbiRxdHktY291bnRlcl9mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9oZWlnaHQ6IDEuOGVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX3BhZGRpbmc6IDAgMC42cmVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2JvcmRlcjogMCAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9ib3JkZXItcmFkaXVzOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWRlZmF1bHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuQG1peGluIHF0eS1jb3VudGVyKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJHF0eS1jb3VudGVyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkcXR5LWNvdW50ZXJfcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6ICRxdHktY291bnRlcl9mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6ICRxdHktY291bnRlcl9mb250LXdlaWdodDtcbiAgICBoZWlnaHQ6ICRxdHktY291bnRlcl9oZWlnaHQ7XG4gICAgLy8gUHJldmVudCBJRTExIGFuZCBFZGdlIGJ1ZyB3aXRoIGJhY2tncm91bmQgYW5kIHJvdW5kIGJvcmRlcnNcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09ICd3aXNobGlzdCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS13aXNobGlzdC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdtaW5pY2FydCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdjb21wYXJlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3BhbigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgbWluLXdpZHRoOiAxY2g7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGxpbmUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nOiAyZW0gMDtcbiAgbWFyZ2luOiAyZW0gMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRyZW0gMCA0cmVtIDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWhlYWRsaW5lLS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzLjZlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciwgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyLCAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZlbTsgfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YWZ0ZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtOyB9XG4gIC5jcy1oZWFkbGluZV9fc3VidGl0bGUge1xuICAgIGNvbG9yOiAjNmI2YjZiO1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmUtaG9vaygpIHtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkbGluZS9taXhpbic7XG5cbi4jeyRuc31oZWFkbGluZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoKTtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogNHJlbSAwIDRyZW0gMCAhaW1wb3J0YW50O1xuICAgIFxuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlKCk7XG4gICAgfVxuXG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZS1zdWJ0aXRsZSgpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGxpbmUvaG9vayc7XG5cbiRoZWFkbGluZV90aXRsZS1jb2xvcjogJGNvbG9yLXR1cGxleC10ZXh0LW5vcm1hbCAhZGVmYXVsdDtcbi8vJGhlYWRsaW5lX3RpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplOiAzLjZlbSAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtOiB1bnNldCAhZGVmYXVsdDsgLy8gU2hvdyBmbGV4aWJsZSBkZWNvcmF0aW9uIGxpbmVzIGF0IHRoZSBzaWRlcyBvZiB0aGUgdGl0bGUuXG4kaGVhZGxpbmVfdGl0bGUtbGluZXMtZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1saW5lcy1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtc2l6ZTogMS4zZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmc6IDJlbSAwO1xuICBtYXJnaW46IDJlbSAwO1xuICBAaW5jbHVkZSBoZWFkbGluZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZSgkY29sb3I6ICRoZWFkbGluZV90aXRsZS1jb2xvciwgJGZvbnQtc2l6ZTogJGhlYWRsaW5lX3RpdGxlLWZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0OiAkaGVhZGxpbmVfdGl0bGUtZm9udC13ZWlnaHQsICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtLCAkbGluZXMtZW5hYmxlZDogJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWVuYWJsZWQsICRsaW5lcy1jb2xvcjogJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogJHRleHQtdHJhbnNmb3JtO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgQGlmICRsaW5lcy1lbmFibGVkIHtcblxuICAgICY6YWZ0ZXIsXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluZXMtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlLWhvb2soKTtcbn1cblxuQG1peGluIGhlYWRsaW5lLXN1YnRpdGxlKCRjb2xvcjogJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yLCAkZm9udC1zaXplOiAkaGVhZGxpbmVfc3VidGl0bGUtZm9udC1zaXplLCAkZm9udC13ZWlnaHQ6ICRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXdlaWdodCwgJHRleHQtdHJhbnNmb3JtOiAkaGVhZGxpbmVfc3VidGl0bGUtdGV4dC10cmFuc2Zvcm0pIHtcbiAgLy8gY29sb3I6ICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvci10dXBsZXgtdGV4dC1saWdodGVyO1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gIHRleHQtdHJhbnNmb3JtOiAkdGV4dC10cmFuc2Zvcm07XG4gIG1hcmdpbjogJGhlYWRsaW5lX3N1YnRpdGxlLW1hcmdpbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlLWhvb2soKTtcbn0iLCIubGF6eWxvYWQsXG4ubGF6eWxvYWRpbmcsXG4uc3dpcGVyLWxhenkge1xuICAgIC8vIEFkZGVkIHRvIHByZXZlbnQgbGF6eVNpemVzIGZyb20gZGVsYXlpbmcgaW1hZ2VzIGxvYWQuXG4gICAgb3BhY2l0eTogMC4wMDE7XG59XG5cbi5sYXp5bG9hZGVkLFxuLnN3aXBlci1sYXp5LWxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9uIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvLS1jZW50ZXJlZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0gKyAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtOm50aC1jaGlsZCgybikge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbTpudGgtY2hpbGQoMm4pIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjMzQ2MDk3O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzM0NjA5NztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24ge1xuICAgIHdpZHRoOiAxLjM3NWVtO1xuICAgIGhlaWdodDogMS4zNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLXdpc2hsaXN0IHBhdGgge1xuICAgICAgZmlsbDogI2U0MWYxMjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0tY29tcGFyZSBwYXRoIHtcbiAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9fY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoOiAxLjM3NWVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0OiAxLjM3NWVtICFkZWZhdWx0O1xuXG4uI3skbnN9bGlua3MtYmxvY2stYWRkdG8ge1xuICAgICRyb290OiAmO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fYWRkb24gJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICArICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkbGlua3MtYmxvY2stYWRkdG9fZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGNvbG9yX2dyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLWxvZ28ge1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLWxvZ29fX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtbG9nb19faW1hZ2UtLWRlc2t0b3Age1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5jcy1sb2dvX19pbWFnZS0tZGVza3RvcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtbG9nb19faW1hZ2UtLWRlc2t0b3Age1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uI3skbnN9bG9nbyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIEZpeGVzIGhlaWdodDogYXV0byBidWcgb24gY2hyb21lLlxuXG4gICAgICAgICYtLWRlc2t0b3Age1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tb2JpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLm1lc3NhZ2VzIHtcbiAgbWF4LXdpZHRoOiAxMzByZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBhZGRpbmc6IDEuMnJlbSAxcmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS4ycmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtIDJyZW07XG4gIHBhZGRpbmctbGVmdDogNC4zcmVtOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tc3VjY2Vzcyxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVlZmQ3O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGY0Y2E7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXdhcm5pbmcuc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1pbmZvLFxuLm1lc3NhZ2UuaW5mbyxcbi5tZXNzYWdlLm5vdGljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGY0Y2E7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWluZm8uc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1lcnJvcixcbi5tZXNzYWdlLmVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDBjZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tZXJyb3Iuc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXNpemU6IDEuNHJlbTsgfVxuXG4uY3MtbWVzc2FnZXMtLXNwYWNlLXRvcCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc3VjY2Vzcy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2FybmluZy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfbm90aWNlLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93YXJuaW5nLTIwMCAhZGVmYXVsdDtcbiRtZXNzYWdlc19lcnJvci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZXJyb3ItMjAwICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfbm90aWNlLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19lcnJvci1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbiRtZXNzYWdlc19ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJG1lc3NhZ2VzX3BhZGRpbmc6IDEuMnJlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kbWVzc2FnZXNfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJG1lc3NhZ2VfaWNvbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlX2ljb24taGVpZ2h0OiAkbWVzc2FnZV9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4ubWVzc2FnZXMge1xuICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UsXG4ubWVzc2FnZSB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgcGFkZGluZzogJG1lc3NhZ2VzX3BhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJG1lc3NhZ2VzX2JvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjJyZW0gY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJG1lc3NhZ2VfaWNvbi13aWR0aCAkbWVzc2FnZV9pY29uLWhlaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IDQuM3JlbTtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19ub3RpY2UtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19pbmZvLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1lcnJvcixcbi5tZXNzYWdlLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX2Vycm9yLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gICAgY29sb3I6ICRtZXNzYWdlc190ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uI3skbnN9bWVzc2FnZXMge1xuICAgICRyb290OiAmO1xuXG4gICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4uY3MtbWluaWNhcnQtcHJvZHVjdCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlLWNvbnRhaW5lciBpbWcge1xuICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZSB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3ZlcnZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2RldGFpbHMge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19icmFuZC13cmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19icmFuZCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUtd3JhcHBlciB7XG4gICAgZmxleC1iYXNpczogNTUlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDcwJTsgfSB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZTp2aXNpdGVkLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nIHtcbiAgICBvcmRlcjogMzsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pdGVtLXByaWNpbmctLXdpdGgtc3BlY2lhbCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nLS13aXRoLXNwZWNpYWwgLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pdGVtLXByaWNpbmctLXdpdGgtc3BlY2lhbCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UtbGFiZWwsIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cC0tcXR5IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtd3JhcHBlciArIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwLS1xdHkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWxhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXZhbHVlX192YWx1ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXZhbHVlX192YWx1ZSAucHJpY2Uge1xuICAgICAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMS4ycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24td3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eSxcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3QgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIDlyZW07XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICosXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqIHtcbiAgICBmaWxsOiAjMzQ2MDk3OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiB7XG4gICAgd2lkdGg6IDEuNnJlbTtcbiAgICBoZWlnaHQ6IDEuNnJlbTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjNzhiMGUwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24tbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM0ODQ4NDg7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM0ODQ4NDg7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvciAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtYWxpZ25tZW50OiBsZWZ0ICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZzogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy12YWx1ZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZzogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZTogZmFsc2UgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy10aXRsZS1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplOiAycmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlOiB0cnVlICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9xdHktZW5hYmxlOiB0cnVlICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDogM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zOiAnb25seS1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfW1pbmljYXJ0LXByb2R1Y3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgICZfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fb3ZlcnZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19icmFuZC13cmFwcGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtYWxpZ25tZW50O1xuICAgIH1cblxuICAgICZfX2JyYW5kIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA3MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbS1wcmljaW5nIHtcbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICYtLXdpdGgtc3BlY2lhbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX29sZC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX3NwZWNpYWwtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbm90ICRtaW5pY2FydC1wcm9kdWN0X3Nob3ctc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlLWxhYmVsLFxuICAgICZfX29wdGlvbnMtc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZVxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZWFzaW5nX3Nsb3dkb3duLTkwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICYtLXF0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXdyYXBwZXIgKyAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGUpIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAwIDlyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyxcbiAgICAgICAgICAgICN7JHJvb3R9X19hY3Rpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uLFxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgbmF0aXZlIGJyb3dzZXIncyBzY3JvbGxiYXJcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLmNzLW1pbmljYXJ0X193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19jb250ZW50LXdyYXBwZXIge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDUuMXJlbSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMS41cmVtO1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogNXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlOmZvY3VzLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmFjdGl2ZSwgLmNzLW1pbmljYXJ0X19jbG9zZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjE1cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLXRleHQge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7IH1cbiAgLmNzLW1pbmljYXJ0X190aXRsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA1LjFyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMi4xcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKCc7IH1cbiAgICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsOm5vdCguY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsLS1lbXB0eSk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gICAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkgLmNvdW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2VkaXQtbGluayAuY3MtbGlua19faWNvbiB7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAxcmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY29udGVudCB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2NvbnRlbnQgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IHVuc2V0OyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBvdmVyZmxvdy15OiBoaWRkZW47IH1cbiAgLmNzLW1pbmljYXJ0X19saXN0LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0X19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fYWN0aW9ucy13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICAgIGJveC1zaGFkb3c6IDAgLTVweCA1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMjcpO1xuICAgIG1pbi1oZWlnaHQ6IDE2LjRyZW07XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLmNzLW1pbmljYXJ0X19hY3Rpb25zLXdyYXBwZXI6aGFzKC5jcy1taW5pY2FydF9fZW1wdHkpIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0X19hY3Rpb25zOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19lbXB0eSB7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNS4xcmVtO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19zdWJ0b3RhbCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnRfX3N1YnRvdGFsLXByaWNlIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMi4xcmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXIsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiA1LjVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDBweCAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgIzM0NjA5NyAxNSUsICMzNDYwOTcgMTAwJSk7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphZnRlciB7XG4gICAgICB3aWR0aDogNHJlbTtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAtMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0ICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICByaWdodDogMWVtO1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmJlZm9yZSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQsIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydCAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICByaWdodDogMWVtO1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgIG1hcmdpbjogM3JlbSAwO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzQ2MDk3O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWxbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1zcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtaWNvbiB7XG4gICAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICAgIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHJpZ2h0OiAxZW07XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX21lc3NhZ2VzIHtcbiAgICBwYWRkaW5nOiAwIDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LW9mZmNhbnZhc19fd3JhcHBlciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3OS45OWVtKSBhbmQgKG1heC1oZWlnaHQ6IDkwMHB4KSB7XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgIG1heC13aWR0aDogNjByZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAycmVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoMiAqIDJyZW0pKSk7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmRyYXdlci0tdmlzaWJsZSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDQwcmVtICsgKDIgKiAycmVtKSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKDQwcmVtICsgKDQgKiAycmVtKSkpOyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIgLmNzLWhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICBwYWRkaW5nOiAycmVtIDAgMDsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXNwaW5uZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMTFyZW07XG4gICAgaGVpZ2h0OiAxMXJlbTtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tbG9hZGluZyAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXNwaW5uZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHotaW5kZXg6IDEwOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAtLWdhcDogMC44cmVtO1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAwLjhyZW0pO1xuICAgIC0tc2l6ZTogdmFyKC0tYmFzZS1zaXplKTtcbiAgICAvKipcbiAgICAgKiBjbGFzcy1iYXNlZCBjb2x1bW5zIGNvbmZpZyByZWxhdGVzIHRvIGNsYXNzbmFtZXMsIGxpa2UgJy0taXRlbXMtaW4tcm93LTQnXG4gICAgICogd2hpY2ggYXJlIGFkZGVkIHRvIGVsZW1lbnRzLCBkZXBlbmRpbmcgb24gdGhlIENDIENvbXBvbmVudHMgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAyIC1cbiAgICAgICAgICAgICAgICAxICpcbiAgICAgICAgICAgICAgICB2YXIoLS1nYXApIC9cbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICk7XG4gICAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4My4xMjVlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IGNhbGMoMTMwcmVtIC0gMC44cmVtKTsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tdXNlLXdob2xlLXNjcmVlbiB7XG4gICAgICAgIC0tYmFzZS1zaXplOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tdXNlLXdob2xlLXNjcmVlbiAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAxMzByZW0pIC8gMik7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIDEzMHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTMwcmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gMTMwcmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1tYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxMzByZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLW1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAxMzByZW0pIC8gMik7IH0gfVxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiA4My4xMjVlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IDEzMHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1nYXA6IDAuOHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDIpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDIpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMyAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMylcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyA0IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyA0KVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyA0IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyA0KVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA4My4wNjI1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBnYXA6IDA7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZTogY29udGFpbjtcbiAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsgfVxuICAgICAgQHN1cHBvcnRzIChzY3JvbGwtYmVoYXZpb3I6IHNtb290aCkge1xuICAgICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyB9XG4gICAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwOyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbGV4OiAwIDAgdmFyKC0tc2l6ZSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG4gICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gICAgICBtaW4td2lkdGg6IDA7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZTpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9faW1hZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1pbmljYXJ0LXdyYXBwZXIgLnVpLWRpYWxvZyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiIsIi8qKipcbiAqIEhpZGUgbmF0aXZlIGJyb3dzZXIncyBzY3JvbGxiYXJcbiAqL1xuXG5AbWl4aW4gaGlkZS1zY3JvbGxiYXIge1xuICAgIG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtbm9uZTtcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJG1pbmljYXJ0LW9mZmNhbnZhczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy13cmFwcGVyOiAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtcGFkZGluZzogMXJlbSAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1oZWlnaHQ6IDUuMXJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3I6IGZhbHNlICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfX2Nsb3NlLWluY2x1ZGUtcHNldWRvaWNvbjogdHJ1ZSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlOiAncGx1cycgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1saW5lLXdpZHRoOiAwLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nOiAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbjogJ2NlbnRlcicgIWRlZmF1bHQ7IC8vIERlZmF1bHQgdmFsdWU6IGNlbnRlci4gUG9zc2libGUgdmFsdWVzOiBjZW50ZXIgLyB0b3AgLyBib3R0b21cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0OiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbjogJ2NlbnRlcicgIWRlZmF1bHQ7IC8vIERlZmF1bHQgdmFsdWU6IGNlbnRlci4gUG9zc2libGUgdmFsdWVzOiBjZW50ZXIgLyBsZWZ0IC8gcmlnaHRcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZzogM3JlbSAhZGVmYXVsdDtcbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSBlYXNlLWluICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU6IDExcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zaG93LWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9wYWRkaW5nOiAycmVtIDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jbG9zZS1idXR0b24tY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2l0ZW0tcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2JveC1zaGFkb3c6IDAgMCAyMXB4IDAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMjcpICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfd2lkdGg6IDQwcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X2FjdGlvbnMtbWluLWhlaWdodDogMTYuNHJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2NvbnRlbnQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2FjdGlvbi13cmFwcGVyX2JveC1zaGFkb3c6IDAgLTVweCA1cHggLTVweFxuICAgIHJnYmEoJGNvbG9yX2JhY2tncm91bmQtODAwLCAwLjI3KSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbDogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgcHJvZHVjdHNfY2Fyb3VzZWwsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9pdGVtLXBlci1yb3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIHByb2R1Y3RzX2Nhcm91c2VsLFxuICAgIGpzLFxuICAgIGNvbHVtbnNDb25maWdcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9tZXNzYWdlLXR5cGU6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfbWVzc2FnZXNcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbW9iaWxlLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9kZXNrdG9wLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9uZXh0LXNsaWRlLXZpc2libGU6IDAuOHJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuLiN7JG5zfW1pbmljYXJ0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAxO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtaGVpZ2h0fSk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICBAaWYgKCRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRtaW5pY2FydF9fY2xvc2UtY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICR3aWR0aDogJG1pbmljYXJ0X19jbG9zZS13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmX19jbG9zZS10ZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbWluaWNhcnRfaXRlbS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtcy10b3RhbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoI3skcm9vdH1fX2l0ZW1zLXRvdGFsLS1lbXB0eSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgLmNvdW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTUwMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lZGl0LWxpbmsge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIC4jeyRuc31saW5rX19pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmLS1zY3JvbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X2l0ZW0tcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1pbmljYXJ0X2l0ZW0tYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93O1xuICAgICAgICAgICAgbWluLWhlaWdodDogJG1pbmljYXJ0X2FjdGlvbnMtbWluLWhlaWdodDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICAgICAmOmhhcyguY3MtbWluaWNhcnRfX2VtcHR5KSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLWhlaWdodDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMnJlbTtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tY2hlY2tvdXQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi12aWV3Y2FydCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNhcm91c2VsIHtcbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nO1xuICAgICAgICAgICAgbWFyZ2luOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nIDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSAnbGVmdCcge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gJ3JpZ2h0JyB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG5cbiAgICAgICAgQGlmICgkbWluaWNhcnRfbWVzc2FnZS10eXBlID09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRtaW5pY2FydF9tZXNzYWdlLXR5cGUgPT0gJ2ZpeGVkJykge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiA0cmVtO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLW9mZmNhbnZhc19fd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgYW5kICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWwge1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAkcm9vdDogJjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAvLyBGaXggZm9yIHRvbyB0YWxsIGNhcm91c2VsIHRpbGVzIG9uIHRhYmxldHNcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA5MDBweCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjByZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAjeyRyb290fS13cmFwcGVyLS1yZWFkeSAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IGNhbGMoI3skbWluaWNhcnRfd2lkdGh9ICsgI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICYtLWxvYWRpbmcsXG4gICAgICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGF0LXJvb3QgLmRyYXdlci0tdmlzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJyN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zaG93LWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDQgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICd0b3AnIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ2JvdHRvbScge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZV9fdGl0bGUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtc3Bpbm5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nIDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uO1xuXG4gICAgICAgICAgICAjeyRyb290fS13cmFwcGVyLS1sb2FkaW5nICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9cHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAgICAgJHJvb3Q6ICY7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNsaWRlcihcbiAgICAgICAgICAgICAgICAkY29sdW1ucy1jb25maWc6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfaXRlbS1wZXItcm93LFxuICAgICAgICAgICAgICAgICRtLWdhcDogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9tb2JpbGUtZ2FwLFxuICAgICAgICAgICAgICAgICRkLWdhcDogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9kZXNrdG9wLWdhcCxcbiAgICAgICAgICAgICAgICAkbmV4dC12aXNpYmxlOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX25leHQtc2xpZGUtdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAkcm9vdDogJHJvb3RcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgIT0gdHJ1ZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5OTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcCA+ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgMTAwJSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcH0gLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYm94LXNoYWRvdztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfd2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgdG9wOiAtMC44cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy9zdHJpcC11bml0JztcbkBpbXBvcnQgJ3V0aWxzL2hpZGUtc2Nyb2xsYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbi8vIENhbGN1bGF0ZSBjb250YWluZXIgYnJlYWtwb2ludCArIDIgKiBlZGdlIGd1dHRlciBhbmQgdHJhbnNmb3JtIHRvICdlbScgdW5pdCBmb3IgbWVkaWEgcXVlcnlcbiRjb250YWluZXJCcmVha3BvaW50UHg6IChcbiAgICAgICAgc3RyaXAtdW5pdCgkcGFnZV9tYXgtd2lkdGgpICsgMiAqIHN0cmlwLXVuaXQoJHBhZ2VfZWRnZS1ndXR0ZXIpXG4gICAgKSAqIDEwO1xuJGNvbnRhaW5lckJyZWFrcG9pbnRFbTogJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAvIDE2ICogMWVtO1xuJHRvQ29udGFpbmVyQnJlYWtwb2ludEVtOiAoJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAtIDEpIC8gMTYgKiAxZW07XG5cbkBtaXhpbiBpdC1ncmlkKCRtLWdhcDogMC44cmVtLCAkZC1nYXA6IDAuOHJlbSkge1xuICAgICRyb290OiAmO1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG5cbiAgICAmOm5vdCguI3skbnN9Y29udGFpbmVyLS11c2Utd2hvbGUtd2lkdGgpICYge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaWRlcyB7XG4gICAgICAgIC0tY29sdW1uczogMTtcblxuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IHZhcigtLWdhcCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbnMpLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAjeyRyb290fS0taXRlbXMtaW4tcm93LW1vYmlsZS0yICYge1xuICAgICAgICAgICAgLS1jb2x1bW5zOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tZ2FwKSAvIDIgKyAyKTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtb2Zmc2V0IDAuMjVzIGVhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIC0tIHN0eWxlbGludCBkb2Vzbid0IGtub3cgdGhpcyBtZWRpYSBxdWVyeSB5ZXQuICovXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLWRhdGE6IHJlZHVjZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICYtLWl0ZW1zLWluLXJvdy0jeyRpfSAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICAtLWNvbHVtbnM6ICN7JGl9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICYtLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAtLWNvbHVtbnM6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpdC1ncmlkLWhvb2soJG0tZ2FwLCAkZC1nYXApO1xufVxuXG5AbWl4aW4gc2xpZGVyLWVzc2VudGlhbHMoJHJvb3Q6ICRyb290KSB7XG4gICAgI3skcm9vdH1fX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcblxuICAgICAgICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhpZGUtc2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9fc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbGV4OiAwIDAgdmFyKC0tc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbiAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMtaG9vaygkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXIoXG4gICAgJGNvbHVtbnMtY29uZmlnOiAnY2xhc3MtYmFzZWQnLFxuICAgICRtLWdhcDogMC44cmVtLFxuICAgICRkLWdhcDogMC44cmVtLFxuICAgICRuZXh0LXZpc2libGU6IDMuMnJlbSxcbiAgICAkcm9vdDogJyYnXG4pIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiBjYWxjKCN7JHBhZ2VfbWF4LXdpZHRofSAtICN7JG5leHQtdmlzaWJsZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHJvb3R9LS11c2Utd2hvbGUtc2NyZWVuOm5vdCgjeyRyb290fS0tZnVsbC13aWR0aC1zbGlkZXIpIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAxMDAlO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAjeyRwYWdlX21heC13aWR0aH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgQGlmICRjb2x1bW5zLWNvbmZpZyA9PSAnY2xhc3MtYmFzZWQnIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy0jeyRpfSB7XG4gICAgICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGl9IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCN7JGkgLSAxfSAqIHZhcigtLWdhcCkpIC8gI3skaX0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikge1xuICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyh2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgxICogdmFyKC0tZ2FwKSAvIDIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAkYmFzZUl0ZW1zUGVyUm93OiBtYXAtZ2V0KCRjb2x1bW5zLWNvbmZpZywgJ3Bob25lJyk7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd30gLVxuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvdyAtXG4gICAgICAgICAgICAgICAgMX0gKlxuICAgICAgICAgICAgICAgIHZhcigtLWdhcCkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd31cbiAgICAgICAgKTtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRjb2x1bW5zLWNvbmZpZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAjeyRpdGVtc1BlclJvd30gLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skaXRlbXNQZXJSb3cgLSAxfSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvICN7JGl0ZW1zUGVyUm93fSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi9cbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skdG9Db250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscygkcm9vdCk7XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItaG9vaygkY29sdW1ucy1jb25maWcsICRtLWdhcCwgJGQtZ2FwLCAkbmV4dC12aXNpYmxlLCAkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXItbW9iaWxlKCRtLWdhcDogMC44cmVtLCAkbmV4dC12aXNpYmxlOiAzLjJyZW0sICRyb290OiAnJicpIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcGFnZV9lZGdlLWd1dHRlcn07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSN7JHBhZ2VfZWRnZS1ndXR0ZXJ9O1xuXG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzKCRyb290KTtcblxuICAgIEBpbmNsdWRlIHNsaWRlci1tb2JpbGUtaG9vaygkbS1nYXAsICRuZXh0LXZpc2libGUsICRyb290KTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5tb2RhbC1zbGlkZS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLXBvcHVwLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAge1xuICBtYXgtd2lkdGg6IDUwcmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWlubmVyLXdyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDcyLCA3MiwgNzIsIDAuMjgpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlLFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSBzcGFuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5ICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5ICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5ICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwO1xuICAgICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkLFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZFtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLXRpdGxlLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC10aXRsZSxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuXG4ucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXBvcHVwIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IC5tb2RhbC1zbGlkZSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDY1cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuXG4ubW9kYWxzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRtb2RhbF90aXRsZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRtb2RhbF9pbnNpZGUtYm9yZGVyczogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG1vZGFsX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtb2RhbF9zbGlkZS1tb2JpbGUtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1vZGFsX2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kbW9kYWxfYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbiRtb2RhbC1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbW9kYWxfdGV4dC1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLm1vZGFsLXNsaWRlLFxuLm1vZGFsLXBvcHVwLFxuLm1vZGFsLWN1c3RvbSB7XG4gICAgJi5jb25maXJtIHtcbiAgICAgICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vZGFsX2JhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRtb2RhbF9ib3gtc2hhZG93O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkbW9kYWxfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyOiAkbW9kYWwtYm9yZGVyO1xuICAgIH1cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICBmb250LXNpemU6ICRtb2RhbF90ZXh0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5hY3Rpb24tY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luOiAxLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2ZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJvcmRlci10b3A6ICRtb2RhbF9pbnNpZGUtYm9yZGVycztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgICAgLnByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN0eWxlIGZvciBjaGVja291dCBtb2RhbHMgaGF2ZSB2ZXJ5IGhpZ2ggc3BlY2lmaWNpdHkgaW4gbWFnZW50b1xuICAgICAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOm9ubHktY2hpbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC10aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJG1vZGFsX3RpdGxlLWZvbnQtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRtb2RhbF9pbnNpZGUtYm9yZGVycztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIHtcbiAgICAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbF9zbGlkZS1tb2JpbGUtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFsLXNsaWRlIHtcbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLWxheW91dC1jaGVja291dCB7XG4gICAgLm1vZGFsLXBvcHVwIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuXG4gICAgLm1vZGFsLXNsaWRlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjVyZW07XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tb2RhbHMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsc19vdmVybGF5LWJhY2tncm91bmQ7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDZyZW0gM3JlbTsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19oZWFkbGluZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjNDg0ODQ4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19oZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDQuM3JlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19zdWJoZWFkbGluZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogMS42NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNDg0ODQ4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19zdWJoZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1OyB9IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX190ZXh0IHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX3RleHQge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2N0YSB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTsgfVxuICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjpob3ZlciwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Zm9jdXMsIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmJlZm9yZSwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHJpZ2h0OiAtMXB4OyB9XG4gIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmJlZm9yZSB7XG4gICAgd2lkdGg6IDUuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDBweCAwcHggMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTUlLCAjMzQ2MDk3IDE1JSwgIzM0NjA5NyAxMDAlKTsgfVxuICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjphZnRlciB7XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjpob3ZlcjphZnRlciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbiwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7IH1cbiAgICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbiAqLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbi1zcGFuIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbi1pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICByaWdodDogMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJHRlYXNlcl9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kdGVhc2VyX2J1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4uI3skbnN9bmF2aWdhdGlvbi10ZWFzZXIge1xuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDZyZW0gM3JlbTtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogJGNvbG9yX21pbmVzaGFmdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9taW5lc2hhZnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0LjNyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YmhlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjY1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9taW5lc2hhZnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yX21pbmVzaGFmdDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICR0ZWFzZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0ZWFzZXJfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkdGVhc2VyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdGVhc2VyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJHRlYXNlcl9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRlYXNlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2FzcGVjdC1yYXRpbyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuJGNvbG9yLXR1cGxleC1tZW51LWJnOiAkY29sb3ItdHVwbGV4LWJnLWdyZXk7XG4kbmF2aWdhdGlvbl9mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9vdmVybGF5LXNob3c6IGZhbHNlICFkZWZhdWx0OyAvLyBCb3ggc2hhZG93IGVmZmVjdCBhcHBsaWVkIGZvciB0aGUgZmx5b3V0LlxuJG5hdmlnYXRpb25fZmx5b3V0LWJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoJGNvbG9yX2JhY2tncm91bmQtODAwLCAwLjE1KSAhZGVmYXVsdDsgLy8gRmx5b3V0IGJhY2tncm91bmQgY29sb3IuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0OyAvLyBDb2xvciBvZiB0aGUgbGluay5cbiRuYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDsgLy8gQ29sb3Igb2YgdGhlIGxpbmsgaW4gdGhlIGZseW91dCBvbiBob3Zlci5cbiRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI6ICRjb2xvcl9ibGFjayAhZGVmYXVsdDsgLy8gQm90dG9tIGJvcmRlciBjb25maWd1cmF0aW9uIGZvciBmbHlvdXQgY2F0ZWdvcnkgbGlua3MuXG4vLyRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDsgLy8gQm90dG9tIGJvcmRlciBjb25maWd1cmF0aW9uIGZvciBmbHlvdXQgY2F0ZWdvcnkgbGlua3MuXG4kbmF2aWdhdGlvbl9saW5rLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG5cbi4jeyRuc31uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJG5hdmlnYXRpb25fZm9udC1zaXplO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sdW1uczogYXV0byAxO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogMDtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWwge1xuICAgICAgICAgICAgJl8xIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmKy4jeyRuc31uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRuYXZpZ2F0aW9uX2xpc3RzLW1hcmstcGFyZW50LW9uLWhvdmVyKSB7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLmxpbmstdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLmxpbmstdGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgJi0tbWFpbiB7XG5cbiAgICAgICAgICAgICAgICAmI3skcm9vdH1fX2l0ZW0tLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgJjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMGVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNGVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICA+I3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAvLyBQcmV2ZW50cyBlbGVtZW50IGJyZWFraW5nIGJlY2F1c2Ugb2YgY29sdW1uIGxheW91dC5cbiAgICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgICAgIC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgICAgICAgICAgIC8qIElFIDExICovXG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41NWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWwge1xuICAgICAgICAgICAgJl8xIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNTVlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl8yIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstLWNhdGVnb3J5ICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2R1Y3RzLXF0eSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbj4jeyRyb290fV9fbGluay0tbGV2ZWxfMSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuMTJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMC45ZW0gMS41ZW07XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgfVxuXG4gICAgJl9fZmx5b3V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgLy9iYWNrZ3JvdW5kOiAkbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogOTkwOyAvLyBNYWtlIHN1cmUgZmx5b3V0cyBjb3ZlciBnYWxsZXJ5IG5hdi5cbiAgICAgICAgYm94LXNoYWRvdzogJG5hdmlnYXRpb25fZmx5b3V0LWJveC1zaGFkb3c7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCkgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlI0Mm1Oa1lBQUFBQVlBQWpDQjBDOEFBQUFBU1VWT1JLNUNZSUk9XCIpO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RlYXNlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdHMge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgICAgIG1pbi13aWR0aDogMjRyZW07XG5cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMWVtIDEuMDVlbSAxLjU1ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkd2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCwgJGhlaWdodDogJHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodCwgJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSwgJGF1dG9wb3NpdGlvbjogdHJ1ZSk7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzcmVtLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLCAwLjk3LCAwLjA1LCAwLjk5KTtcblxuICAgICAgICBAaWYgJG5hdmlnYXRpb25fb3ZlcmxheS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgYW5kIChncmlkLWF1dG8tZmxvdzogcm93KSB7XG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvLXJlc2V0KCRjaGlsZENsYXNzOiAjeyRuc31wcm9kdWN0LXRpbGUsICRhdXRvcG9zaXRpb246IHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10dXBsZXgtbWVudS1iZy1ncmV5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluay5lbXB0eSB7XG4gICAgaSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGlzdC5jcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8zIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBzY3JvbGxiYXItY29sb3I6ICRjb2xvci10dXBsZXgtbWVudS1iZyB0cmFuc3BhcmVudDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItdHVwbGV4LW1lbnUtYmc7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluay0tbGV2ZWxfMyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAzMy4zMyU7XG4gICAgbWluLXdpZHRoOiAzMy4zMyU7XG4gICAgdG9wOiAwO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAubXktdGl0bGVfMixcbiAgICAubXktdGl0bGVfMyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkY29sb3ItdHVwbGV4LW1lbnUtYmcgdHJhbnNwYXJlbnQ7XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItdHVwbGV4LW1lbnUtYmc7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDY2LjY2JTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAzMy4zMyU7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmNzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEge1xuICAgIHdpZHRoOiAzMy4zMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3cteTogaW5oZXJpdDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgaGVpZ2h0OiA0NDBweDtcbiAgICBzY3JvbGxiYXItY29sb3I6ICRjb2xvci10dXBsZXgtbWVudS1iZyB0cmFuc3BhcmVudDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgtbWVudS1iZztcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbiAgICB9XG59XG5cbi5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0cy5jcy1uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICAgIHdpZHRoOiAyNSU7XG4gICAgbWluLXdpZHRoOiAyNSU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAyNCU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5jcy1wcm9kdWN0LXRpbGUtLWdyaWQuY3MtcHJvZHVjdC10aWxlLS1zdGF0aWMge1xuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiAxMnB4O1xufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluay0tbGV2ZWxfMSxcbi5jcy1uYXZpZ2F0aW9uX19saW5rLS1sZXZlbF8yLFxuLmNzLW5hdmlnYXRpb25fX2xpbmstLWxldmVsXzMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluay5lbXB0eSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmNzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgIC5mYS1jaGV2cm9uLXJpZ2h0IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxufVxuXG4uY3MtbmF2aWdhdGlvbl9faXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXR1cGxleC1tZW51LWJnO1xufVxuXG4uY3MtbmF2aWdhdGlvbl9fbGluay5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jcy1uYXZpZ2F0aW9uX19pdGVtLmNzLW5hdmlnYXRpb25fX2l0ZW0tLWxldmVsXzMge1xuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLmNzLW5hdmlnYXRpb25fX2xpbmstLWxldmVsXzMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5jcy1uYXZpZ2F0aW9uX19pdGVtLS13aXRoLWZseW91dD4uY3MtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDc4XCI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi51bmRlcmxpbmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY3MtbmF2aWdhdGlvbl9faXRlbS5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluLmNzLW5hdmlnYXRpb25fX2l0ZW0tLXdpdGgtZmx5b3V0OmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmFjdGl2ZS1jYXRlZ29yeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXR1cGxleC1tZW51LWJnO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtbmV3c2xldHRlciB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtbmV3c2xldHRlciB7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMzRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9fZmllbGQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2lucHV0IHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1uZXdzbGV0dGVyX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDRyZW07IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b24sIC5jcy1uZXdzbGV0dGVyX19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uICosIC5jcy1uZXdzbGV0dGVyX19idXR0b246dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1uZXdzbGV0dGVyX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjFlbTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGlucHV0X3BhZGRpbmc6IDAuNzE1ZW0gMWVtICFkZWZhdWx0O1xuJGlucHV0X2JvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9hbHRvICFkZWZhdWx0O1xuJGlucHV0X2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX21hcmdpbjogMCAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX3BhZGRpbmc6IDAgMS41cmVtICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9mb3JtLW1heC13aWR0aDogMzRyZW0gIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9mb3JtLWhlaWdodDogNHJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24tcG9zOiAnb25seS1pY29uJyAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg6IDAuOGVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0OiAwLjhlbSAhZGVmYXVsdDtcblxuLiN7JG5zfW5ld3NsZXR0ZXIge1xuICAgIG1hcmdpbjogJG5ld3NsZXR0ZXJfbWFyZ2luO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRuZXdzbGV0dGVyX3BhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fZm9ybSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb3JtLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiAkbmV3c2xldHRlcl9mb3JtLWhlaWdodDtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24oXG4gICAgICAgICAgICAkdHlwZTogJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tY3VycmVudCA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTA1JTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0gKyAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgICAgYm9yZGVyLXRvcDogMXB4ICNkY2RjZGMgc29saWQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtLS13aXRoLWljb24gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX190ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluaywgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW46dmlzaXRlZCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICM3OGIwZTA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCB7XG4gICAgICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiBhdXRvOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIC5hY3RpdmUgPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGNvbG9yOiAjNzhiMGUwOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1heC1oZWlnaHQ6IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1iYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjogMXB4ICRjb2xvcl9hbHRvIHNvbGlkICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQ6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fVGhlbWUsXG4gICAgaGVhZGVyLFxuICAgIG1vYmlsZV9zZWFyY2hfaW5fb2ZmY2FudmFzXG4pICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQtbGlzdC1sZXZlbDEtdG9wLXBvc2l0aW9uOiAxNCUgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3IgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1hY3RpdmUtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc6IDIuNHJlbSAycmVtICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2ZzogdHJ1ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yICFkZWZhdWx0O1xuLy8gQmVsb3cgbmF2aWdhdGlvbl9pY29uIHNldHRpbmdzIGFyZSB1c2FibGUgb25seSBpZiB5b3UgdXNlIHBzZXVkb2ljb25cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1uZXh0OiAncmlnaHQnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldjogJ2xlZnQnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFycm93LWxlZnQtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvciAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21hcmdpbi1yaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLS1sZXZlbF8wLFxuICAgICAgICAmLS1jdXJyZW50LFxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbF8wLFxuICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgID4gI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpc3Qge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTA1JTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuXG4gICAgICAgICAgICAvLyBQcmV2ZW50IG92ZXJsYXBwaW5nIG9mIHNlYXJjaCBvbiBuYXZpZ2F0aW9uIGxpc3RcbiAgICAgICAgICAgIEBpZiAoJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQtbGlzdC1sZXZlbDEtdG9wLXBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLWljb24ge1xuICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXNpemU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXdlaWdodDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgIEBpZiBub3QoJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmcpIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2lnbi1pbixcbiAgICAgICAgJi0tc2lnbi1vdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yLS1ob3ZlcjtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyLjNyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGFyZW50LFxuICAgICAgICAmLS1yZXR1cm4ge1xuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGVkOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1uZXh0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGVkOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1wcmV2LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiBhdXRvXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3RpdmUge1xuICAgICAgICA+ICN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXRlZ29yeS1pY29uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXgtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21hcmdpbi1yaWdodDtcbiAgICB9XG5cbiAgICAmX19jYXRlZ29yeS1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgICAgbWF4LWhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICZfX3NlYXJjaCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZzogMCAwLjdyZW07IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbGV4OiAxIDEgMjUlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgICAgICBmbGV4OiAxIDEgMzMuMzMzMzMlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gICAgcGFkZGluZzogMCAwLjZyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTAuNXJlbTtcbiAgICB0b3A6IC0wLjVyZW07XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXIge1xuICAgICAgICByaWdodDogLTFyZW07IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFRjQ1O1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0MWYxMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRUY0NTtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWhhdmUtaXRlbXMge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IDFjaDsgfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTpob3ZlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgYmFja2dyb3VuZDogIzc4YjBlMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0OyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6YWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmZvY3VzLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzhiMGUwOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICM3OGIwZTA7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNTAlLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDAuNXJlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgICAgYm90dG9tOiAycmVtOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2JztcblxuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbjogJ2xlZnQnICFkZWZhdWx0OyAvLyAnbGVmdCcgb3IgJ3JpZ2h0J1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlcjogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgd2lkdGg6IDUuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbiA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgJixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwJSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICZfX21lbnUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDIuNnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi42cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1vZmZjYW52YXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDMwMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiA1cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICAgIHRvcDogOC4zcmVtO1xuICAgICAgICBib3R0b206IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDVyZW0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgdHJhbnNmb3JtIDFtcyAwLjNzO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtLW1pbmktY2FydCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5vdmVybGF5LS12aXNpYmxlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IH1cbiAgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDByZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1zaWRlX2xlZnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gICAgLmNzLW9mZmNhbnZhcy0tc2lkZV9yaWdodCAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDUlLCAwLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlci0tbmF2aWdhdGlvbiB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5kcmF3ZXItLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDsgfVxuICAuY3Mtb2ZmY2FudmFzX19zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDIwJTtcbiAgICBtYXJnaW4tbGVmdDogLTNyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIG1vYmlsZS5cbiRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7IC8vIE1vdmUgYmVsb3cgdGhlIG5hdmlnYXRpb24gb24gdGFibGV0LlxuJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19vdmVybGF5LWJhY2tncm91bmQ6ICRtb2RhbHNfb3ZlcmxheS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX2RyYXdlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfc3Bpbm5lci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzMDA7XG5cbiAgICAmX19kcmF3ZXIsXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhc190b3Atb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGV9KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vIFNldHRpbmcgMW1zIGJlY2F1c2UgMCBkb2Vzbid0IHNlZW0gdG8gd29yayBhbmQgd2UgbmVlZCBzZWFtbGVzcyB0cmFuc2l0aW9uIGZvciBzY2FsZSBoZXJlLlxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFtcyAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1taW5pLWNhcnQgJiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQwcmVtO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9sZWZ0ICYge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9yaWdodCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLW1lbnUtaXMtcmlnaHQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRyYXdlciB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLXBhZ2UtYm90dG9tIHtcbiAgcGFkZGluZzogMS41cmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIC5wYWdlLXByaW50IC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcGFnZS1ib3R0b21fX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2ltYWdlLS1jaXJjbGUge1xuICAgICAgd2lkdGg6IDQuN3JlbTtcbiAgICAgIGhlaWdodDogNC43cmVtO1xuICAgICAgbWluLXdpZHRoOiA0LjdyZW07XG4gICAgICBtaW4taGVpZ2h0OiA0LjdyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMC42cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX190ZXh0LS1zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDE3JTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDMzJTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgICAgZmxleC1iYXNpczogNTAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nLCAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nOmJlZm9yZSwgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudDpiZWZvcmUge1xuICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNkY2RjZGM7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28ge1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1oZXJtZXMge1xuICAgICAgd2lkdGg6IDEyLjJyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWRobCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgbWluLXdpZHRoOiA4LjZyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXBheXBhbCB7XG4gICAgICB3aWR0aDogNi4ycmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS12aXNhIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICBtaW4td2lkdGg6IDUuNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tbWFzdGVyY2FyZCB7XG4gICAgICB3aWR0aDogMy4zcmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1rbGFybmEtc29mb3J0IHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0ta2xhcm5hIHtcbiAgICAgIHdpZHRoOiA3cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1nbHMge1xuICAgICAgd2lkdGg6IDVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWdpcm9wYXkge1xuICAgICAgd2lkdGg6IDQuOHJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZWMge1xuICAgICAgd2lkdGg6IDEuOHJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tcGF5ZGlyZWt0IHtcbiAgICAgIHdpZHRoOiA2cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1sYXN0c2NocmlmdCB7XG4gICAgICB3aWR0aDogNi4xNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tdm9ya2Fzc2Uge1xuICAgICAgd2lkdGg6IDguM3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tcmVjaG51bmcge1xuICAgICAgd2lkdGg6IDYuMTVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ286bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4uY3MtY29udGFpbmVyLS1wYWdlLWJvdHRvbSB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcGFnZS1ib3R0b21fdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHBhZ2UtYm90dG9tX2RpdmlkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9cGFnZS1ib3R0b20ge1xuICAgICRyb290OiAmO1xuXG4gICAgcGFkZGluZzogMS41cmVtIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICYtLWNpcmNsZSB7XG4gICAgICAgICAgICB3aWR0aDogNC43cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA0LjdyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDQuN3JlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQuN3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgY29sb3I6ICRwYWdlLWJvdHRvbV90ZXh0LWNvbG9yO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluZm8ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDE3JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hpcHBpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMzMlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheW1lbnQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNTAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hpcHBpbmcsXG4gICAgICAgICYtLXBheW1lbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC4ycmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJvdHRvbV9kaXZpZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhlcm1lcyB7XG4gICAgICAgICAgICB3aWR0aDogMTIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRobCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA4LjZyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXlwYWwge1xuICAgICAgICAgICAgd2lkdGg6IDYuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpc2Ege1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFzdGVyY2FyZCB7XG4gICAgICAgICAgICB3aWR0aDogMy4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0ta2xhcm5hLXNvZm9ydCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rbGFybmEge1xuICAgICAgICAgICAgd2lkdGg6IDdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1nbHMge1xuICAgICAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1naXJvcGF5IHtcbiAgICAgICAgICAgIHdpZHRoOiA0LjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lYyB7XG4gICAgICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5ZGlyZWt0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFzdHNjaHJpZnQge1xuICAgICAgICAgICAgd2lkdGg6IDYuMTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS12b3JrYXNzZSB7XG4gICAgICAgICAgICB3aWR0aDogOC4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVjaG51bmcge1xuICAgICAgICAgICAgd2lkdGg6IDYuMTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXBhZ2UtYm90dG9tIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNhdGVnb3J5LXZpZXcge1xuICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmNhdGVnb3J5LXZpZXcgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY2F0ZWdvcnktdmlldyAucGFnZS10aXRsZS13cmFwcGVyOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDk3JTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMjBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgei1pbmRleDogLTE7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAgICAgLmNhdGVnb3J5LXZpZXcgLnBhZ2UtdGl0bGUtd3JhcHBlcjpiZWZvcmUge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLnBhZ2UtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTMwcmVtO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAwIDIycHg7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgLnBhZ2UtdGl0bGVfX2hlYWRsaW5lIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLnBhZ2UtdGl0bGVfX2hlYWRsaW5lIC5iYXNlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsOyB9XG4gIC5wYWdlLXRpdGxlX19zcGFuIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLmFtbG9jYXRvci1sb2NhdGlvbi12aWV3IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5hbWxvY2F0b3ItaW5kZXgtaW5kZXggLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gIHBhZGRpbmctdG9wOiA0cmVtO1xuICBtYXJnaW46IDAgMCAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmFtbG9jYXRvci1pbmRleC1pbmRleCAucGFnZS10aXRsZS13cmFwcGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDk3JTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDIwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgei1pbmRleDogLTE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gICAgICAuYW1sb2NhdG9yLWluZGV4LWluZGV4IC5wYWdlLXRpdGxlLXdyYXBwZXI6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ucGFnZS1wcm9kdWN0cy5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdHMubGlzdC5pdGVtcy5wcm9kdWN0LWl0ZW1zLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW1zIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC5wcm9kdWN0cy5saXN0Lml0ZW1zLnByb2R1Y3QtaXRlbXMuY3MtcHJvZHVjdHMtbGlzdF9faXRlbXMgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjb250ZW50OiBcIlpvYmFjeiB3acSZY2VqXCI7XG4gICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICBoZWlnaHQ6IDMzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHJpZ2h0OiAzM3B4O1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U0MWYxMjtcbiAgICBjb2xvcjogI2U0MWYxMjtcbiAgICBvcmRlcjogNDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnByb2R1Y3RzLmxpc3QuaXRlbXMucHJvZHVjdC1pdGVtcy5jcy1wcm9kdWN0cy1saXN0X19pdGVtcyAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbms6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5wcm9kdWN0cy5saXN0Lml0ZW1zLnByb2R1Y3QtaXRlbXMuY3MtcHJvZHVjdHMtbGlzdF9faXRlbXMgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZjEwNVwiO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgIHdpZHRoOiAzM3B4O1xuICAgIGhlaWdodDogMzNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2U0MWYxMjtcbiAgICBjb2xvcjogI2ZmZjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbiRwYWdlLXRpdGxlX2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0xICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfc3Bhbi1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfc3Bhbi1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfc3Bhbi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4uY2F0ZWdvcnktdmlldyB7XG4gIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcblxuICAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogOTclO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYWx0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMjBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBAbWVkaWEobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wYWdlLXRpdGxlIHtcbiAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcGFnZS10aXRsZV9mb250LXNpemUpO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06ICRwYWdlLXRpdGxlX3RleHQtdHJhbnNmb3JtO1xuICBmb250LXdlaWdodDogJHBhZ2UtdGl0bGVfZm9udC13ZWlnaHQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAwIDIycHg7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgY29sb3I6ICRjb2xvci10dXBsZXgtdGV4dC1ub3JtYWw7XG4gICZfX2hlYWRsaW5lIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIC5iYXNle1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgJl9fc3BhbiB7XG4gICAgY29sb3I6ICRwYWdlLXRpdGxlX3NwYW4tY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRwYWdlLXRpdGxlX3NwYW4tZm9udC13ZWlnaHQ7XG4gICAgcGFkZGluZzogJHBhZ2UtdGl0bGVfc3Bhbi1wYWRkaW5nO1xuICB9XG59XG5cbi5hbWxvY2F0b3ItbG9jYXRpb24tdmlldyB7XG4gIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmFtbG9jYXRvci1pbmRleC1pbmRleCB7XG4gIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiA5NyU7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9hbHRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAyMHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIEBtZWRpYShtaW4td2lkdGg6IDEzMDBweCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZy1jYXRlZ29yeS12aWV3LFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXgge1xuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnByb2R1Y3RzLmxpc3QuaXRlbXMucHJvZHVjdC1pdGVtcy5jcy1wcm9kdWN0cy1saXN0X19pdGVtcyB7XG4gIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlpvYmFjeiB3acSZY2VqXCI7XG4gICAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHJpZ2h0OiAzM3B4O1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2NyaW1zb247XG4gICAgICBjb2xvcjogJGNvbG9yX2NyaW1zb247XG4gICAgICBvcmRlcjogNDtcbiAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgIHdpZHRoOiAzM3B4O1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfY3JpbXNvbjtcbiAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgfVxuICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLnByaWNlLWJveCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlLm5vLWRpc3BsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgIHBhZGRpbmctbGVmdDogMC40ZW07IH1cbiAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbjogMCAwLjNyZW0gMC4zcmVtIDA7IH1cbiAgICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgICBib2R5XG5wXG4ucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH1cbiAgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tLFxuICAucHJpY2UtYm94IC5wcmljZS10byB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSA+IC5wcmljZS1jb250YWluZXIsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSAucHJpY2UtbGFiZWwsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZS5hY3RpdmUgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94Om5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2U6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5jcy1idW5kbGUtYm94X19hZGQgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICBtYXJnaW46IDFyZW0gMCAwOyB9XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1pbmltYWwtcHJpY2UtbGluazphZnRlciB7XG4gICAgY29sb3I6ICM3OGIwZTA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJy0nO1xuICAgIHJpZ2h0OiAtMXJlbTtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWw6IGZhbHNlO1xuXG4ucHJpY2UtYm94IHtcbiAgICAkcm9vdDogJjtcbiAgICBAaW5jbHVkZSBwcmljZUJveCgpO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luIDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvZHk6bm90KC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAucGFnZS1wcm9kdWN0LWdyb3VwZWQpXG4gICAgICAgICAgICAgICAgcDpub3QoLnByaWNlLWZyb20sIC5wcmljZS10bylcbiAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbCB7XG4gICAgICAgIC5ub3JtYWwtcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20sXG4gICAgLnByaWNlLXRvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgfVxuXG4gICAgLiN7JG5zfXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAmIHtcbiAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31idW5kbGUtYm94X19hZGQge1xuICAgIC5wcmljZS1hcy1jb25maWd1cmVkIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICB9XG59XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJy0nO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cbiIsIi8vIHByaWNlLWJveFxuLy8gVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgZm9yIHN0eWxpbmcgcHJpY2VzIGJ5IG1hcmt1cCBwcm92aWRlZCBieSBNYWdlbnRvMlxuLy9cbi8vIFNlZSBodHRwOi8vd2FycHNwaXJlLmNvbS9rc3MvIGZvciBkb2N1bWVudGF0aW9uIGd1aWRlbGluZXMuXG4vLyBWZXJzaW9uIDAuMC4xXG5AbWl4aW4gcHJpY2VCb3goKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT2xkIHByaWNlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGZvciBwcmljZXMgd2hlcmUgbm9ybWFsIHByaWNlIGlzIFwiQXMgbG93IGFzIHtwcmljZX1cIlxuICAgICAgICAmLm5vLWRpc3BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC40ZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqKlxuICogVXNpbmcgcHN1ZWRvIGVsZW1lbnRzIHRvIG1haW50YWluIGFuIGVsZW1lbnRzIGFzcGVjdCByYXRpbywgZXZlbiBhcyBpdCBzY2FsZXNcbiAqIEl0J3MgdXNpbmcgb25seSBmb3IgSUUxMSBhbmQgRWRnZSAodmVyc2lvbiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgbmF0aXZlIENTUyBncmlkKSBicm93c2Vyc1xuICogRm9yIGJyb3dzZXJzIHdoaWNoIHN1cHBvcnQgbmF0aXZlIENTUyBncmlkLCB3ZSBhcmUgdXNpbmcgbWl4aW5zIGNvbnRhaW4gYHJlc2V0YCBpbiBtaXhpbiBuYW1lXG4gKiB0byBvdmVycmlkZSBkZWZhdWx0IG1peGlucyAocHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQpXG4gKiBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvbWFpbnRhaW4tYXNwZWN0LXJhdGlvLW1peGluL1xuICogQHBhcmFtIHtudW1iZXJ9ICR3aWR0aDogd2lkdGggb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge251bWJlcn0gJGhlaWdodDogaGVpZ2h0IG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtzdHJpbmd9ICRjb250ZW50Q2xhc3M6IGNsYXNzIG9mIHRoZSBkaXJlY3QgY2hpbGQgZWxlbWVudCB0byBiZSBwb3NpdGlvbmVkIGFic29sdXRlbHk7XG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRhdXRvcG9zaXRpb246IHRlbGxzIGlmIGl0ZW0gc2hhbGwgdGFrZSAxMDAlIG9mIHBhcmVudCBzaXplIG9yIGlmIGl0IGNhbiBiZSB3aWRlci9oaWdoZXIgaWYgbmVlZGVkO1xuICovXG4vKipcbiAqIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4gKiBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC85ZmExOWQyNTQ4NjRmMzNkNGE4MFxuICogQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4gKiBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXByb2R1Y3QtdGlsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciB7XG4gICAgICB6LWluZGV4OiA1OyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tY2xpY2thYmxlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0taGlkZGVuIC5jcy1wcm9kdWN0LXRpbGVfX21haW4sXG4gIC5jcy1wcm9kdWN0LXRpbGUtLWhpZGRlbiAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQuY3MtcHJvZHVjdC10aWxlLS1zdGF0aWMgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDMzJTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZsZXgtZ3JvdzogaW5pdGlhbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbms6aG92ZXIsIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRvcDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmU6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IDc1JTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmUgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmUge1xuICAgICAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWFnZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2ltYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ltYWdlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9faW1nW3NyYyo9J3BsYWNlaG9sZGVyJ10ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMzVyZW07XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2VzLS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcy0tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZXMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDAuM3JlbTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgICBtYXJnaW46IDAgMCAwIDAuM3JlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLWhlaWdodDogMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSBhbmQgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFRjQ1O1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgyY2FkNDtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4MmNhZDQ7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgMXJlbSAwLjNyZW0gMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW06ZW1wdHkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2dhbGxlcnkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZsZXg6IDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgb3BhY2l0eTogaW5pdGlhbDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICAgIGZsZXg6IDAgMCAyNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxLjVyZW07XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZjBmMGYwOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNXJlbTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmMGYwZjA7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0b3A6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSg3MiwgNzIsIDcyLCAwLjI4KTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTNyZW0sIDApOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhciwgdHJhbnNmb3JtIDAuMzNzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIC5jcy1wcm9kdWN0LXRpbGUubm8tdHJhbnNpdGlvbixcbiAgICAuY3MtcHJvZHVjdC10aWxlLS1zdGF0aWMgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtdG9wIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtc2lkZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXJpZ2h0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtYm90dG9tIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1sZWZ0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtbGVmdCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWxlZnQge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIG9yZGVyOiAyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tZ3JpZCB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IHtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IGluaXRpYWw7XG4gICAgICByaWdodDogaW5pdGlhbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3QgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3JldmlldzplbXB0eSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLWluIHtcbiAgICAgIGNvbG9yOiAjODJjYWQ0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLW91dCB7XG4gICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2sge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zdG9jayB7XG4gICAgICBtYXJnaW46IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwtLWdyaWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwtLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwtLWxpc3Qge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsLS1saXN0LmNzLWRhaWx5ZGVhbC0tdGlsZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGJvdHRvbTogMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwIDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcXR5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXg6IDEgMSAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTsgfSB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzIHtcbiAgICBmbGV4LXNocmluazogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzIHtcbiAgICAgIG1hcmdpbjogMS41cmVtIDAgMXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDIuNnJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCAwIDAuNXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlczplbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzLS1saXN0OmVtcHR5IHtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kLS1lbXB0eSB7XG4gICAgICBoZWlnaHQ6IDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG9yZGVyOiAtMjtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgaGVpZ2h0OiAzLjhyZW07XG4gICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMgPiAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscyA+IC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kICsgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzID4gLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQtLWVtcHR5ICsgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICBoZWlnaHQ6IDUuOHJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIC8qIGRpc2FibGVkIGJlY2F1c2UgYXV0b3ByZWZpeGVyIGNhbid0IGJ1aWxkIHRoaXMgKi9cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBsaW5lLWNsYW1wOiAyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi8gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgICAgICBmb250LXNpemU6IDIuMHJlbTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDcwJTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMzNDYwOTc7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbjplbXB0eSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICBtYXJnaW46IGF1dG8gMCAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZGl0aW9uYWwtLWxpc3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1ncmlkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLFxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvOmVtcHR5IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMCAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSAocG9pbnRlcjogZmluZSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtcmVtb3ZlLWljb24taW1hZ2Uge1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgZmlsbDogIzg4ODsgfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1jb21tZW50IHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1jb21tZW50IHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAvKiAxICovIH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3Qge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3gge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICM3OGIwZTA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICAgICAgb3JkZXI6IC0xOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgICAgICAgIG9yZGVyOiAtMTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnByaWNlLWZyb20ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94Om5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveC5wcmljZS1ib3gtLXZpc2libGUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuXG4ucGFnZS1wcm9kdWN0cy5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0uZ3JvdXBlZCAucHJpY2UtYm94LFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0uZ3JvdXBlZCAucHJpY2UtYm94IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZS1wcm9kdWN0cy5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLml0ZW1zLnByb2R1Y3QtaXRlbXMgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLS1jb21wYXJlLFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZy1jYXRlZ29yeS12aWV3IC5pdGVtcy5wcm9kdWN0LWl0ZW1zIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS0td2lzaGxpc3QsXG4ucGFnZS1wcm9kdWN0cy5jYXRhbG9nLWNhdGVnb3J5LXZpZXcgLml0ZW1zLnByb2R1Y3QtaXRlbXMgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLWluLFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLml0ZW1zLnByb2R1Y3QtaXRlbXMgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLS1jb21wYXJlLFxuLnBhZ2UtcHJvZHVjdHMuY2F0YWxvZ3NlYXJjaC1yZXN1bHQtaW5kZXggLml0ZW1zLnByb2R1Y3QtaXRlbXMgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLS13aXNobGlzdCxcbi5wYWdlLXByb2R1Y3RzLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IC5pdGVtcy5wcm9kdWN0LWl0ZW1zIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrLS1pbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gIHBhZGRpbmc6IDEwMCUgMS41cmVtIDEuNXJlbTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9tbyAucHJpY2Uge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuXG4uY3MtcHJvZHVjdC10aWxlX19zdG9jay5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrLS1vdXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTQxZjEyO1xuICBwYWRkaW5nOiAxMHB4OyB9XG5cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZS0taW4tdmlld3BvcnQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDMlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAzMC4wMWVtKSB7XG4gICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZS0taW4tdmlld3BvcnQge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZS0taW4tdmlld3BvcnQge1xuICAgICAgd2lkdGg6IDI0JSAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZS0taW4tdmlld3BvcnQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWdyaWQsXG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyAuY3MtcHJvZHVjdC10aWxlX19zdG9jay5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrLS1pbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiLyoqXG4gKiBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuICogaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvOWZhMTlkMjU0ODY0ZjMzZDRhODBcbiAqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAgICAgJF86IGxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICAkcmVzdWx0OiAwO1xuICAgICRkaWdpdHM6IDA7XG4gICAgJG1pbnVzOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKSA9PSAnLSc7XG4gICAgJG51bWJlcnM6IChcbiAgICAgICAgJzAnOiAwLFxuICAgICAgICAnMSc6IDEsXG4gICAgICAgICcyJzogMixcbiAgICAgICAgJzMnOiAzLFxuICAgICAgICAnNCc6IDQsXG4gICAgICAgICc1JzogNSxcbiAgICAgICAgJzYnOiA2LFxuICAgICAgICAnNyc6IDcsXG4gICAgICAgICc4JzogOCxcbiAgICAgICAgJzknOiA5LFxuICAgICk7XG5cbiAgICBAZm9yICRpIGZyb20gaWYoJG1pbnVzLCAyLCAxKSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICAgICAgQGlmIG5vdChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIHRvLWxlbmd0aChcbiAgICAgICAgICAgICAgICBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSxcbiAgICAgICAgICAgICAgICBzdHItc2xpY2UoJHZhbHVlLCAkaSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAxO1xuICAgICAgICB9IEBlbHNlIGlmICgkZGlnaXRzID09IDApIHtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2Nzcyc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvYXNwZWN0LXJhdGlvJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmluZy10by1udW1iZXInO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBHZW5lcmFsXG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50OiAnPj1sYXB0b3AnICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWJveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfcGFkZGluZzogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2FsaWdubWVudDogY2VudGVyICFkZWZhdWx0OyAvLyBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbiRwcm9kdWN0LXRpbGUtbGlzdF9ob3Zlci1lZmZlY3RzOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9ob3Zlci1lZmZlY3RzLWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItYm94LXNoYWRvdzogJGJveC1zaGFkb3dfYmFzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9wYWRkaW5nOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXIgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7IC8vIGxlZnQgfCBjZW50ZXIgfCByaWdodFxuJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludDogJ3RhYmxldCcgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludDogJ2xhcHRvcCcgIWRlZmF1bHQ7XG5cbi8vIFByb2R1Y3QgbmFtZVxuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5OiAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ6IDEuOHJlbSAhZGVmYXVsdDsgLy8gTVVTVCBCRSBhIG51bWJlciB2YWx1ZSB3aXRoIHVuaXQsIGNhbm5vdCBiZSAnaW5oZXJpdCdcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3I6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLXZpc2l0ZWQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfcHJvZHVjdC1uYW1lLW1hcmdpbjogMCAwIDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wcm9kdWN0LW5hbWUtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWdyaWRfYWxpZ25tZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3Byb2R1Y3QtbmFtZS1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgL1xuIDJcbn1cblxuIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcHJvZHVjdC1uYW1lLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gQmFkZ2VzXG4kcHJvZHVjdC10aWxlX2JhZGdlcy16LWluZGV4OiAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy1kaXJlY3Rpb246ICd2ZXJ0aWNhbCcgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3A6IHRvcCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3A6IGxlZnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi12YWx1ZTogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlOiAwLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLWl0ZW0tbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiA0XG59XG5cbiFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy1kaXJlY3Rpb246ICdob3Jpem9udGFsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtbWFyZ2luOiAwIDAgMCAwLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWl0ZW0tbWFyZ2luOiAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4wLjNyZW0gMCAhZGVmYXVsdDtcblxuLy8gU3dhdGNoZXNcbiRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1jb250YWluZXItbWluLWhlaWdodDogMi42cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLW1hcmdpbjogMS41cmVtIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiAyXG59XG5cbiFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1ncmlkX2FsaWdubWVudCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1tYXJnaW46IDAgMCAwLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3Rfc3dhdGNoZXMtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWxpc3RfYWxpZ25tZW50ICFkZWZhdWx0O1xuXG4vLyBCcmFuZFxuJHByb2R1Y3QtdGlsZV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JyYW5kLWFsaWdubWVudDogY2VudGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9icmFuZC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYnJhbmQtb3JkZXI6IC0yICFkZWZhdWx0O1xuXG4vLyBBZGRvbnNcbiRwcm9kdWN0LXRpbGVfYWRkb25zLWJhY2tncm91bmQ6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGRvbnMtYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZG9ucy16aW5kZXgtaG92ZXI6IDUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZG9ucy1ob3Jpem9udGFsLXBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2FkZG9ucy1zaG93LWZvci1zdGF0aWMtdGlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLWhlaWdodC1vbi1ob3ZlcjogY2FsYygxMzAlICsgMTByZW0pICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLXdpZHRoOiAyNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGRvbnMtYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGRvbnMtb25lLWNvbHVtbi1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4wIDAgIWRlZmF1bHQ7XG5cbi8vIEFkZGl0aW9uYWwgc2VjdGlvblxuJHByb2R1Y3QtdGlsZS1saXN0X2FkZGl0aW9uYWwtbWFyZ2luOiBhdXRvIDAgMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZGl0aW9uYWwtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWxpc3RfYWxpZ25tZW50ICFkZWZhdWx0O1xuXG4vLyBSZXZpZXdcbiRwcm9kdWN0LXRpbGUtZ3JpZF9yZXZpZXctbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcmV2aWV3LW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4hZGVmYXVsdDtcblxuLy8gQWRkdG9cbiRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2FkZHRvLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZHRvLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuXG4vLyBRdHkgc3dpY3RoZXJcbiRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci13aWR0aDogMTFyZW0gIWRlZmF1bHQ7XG4kcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLyBBZGR0b2NhcnRcbiRwcm9kdWN0LXRpbGUtZ3JpZF9hZGR0b2NhcnQtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkdG9jYXJ0LW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gNH0gMCAwICFkZWZhdWx0O1xuXG4vLyBTdG9ja1xuJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I6ICRjb2xvcl9hcHBsZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1ncmlkX3N0b2NrLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zdG9jay1tYXJnaW46IDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gMCAwICFkZWZhdWx0O1xuXG4vLyBEYWlseSBEZWFsXG4kcHJvZHVjdC10aWxlLWdyaWRfZGFpbHlkZWFsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9kYWlseWRlYWwtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgMCAhZGVmYXVsdDtcblxuLy8gV2lzaGxpc3RcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC12aXNpYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC10ZXh0YXJlYS1oZWlnaHQ6IDVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgL1xuIDJcbn1cblxuMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1maWxsOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcblxuLy8gRGVzY3JpcHRpb25cbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXkgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4hZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1saXN0X2Rlc2NyaXB0aW9uLXRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGUtbGlzdF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIFRodW1ibmFpbFxuJHByb2R1Y3QtdGlsZS1ncmlkX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoOiAxMDAlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3RodW1ibmFpbC1ib3gtd2lkdGgtbW9iaWxlOiAjeyRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoIC9cbiAyXG59XG5cbiFkZWZhdWx0O1xuXG4vLyBQcmljZXNcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWRpcmVjdGlvbjogJ2hvcml6b250YWwnICFkZWZhdWx0OyAvLyB2ZXJ0aWNhbCBvciBob3Jpem9udGFsXG4kcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWdyaWRfYWxpZ25tZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3ByaWNlcy1kaXJlY3Rpb246ICd2ZXJ0aWNhbCcgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGUtbGlzdF9wcmljZXMtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0OiB0cnVlICFkZWZhdWx0O1xuXG4vLyBIZWxwZXJzIChkb24ndCBlZGl0KVxuJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluOiAnPj0jeyRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnR9JztcbiRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1heDogJzwjeyRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnR9JztcbiRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbjogJz49I3skcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludH0nO1xuJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWF4OiAnPCN7JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnR9JztcblxuJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2U6IGRlZXAtZ2V0KCR2aWV3LXhtbCxcbiAgICAgICAgbWVkaWEsXG4gICAgICAgIGltYWdlcyxcbiAgICAgICAgaW1hZ2UsXG4gICAgICAgIGNhdGVnb3J5X3BhZ2VfZ3JpZCk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgd2lkdGgpfSk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS1oZWlnaHQ6IHRvLW51bWJlcigje21hcC1nZXQoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UsIGhlaWdodCl9KTtcblxuLiN7JG5zfXByb2R1Y3QtdGlsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50KSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHByb2R1Y3QtdGlsZV9hZGRvbnMtemluZGV4LWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2xpY2thYmxlIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1oaWRkZW4ge1xuXG4gICAgICAgICN7JHJvb3R9X19tYWluLFxuICAgICAgICAjeyRyb290fV9fYWRkb25zIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbGlzdCB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWVmZmVjdHMpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9ob3Zlci1lZmZlY3RzLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgI3stJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyfTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIgKiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcn0pO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ncmlkIHtcbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLXNob3ctZm9yLXN0YXRpYy10aWxlID09ZmFsc2UpIHtcbiAgICAgICAgICAgICYjeyRyb290fS0tc3RhdGljIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fYWRkb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGUtZ3JpZF9wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZS1saXN0X3BhZGRpbmc7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMzMlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXIgMCAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZmxleC1ncm93OiBpbml0aWFsO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAwIDA7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBJRTExIC0gcHJldmVudHMgZnJvbSBleGNlc3NpdmUgdHJhbnNpdGlvbiBlZmZlY3RcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvLyBJRTExIGRvIG5vdCByZXNwZWN0IGNlbnRlciB2YWx1ZSB1bnRpbCBwYXJlbnQgaGFzIGZsZXgtZGlyZWN0aW9uIHNldCB0byBjb2x1bW4uXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9saW1pdC1jb250YWluZXItdG8taW1hZ2Utc2l6ZSkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogKCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLXdpZHRoIC8gMTApICogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0IC8gMTApICogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXNwZWN0IHJhdGlvIGZvciB0aWxlIHRodW1ibmFpbCBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIGltYWdlICdjYXRlZ29yeV9wYWdlX2dyaWQnIHNpemVzIGluIGV0Yy92aWV3LnhtbFxuICAgICAgICAgICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLXdpZHRoLFxuICAgICAgICAgICAgICAgICRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodCxcbiAgICAgICAgICAgICAgICAjeyRuc31wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8vIElFMTEgZG8gbm90IHJlc3BlY3QgY2VudGVyIHZhbHVlIHVudGlsIHBhcmVudCBoYXMgZmxleC1kaXJlY3Rpb24gc2V0IHRvIGNvbHVtbi5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXRpbGUtbGlzdF90aHVtYm5haWwtYm94LXdpZHRoLW1vYmlsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICZbc3JjKj0ncGxhY2Vob2xkZXInXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZXMge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogJHByb2R1Y3QtdGlsZV9iYWRnZXMtei1pbmRleDtcblxuICAgICAgICAgICAgI3skcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi1wcm9wfTogJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tdmFsdWU7XG4gICAgICAgICAgICAjeyRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi12YWx1ZTtcblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLWRpcmVjdGlvbiA9PSd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtbWFyZ2luO1xuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3AgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3AgPT0nY2VudGVyJykge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtZGlyZWN0aW9uID09J3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlKCk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnLCAnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2NvdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2Rpc2NvdW50Jyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkaXNjb3VudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ25ldycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignbmV3Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2ZyZWUtc2hpcHBpbmcnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ2ZyZWUtc2hpcHBpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2RhaWx5ZGVhbCcpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZGFpbHlkZWFsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvLyBTZXQgd2lkdGggZXhwbGljaXRseSB0byBhdm9pZCBFZGdlIGJ1Z3NcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWl0ZW0tbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oKTtcbiAgICB9XG5cbiAgICAmX19nYWxsZXJ5IHtcbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50ICE9JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZHVjdC10aWxlX2FkZG9ucy1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZHVjdC10aWxlX2FkZG9ucy1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1vbmUtY29sdW1uLW1hcmdpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBvcGFjaXR5OiBpbml0aWFsO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy13aWR0aDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRwcm9kdWN0LXRpbGUtbGlzdF9hZGRvbnMtYm9yZGVyLWxlZnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludCAhPSRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLXdoZW4tc2lkZWJhci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy1vbmUtY29sdW1uLW1hcmdpbjtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAkcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLXdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAkcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLWJvcmRlci1sZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1ib3gtc2hhZG93O1xuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcmVtLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMzNzICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy9kaXNhYmxpbmcgaG92ZXIgZWZmZWN0IG9uIGlwYWRzXG4gICAgICAgICAgICAgICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0ubm8tdHJhbnNpdGlvbixcbiAgICAgICAgICAgICN7JHJvb3R9LS1zdGF0aWMgJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy10b3Age1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIC8vIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRvbnMtc2lkZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19hZGRvbnMtcmlnaHQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwcm9kdWN0LXRpbGVfYWRkb25zLWhvcml6b250YWwtcGFkZGluZztcbiAgICAgICAgLy8gZmxleDogMSAxIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkb25zLWxlZnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcHJvZHVjdC10aWxlX2FkZG9ucy1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JldmlldyB7XG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfcmV2aWV3LW1hcmdpbjtcblxuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfcmV2aWV3LW1hcmdpbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlcjtcblxuICAgICAgICAgICAgICAgICsuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50ICE9JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBpbml0aWFsO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfcmV2aWV3LW1hcmdpbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgKy5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RvY2sge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU7XG5cbiAgICAgICAgJi0taW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXQge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9zdG9jay1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3N0b2NrLW1hcmdpbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RhaWx5ZGVhbCB7XG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5jcy1kYWlseWRlYWwtLXRpbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX2RhaWx5ZGVhbC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2RhaWx5ZGVhbC1tYXJnaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tO1xuICAgICAgICB3aWR0aDogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludCAhPSRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLXdoZW4tc2lkZWJhci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3dhdGNoZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtbWFyZ2luO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLWNvbnRhaW5lci1taW4taGVpZ2h0O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLWFsaWdubWVudCA9PSdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1tYXJnaW47XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X3N3YXRjaGVzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGUtZ3JpZF9icmFuZC1hbGlnbm1lbnQ7XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9icmFuZC1tYXJnaW47XG4gICAgICAgICAgICBvcmRlcjogJHByb2R1Y3QtdGlsZS1saXN0X2JyYW5kLW9yZGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZS1saXN0X2JyYW5kLWFsaWdubWVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kLXRleHQge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID09MSkge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ICogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQgKyAwLjI7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9wcm9kdWN0LW5hbWUtbWFyZ2luO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZS1ncmlkX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAjeyRyb290fV9fZGV0YWlscz4mIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICN7JHJvb3R9X19kZXRhaWxzPiN7JHJvb3R9X19icmFuZCsmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAjeyRyb290fV9fZGV0YWlscz4jeyRyb290fV9fYnJhbmQtLWVtcHR5KyYge1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSAqICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0ICsgMC4yICsgJHByb2R1Y3QtdGlsZV9icmFuZC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3Byb2R1Y3QtbmFtZS1tYXJnaW47XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlLWxpc3RfcHJvZHVjdC1uYW1lLWFsaWdubWVudDtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUtbGluayB7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICB9XG5cblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3IgIT0kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLWhvdmVyKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID4gMSkge1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItdmlzaXRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWNvbG9yO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbWFyZ2luO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlLWxpc3RfZGVzY3JpcHRpb24tdGV4dC1hbGlnbjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRpdGlvbmFsIHtcbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9hZGRpdGlvbmFsLW1hcmdpbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1taW4gKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG8ge1xuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX2FkZHRvLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYWRkdG8tbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1ZGN0LXRpbGVfYWRkdG8tZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0ICYsXG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvY2FydCB7XG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfYWRkdG9jYXJ0LW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYWRkdG9jYXJ0LW1hcmdpbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZS1ncmlkX3BhZGRpbmc7XG5cbiAgICAgICAgQG1lZGlhIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24taW1hZ2Uge1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tc2l6ZTtcbiAgICAgICAgZmlsbDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1maWxsO1xuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWNvbW1lbnQge1xuICAgICAgICBAaWYgbm90KCRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC12aXNpYmxlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtbWFyZ2luO1xuICAgICAgICBkaXNwbGF5OiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheTtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5ID09ZmxleCkge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtanVzdGlmeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLW1hcmdpbjtcblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWRpcmVjdGlvbiA9PSd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtZnJvbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX3ByaWNlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+LnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50ID09J3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3ByaWNlcy1tYXJnaW47XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9wcmljZXMtZGlyZWN0aW9uID09J3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4ucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1mcm9tLFxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtdG8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJpY2UtYm94LS12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIE1BUkNJTiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5wYWdlLXByb2R1Y3RzLmNhdGFsb2ctY2F0ZWdvcnktdmlldyxcbi5wYWdlLXByb2R1Y3RzLmNhdGFsb2dzZWFyY2gtcmVzdWx0LWluZGV4IHtcbiAgICAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbS5ncm91cGVkIHtcbiAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLml0ZW1zLnByb2R1Y3QtaXRlbXMge1xuXG4gICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS0tY29tcGFyZSxcbiAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLS13aXNobGlzdCxcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLWluIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICBwYWRkaW5nOiAxMDAlIDEuNXJlbSAxLjVyZW07XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucHJvbW8ge1xuICAgIC5wcmljZSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbn1cblxuLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2suY3MtcHJvZHVjdC10aWxlX19zdG9jay0tb3V0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByb2R1Y3QtdGlsZV9zdG9jay1vdXQtb2YtY29sb3I7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZS0taW4tdmlld3BvcnQge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8uY3MtcHJvZHVjdC10aWxlX19hZGR0by0tZ3JpZCxcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2suY3MtcHJvZHVjdC10aWxlX19zdG9jay0taW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMucHJvZHVjdC1pdGVtLWRldGFpbHMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLXByb2R1Y3RzLWxpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgIG1hcmdpbjogMzRweCAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCA3cHggM3B4ICNlZWU7XG4gICAgcGFkZGluZzogMCAxNXB4OyB9XG4gIC5jcy1wcm9kdWN0cy1saXN0Om5vdCguY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwpIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDsgfVxuICAgIC5jcy1wcm9kdWN0cy1saXN0Om5vdCguY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwpIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcbiRwcm9kdWN0X2xpc3QtaXRlbS1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHByb2R1Y3RfbGlzdC1jYXJvdXNlbC1icmVha3BvaW50OiAnPj10YWJsZXQnICFkZWZhdWx0O1xuXG4uI3skbnN9cHJvZHVjdHMtbGlzdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAzNHB4IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA3cHggM3B4ICNlZWU7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICB9XG5cbiAgICAmOm5vdCgjeyRyb290fS0tY2Fyb3VzZWwpIHtcbiAgICAgICAgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICAvLyBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2Fyb3VzZWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXF0eS1pbmNyZW1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuY3MtcXR5LWluY3JlbWVudC0td2lzaGxpc3Qge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgbWluLXdpZHRoOiAyY2g7XG4gICAgZmxleDogMTtcbiAgICBvcmRlcjogMjsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2RjZGNkYzsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5tYWdlLWVycm9yIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2U0MWYxMiAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvciB+IC5jcy1xdHktaW5jcmVtZW50X19idXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6ICNlNDFmMTIgIWltcG9ydGFudDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCArIC5tYWdlLWVycm9yIHtcbiAgICAgIG9yZGVyOiAzO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzO1xuICAgIG1heC13aWR0aDogM3JlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmbGV4OiAxIDEgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzICoge1xuICAgICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUgKiB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kZWNyZW1lbnQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0taW5jcmVtZW50IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpmb2N1cyAqIHtcbiAgICAgICAgICBmaWxsOiAjZGNkY2RjOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24tLWRlY3JlbWVudCB7XG4gICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgaGVpZ2h0OiAwLjNyZW07IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faWNvbi0taW5jcmVtZW50IHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kcXR5LWluY3JlbWVudC0taW4td2lzaGxpc3RfaGlkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplOiBpbmhlcml0ICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2lucHV0LS1ob3Zlci1ib3JkZXI6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9idXR0b24tcG9zaXRpb24tb2Zmc2V0OiAxcHggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24td2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1ib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2ljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDogJGNvbG9yX2JhY2tncm91bmQtNjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtaGVpZ2h0OiAwLjNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC1oZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXF0eS1pbmNyZW1lbnQge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgQGlmICRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlIHtcbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgZm9udC1zaXplOiAkcXR5LWluY3JlbWVudF9pbnB1dC1mb250LXNpemU7XG4gICAgICAgIHRleHQtYWxpZ246ICRxdHktaW5jcmVtZW50X2lucHV0LXRleHQtYWxpZ247XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBtaW4td2lkdGg6IDJjaDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3JkZXI6IDI7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAgICY6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0taG92ZXItYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICB+ICN7JHJvb3R9X19idXR0b24ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBib3JkZXItY29sb3IgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgZmlsbCAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIG1heC13aWR0aDogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLXdpZHRoO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgZmxleDogMSAxICgjeyRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aCAtIDF9KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcXR5LWluY3JlbWVudF9pY29uLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcXR5LWluY3JlbWVudF9pY29uLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjcmVtZW50IHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi5jcy1zZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIDAgMC4yZW07XG4gIG91dGxpbmU6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgLmNzLXNlbGVjdDotbW96LWZvY3VzcmluZywgLmNzLXNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAuY3Mtc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzNzhiMGUwJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgLmNzLXNlbGVjdFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmNzLXNlbGVjdCBvcHRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogaW5pdGlhbDsgfVxuIiwiQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5cbi4jeyRuc31zZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gIGJhY2tncm91bmQ6ICNkY2RjZGM7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMXJlbTsgfVxuICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjNzhiMGUwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07IH1cbiAgICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtaG92ZXIsIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1cyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzQ2MDk3OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2JhY2tncm91bmQ6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQtYWN0aXZlOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9iYWNrZ3JvdW5kO1xuICAgIGhlaWdodDogJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG4gICAgbWFyZ2luLXJpZ2h0OiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDtcblxuICAgIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgd2lkdGg6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIGJhY2tncm91bmQgMC4zcztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0oJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuXG4gICAgICAgICYudWktc3RhdGUtaG92ZXIsXG4gICAgICAgICYudWktc3RhdGUtYWN0aXZlLFxuICAgICAgICAmLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMS41cmVtIDAgMS41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtIHtcbiAgICBtYXJnaW46IDAgMC40ZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMy41ZW07XG4gICAgbWluLXdpZHRoOiA0ZW07XG4gICAgYmFja2dyb3VuZDogIzQ4NDg0ODtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgdHJhbnNmb3JtOiBza2V3KC0xOGRlZyk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbms6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzM0NjA5NzsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmaWxsOiAjZmZmO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTU1JSwgLTU1JSwgMCkgc2tldygxOGRlZyk7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXI7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTUlOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS1mYiAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDAuOWVtO1xuICAgICAgaGVpZ2h0OiAxLjhlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tdHcgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAyLjVlbTtcbiAgICAgIGhlaWdodDogMmVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS15dCAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDEuOGVtO1xuICAgICAgaGVpZ2h0OiAyLjFlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tZ3AgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIgMCAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW46IDAgMC40ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1wYWRkaW5nOiAxZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1oZWlnaHQ6IDMuNWVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstbWluLXdpZHRoOiA0ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay10cmFuc2Zvcm06ICR0cmFuc2Zvcm1fc2tldy00MDAgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbjogYWJzb2x1dGUgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01NSUsIC01NSUsIDApXG4gICAgJHRyYW5zZm9ybV9za2V3LTQwMC1yZXZlcnQgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24taG92ZXItY29sb3I6ICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLWNvbG9yICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbkBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKVxuICAgICAgICAkdHJhbnNmb3JtX3NrZXctNDAwLXJldmVydCAhZGVmYXVsdDtcbn1cblxuLiN7JG5zfXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgIGRpc3BsYXk6ICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5O1xuICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9wYWRkaW5nO1xuXG4gICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5ID09XG4gICAgICAgIGZsZXggb3JcbiAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgaW5saW5lLWZsZXhcbiAgICB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50O1xuICAgICAgICBhbGlnbi1pdGVtczogJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstZGlzcGxheTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1taW4td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzO1xuICAgICAgICB0cmFuc2Zvcm06ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLXRyYW5zZm9ybTtcbiAgICAgICAgdHJhbnNpdGlvbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstdHJhbnNpdGlvbjtcblxuICAgICAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZCAhPVxuICAgICAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZFxuICAgICAgICB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbjtcbiAgICAgICAgZmlsbDogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tY29sb3I7XG4gICAgICAgIHRyYW5zZm9ybTogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2l0aW9uO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDU1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1ob3Zlci1jb2xvciAhPSAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1jb2xvclxuICAgICAgICB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1mYiAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAwLjllbTtcbiAgICAgICAgICAgIGhlaWdodDogMS44ZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tdHcgJiB7XG4gICAgICAgICAgICB3aWR0aDogMi41ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS15dCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi4xZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZ3AgJiB7XG4gICAgICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXN0YXItcmF0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA3LjJyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1zdW1tYXJ5IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDEwcmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tcmV2aWV3IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDcuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyLS1oYWxmLWFjdGl2ZSAuc3Rhci1sZWZ0IHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLXJpZ3RoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXN1bW1hcnkgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAycmVtOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1yZXZpZXcgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gIC5jcy1zdGFyLXJhdGluZyBpbWcge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmaWxsOiAjODg4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXI6bnRoLWxhc3Qtb2YtdHlwZSgpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnM6aG92ZXIgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXN0YXItcmF0aW5nX190ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjEpOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWVtcHR5IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZSAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjIpOyB9XG5cbi5yZXZpZXctY29udHJvbC12b3RlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTEge1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTE6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yIHtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMyB7XG4gICAgei1pbmRleDogMzsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMzpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQge1xuICAgIHotaW5kZXg6IDQ7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01IHtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiAyLjZyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNnJlbTsgfSB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCBzcGFuIHtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTogJGNvbG9yX3Jldmlldy1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctY29udHJvbC1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ190ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIGZsZXgganVzdGlmaWNhdGlvbiBvZiBzdGFyc1xuJHN0YXItcmF0aW5nX2p1c3RpZnk6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIGEgc2luZ2xlIHN0YXJcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTogMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldzogMS41cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm06IDJyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIHJldmlldyBzdGFycyBjb250YWluZXJcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtZGVmYXVsdDogNy4ycmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDEwcmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXc6IDcuMnJlbSAhZGVmYXVsdDtcbi8vIFBhZGRpbmcgZm9yIHJldmlldyBmb3JtIHN0YXJzXG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtOiAwLjZyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTogMXJlbSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcGFkZGluZyBydWxlc2V0XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1kZWZhdWx0OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3cy1zdW1tYXJ5OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3LWZvcm06IDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHNjb3JlIGFuZCBjb3VudCB0ZXh0ZmllbGQgZGlzcGxheSBydWxlc2V0XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXBkcDogZmFsc2UgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGU6IGZhbHNlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBkaXNwbGF5IHJ1bGVzZXQgZm9yIFwicmV2aWV3XCIgYW5ub3RhdGlvblxuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlOiB0cnVlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyByYXRpbmcgbGFiZWwgZGV0YWlsc1xuJHN0YXItcmF0aW5nX2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC1zaXplOiAwLjc1ZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4uI3skbnN9c3Rhci1yYXRpbmcge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLWRlZmF1bHQ7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHN0YXItcmF0aW5nX2p1c3RpZnk7XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3O1xuICAgICAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhbGYtYWN0aXZlIHtcbiAgICAgICAgICAgIC5zdGFyLWxlZnQge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdGFyLXJpZ3RoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldztcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgZmlsbDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZm9ybS1zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICB9XG5cbiAgICAmX19mb3JtLXN0YXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LW9mLXR5cGUoKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnM6aG92ZXIgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRzdGFyLXJhdGluZ190ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMSk7XG5cbiAgICAgICAgJi0tY291bnQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLXRleHQtcGRwIHtcbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGUge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMik7XG4gICAgfVxufVxuXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgIC5yYXRpbmctI3skaX0ge1xuICAgICAgICAgICAgei1pbmRleDogI3skaX07XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG5bY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgZm9udC1zaXplOiAwLjQ1ZW07XG4gIG1pbi1oZWlnaHQ6IGNhbGMoIDEgKiAoMi44ZW0gKyA4cHgpKTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddOmVtcHR5IHtcbiAgICBvcGFjaXR5OiAwOyB9XG5cbi5zd2F0Y2gtb3B0IHtcbiAgZm9udC1zaXplOiAwLjllbTsgfVxuICAuc3dhdGNoLW9wdCAubWFnZS1lcnJvciB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTByZW0gKyAxLjVyZW0pOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zd2F0Y2gtb3B0IC5tYWdlLWVycm9yIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoIDExcmVtICsgMS41cmVtKTsgfSB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkIHtcbiAgICBmb250LXNpemU6IDAuOGVtOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIG1hcmdpbi10b3A6IDAuOGVtOyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB3aWR0aDogMTByZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgICAgd2lkdGg6IDExcmVtOyB9IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICc6ICc7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pOyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLXNlbGVjdGVkLW9wdGlvbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiAxICovIH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWxlZnQ6IC0wLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNGVtO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnM6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoIDEwMCUgLSAxLjVyZW0gLSAxMHJlbSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYyggMTAwJSAtIDEuNXJlbSAtIDExcmVtKTsgfSB9XG5cbi5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCB7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZDpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDMuMmVtO1xuICBoZWlnaHQ6IDIuOGVtO1xuICBwYWRkaW5nOiAwIDAuMzVlbTtcbiAgbWFyZ2luOiAxcHggY2FsYyggMXB4ICsgMC4yZW0pIGNhbGMoMXB4ICsgMC40ZW0pO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmMGYwZjA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBvcGFjaXR5IDAuM3MsIGNvbG9yIDAuM3M7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLnN3YXRjaC1vcHRpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNHB4O1xuICAgIGxlZnQ6IC00cHg7XG4gICAgcmlnaHQ6IC00cHg7XG4gICAgYm90dG9tOiAtNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzOyB9XG4gIC5zd2F0Y2gtb3B0aW9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N3YXRjaGVzL2Rpc2FibGVkLnN2ZykgcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjUpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMi44ZW0gLSAxLjJlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKDIuOGVtIC0gMS4yZW0pO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC42ZW07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQsIC5zd2F0Y2gtb3B0aW9uLmJpcy1zZWxlY3RlZCB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQ6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iaXMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDYwOTc7IH1cbiAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0OmJlZm9yZSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dDpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5pbWFnZTphZnRlciwgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5jb2xvcjphZnRlciwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuaW1hZ2U6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmNvbG9yOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjU1KSB1cmwoLi4vaW1hZ2VzL2ljb25zL3B1c2gtbm90aWZpY2F0aW9uL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKSBjZW50ZXIvNjQlIG5vLXJlcGVhdDtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQudGV4dCB7XG4gICAgcGFkZGluZy1yaWdodDogMmVtOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0OmFmdGVyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMC4zNWVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnN3YXRjaC1vcHRpb246bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pOmhvdmVyLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuc3dhdGNoLW9wdGlvbjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSk6aG92ZXI6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNzhiMGUwOyB9XG5cbi5zd2F0Y2gtaW5wdXQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqL1xuICBsZWZ0OiAtMTAwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc3dhdGNoLW1vcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMC41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMnJlbTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgI2RjZGNkYzsgfVxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIC5pbWFnZSxcbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogNzVweDsgfVxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIC5jb3JuZXI6YWZ0ZXIsXG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCAuY29ybmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICBib3JkZXItYm90dG9tOiAwLjFyZW0gc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmlnaHQ6IDAuMXJlbSBzb2xpZCAjZGNkY2RjO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoIC0wLjVyZW0gKyAwLjFyZW0pOyB9XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCB7XG4gIG1heC13aWR0aDogNDByZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIC5tYWdlLWVycm9yIHtcbiAgICBwYWRkaW5nLXRvcDogMC44cmVtOyB9XG4gIC5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbC12aXNpYmxlIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2Nzcyc7XG5cbiRzd2F0Y2hlcy0tY2xpY2thYmxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NhdGFsb2csXG4gICAgY29uZmlndXJhYmxlX3RpbGVfc3dhdGNoZXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuLy8gS2VlcCBpbiBzeW5jIHdpdGggcXVhbnRpdHkgd3JhcHBlciBpbiBidXlib3guXG4kc3dhdGNoZXNfbGFiZWwtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cDogMTFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplOiAxLjFlbSAhZGVmYXVsdDtcbi8vIEtlZXAgaW4gc3luYyB3aWR0aCBxdWFudGl0eSB3cmFwcGVyIGluIGJ1eWJveCBlbmQuXG5cbi8vIFNjZW5hcmlvIHdpdGggc3dhdGNoZXMgYmVsb3cgbGFiZWwsIHdoaWNoIGlzIDEwMCUgd2lkZVxuLy8gd2l0aCB0aGlzIHZhcmlhYmxlIHNldCB0byB0cnVlICRzd2F0Y2hlc19sYWJlbC13aWR0aFxuLy8gYW5kICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXAgd2lsbCBiZSBvdmVycmlkZW4gLSBhbHdheXMgMTAwJSB3aWR0aFxuJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWw6IGZhbHNlICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmU6IHRydWUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWd1dHRlcjogMC40ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWhlaWdodDogMi44ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXdpZHRoOiAzLjJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZzogMCAwLjM1ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ6IHJnYmEoJGNvbG9yX2JhY2tncm91bmQtNjAwLCAwLjU1KVxuICAgIHVybCguLi9pbWFnZXMvaWNvbnMvcHVzaC1ub3RpZmljYXRpb24vaWNvbl9ub3RpZmljYXRpb24tb3V0bGluZS5zdmcpXG4gICAgY2VudGVyLzY0JSBuby1yZXBlYXQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDogKFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICsgJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoXG4pICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19yb3dzLWd1dHRlcjogJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgKiAyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplOiAwLjQ1ZW0gIWRlZmF1bHQ7XG4vLyBUZWxscyBob3cgbWFueSByb3dzIG9mIHN3YXRjaGVzIHdpbGwgYmUgZGlzcGxheWVkIGluc2lkZSB0aWxlIGNvbXBvbmVudC5cbiRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93czogMSAhZGVmYXVsdDtcbi8vIENhbGN1bGF0ZXMgaG93IG11Y2ggc3BhY2Ugc2hvdWxkIGJlIHJlc2VydmVkIGluIHRpbGUgZm9yIHN3YXRjaGVzIHRvIHByZXZlbnQgY29udGVudCBmcm9tIGp1bXBpbmcuXG4kc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDogY2FsYyhcbiAgICAjeyRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93c30gKiAoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQgKlxuICAgICAgICAgICAgICAgIDJ9KVxuKSAhZGVmYXVsdDtcbiRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTogMC45ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLWZpbHRlcnNfZm9udC1zaXplOiAwLjhlbSAhZGVmYXVsdDtcblxuLy8gVG9vbHRpcHMgZm9yIHN3YXRjaGVzXG4kc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZTogMC4xcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93OiB0cnVlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14OiA1MCUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgbWVkaWEsXG4gICAgaW1hZ2VzLFxuICAgIGltYWdlLFxuICAgIHN3YXRjaF90aHVtYlxuKSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoOiAje21hcC1nZXQoXG4gICAgICAgICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhLFxuICAgICAgICB3aWR0aFxuICAgICl9ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWhlaWdodDogI3ttYXAtZ2V0KFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YSxcbiAgICAgICAgaGVpZ2h0XG4gICAgKX0gIWRlZmF1bHQ7XG5cbi8vIENvbnRhaW5lciBzZWxlY3RvciBmb3Igc3dhdGNoZXMgaW4gdGlsZSBhbmQgZGFpbHkgZGVhbCB0ZWFzZXIuXG5bY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tdGlsZV9mb250LXNpemU7XG4gICAgbWluLWhlaWdodDogJHN3YXRjaGVzLS10aWxlX21pbi1oZWlnaHQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBAaWYgJHN3YXRjaGVzLS1jbGlja2FibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG4vLyBDb250YWluZXIgc2VsZWN0b3IgZm9yIHN3YXRjaGVzIG9uIFBEUFxuLnN3YXRjaC1vcHQge1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1wZHBfZm9udC1zaXplO1xuXG4gICAgLy8gU2VsZWN0b3IgZm9yIGVycm9yIGNvbnRhaW5lciB3aGVuIHN3YXRjaGVzIGFyZSByZXF1aXJlZCBidXQgbm90IHNlbGVjdGVkLlxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygjeyRzd2F0Y2hlc19sYWJlbC13aWR0aH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9KTtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfSArICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBUaGUgb25seSBzZWxlY3RvciB3ZSBoYXZlIHRvIHRlbGwgdGhhdCBzd2F0Y2hlcyBhcmUgaW5zaWRlIGFmdGVyc2VhcmNoIG5hdmlnYXRpb24uXG4gICAgJi5zd2F0Y2gtbGF5ZXJlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzd2F0Y2hlc19yb3dzLWd1dHRlcjtcbiAgICB9XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICApO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGg7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3dhdGNoZXNfbGFiZWwtZ3V0dGVyO1xuXG4gICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXA7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOiAnO1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICtcbiAgICAgICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfTtcbiAgICBtYXJnaW4tYm90dG9tOiAtI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn07XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN3YXRjaC1vcHQgJiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRofVxuICAgICAgICApO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLSAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9IC0gI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBFbGVtZW50IGFkZGVkIGFzIGEgcGFyZW50IG9mIC5zd2F0Y2gtb3B0aW9uIGluIGZpbHRlcnMuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6ICRzd2F0Y2hlc19zd2F0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dhdGNoZXNfc3dhdGNoLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfVxuICAgICAgICApIGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9ICsgI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn0pO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjtcbiAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICsgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm9yZGVyLWNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcyxcbiAgICAgICAgY29sb3IgMC4zcztcblxuICAgIEBpZiAkc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgbGVmdDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIHJpZ2h0OiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm90dG9tOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy9zd2F0Y2hlcy9kaXNhYmxlZC5zdmcpXG4gICAgICAgICAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTYwMCwgMC41KSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAxLjJlbSk7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtIDEuMmVtKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwLjZlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQsXG4gICAgJi5iaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLW91dGxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCksXG4gICAgJltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTtcbiAgICAgICAgICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaW1hZ2UsXG4gICAgICAgICYuY29sb3Ige1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tYmFja2luc3RvY2stYmFja2dyb3VuZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLnRleHQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KCRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZywgJ3JpZ2h0Jyk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSksXG4gICAgJi5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLW91dGxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXMgZnJvbSBNYWdlbnRvLlxuICAgIC8vIEl0IHByZXZlbnRzIGtleWJvYXJkIG9uIG1vYmlsZSB0byBiZSBzaG93biBhZnRlciBzd2F0Y2ggaXMgY2xpY2tlZFxuICAgIGxlZnQ6IC0xMDAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3YXRjaC1tb3JlIHtcbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbjogJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nO1xuICAgIHRleHQtYWxpZ246ICRzd2F0Y2hlc190b29sdGlwLXRleHQtYWxpZ247XG4gICAgbWluLXdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg7XG5cbiAgICBAaWYgKFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAnbm9uZSdcbiAgICApIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZVxuICAgICAgICAgICAgc29saWRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtd2lkdGggKyAncHgnO1xuICAgICAgICBoZWlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1oZWlnaHQgKyAncHgnO1xuICAgIH1cblxuICAgIC5jb3JuZXIge1xuICAgICAgICBAaWYgKCRzd2F0Y2hlc190b29sdGlwLWFycm93LXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgbGVmdDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXg7XG4gICAgICAgICAgICAgICAgQGlmICh1bml0KCRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14KSA9PSAnJScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14fSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAgICAgICAgICAgICAnbm9uZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyfSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZSAvIDJ9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBcbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gICAgfVxuXG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxufVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbC12aXNpYmxlIHtcbiAgICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgICAgICAgQG1lZGlhIChob3Zlcjpub25lKSB7ICAgICAgICAgICAgXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXRvcGJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtdG9wYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB6LWluZGV4OiAzMDI7IH0gfVxuICAuY3MtdG9wYmFyX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDIuN3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtdG9wYmFyX193cmFwcGVyIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAuY3MtdG9wYmFyX19pdGVtIHtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0tdXNwcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgICAuY3MtdG9wYmFyX19pdGVtLS11c3BzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS1ob3RsaW5lIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4OiAxO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxhbmd1YWdlIHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtdG9wYmFyX19saXN0LFxuICAuY3MtdG9wYmFyX19pdGVtID4gdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtdG9wYmFyX19saXN0LWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy10b3BiYXJfX2xpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuM3JlbTsgfVxuICAgIC5jcy10b3BiYXJfX2xpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zcmVtOyB9XG4gICAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4ycmVtIHNvbGlkICNmZmY7IH1cbiAgLmNzLXRvcGJhcl9fdGV4dCB7XG4gICAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgLmNzLXRvcGJhcl9fbGluayB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07IH1cbiAgICAuY3MtdG9wYmFyX19saW5rLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19saW5rOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOmZvY3VzLCAuY3MtdG9wYmFyX19saW5rOmFjdGl2ZSwgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMzNDYwOTc7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLXRvcGJhcl9faG90bGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTsgfVxuICAgIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjpmb2N1cywgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmFjdGl2ZSwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQ6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5jcy1jb250YWluZXItLXRvcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHRvcGJhcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0b3BiYXJfaGVpZ2h0OiAyLjdyZW0gIWRlZmF1bHQ7XG5cbiR0b3BiYXJfaXRlbS1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHRvcGJhcl9lbmFibGUtYm9yZGVyczogdHJ1ZSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tcGhvbmVfbnVtYmVyLWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG5cbiR0b3BiYXJfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1jb2xvci1ob3ZlcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWhvdmVyLWRlY29yYXRpb246ICR0b3BiYXJfbGluay1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kY29udGFpbmVyX2JhY2tncm91bmQtdG9wLWJhcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9dG9wYmFyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJhY2tncm91bmQ6ICR0b3BiYXJfYmFja2dyb3VuZDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgei1pbmRleDogMzAyO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAkdG9wYmFyX2hlaWdodDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBjb2xvcjogJHRvcGJhcl9pdGVtLXRleHQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJi0tdXNwcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taG90bGluZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYW5ndWFnZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0LFxuICAgICZfX2l0ZW0gPiB1bCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAkdG9wYmFyX2hlaWdodDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0b3BiYXJfZW5hYmxlLWJvcmRlcnMpIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjNyZW07XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdG9wYmFyX2l0ZW0tYm9yZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBjb2xvcjogJHRvcGJhcl9pdGVtLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkY29sb3I6ICR0b3BiYXJfbGluay1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICR0b3BiYXJfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICR0b3BiYXJfbGluay1ob3Zlci1kZWNvcmF0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgfVxuXG4gICAgJl9faG90bGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGhvbmUtbnVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvclxuICAgICAgICApO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tdG9wLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg1IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5hLCBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzc4YjBlMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjMzQ2MDk3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgcGFkZGluZzogMCAwIDAgNHJlbTsgfVxuICB1bCA+IGxpLFxuICBvbCA+IGxpIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbmgxIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMSk7XG59XG5cbmgyIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMik7XG59XG5cbmgzIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMyk7XG59XG5cbmg0IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNCk7XG59XG5cbmg1IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNSk7XG59XG5cbmg2IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNik7XG59XG5cbmEge1xuICAgIEBpbmNsdWRlIGxpbmsoKTtcbn1cblxudWwsXG5vbCB7XG4gICAgQGluY2x1ZGUgbGlzdCgpO1xuXG4gICAgPiBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QtaXRlbSgpO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQsXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19vdmVybGF5LFxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQsXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgei1pbmRleDogMTsgfVxuXG4uY3MtaW1hZ2UtdGVhc2VyIFtkYXRhLXZpZGVvLXRlYXNlcl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyIFtkYXRhLXZpZGVvLXRlYXNlcl06ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWltYWdlLXRlYXNlciBbaWRePSd2aWRlby10ZWFzZXInXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiR2dF9kaXNhYmxlLXBvaW50ZXItZXZlbnRzOiB0cnVlICFkZWZhdWx0O1xuXG4uI3skbnN9aW1hZ2UtdGVhc2VyIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIHtcbiAgICAgICAgI3skcm9vdH1fX3BpY3R1cmUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyB0ZXh0LWNvbnRlbnQgYW5kIG92ZXJsYXlzIG92ZXIgdGhlIHZpZGVvXG4gICAgICAgIC8vIElmIGFkZGVkIG9uIGNvbnRlbnQtd3JhcHBlciB3aWxsIHByZXZlbnQgaW50ZXJhY3Rpb24gd2l0aCB2aWRlb1xuICAgICAgICAjeyRyb290fV9fY29udGVudCxcbiAgICAgICAgI3skcm9vdH1fX292ZXJsYXksXG4gICAgICAgICN7JHJvb3R9X19ncmFkaWVudCxcbiAgICAgICAgI3skcm9vdH1fX29wdGltaXplci1jb250YWluZXIge1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbmRlciB2aWRlbyB0ZWFzZXIgb3ZlciB0aGUgaW1hZ2VcbiAgICBbZGF0YS12aWRlby10ZWFzZXJdIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgLy8gSGlkZSB2aWRlbyBwbGFjZWhvbGRlciBpZiB2aWRlbyBpcyBub3QgcmVuZGVyZWRcbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdmlkZW8gZG9lcyBub3QgZml0IGltYWdlIGFzcGVjdCByYXRpbywgaXQgd2lsbCBjZW50ZXIgaXRzZWxmIGluIHRoZSBjb250YWluZXJcbiAgICBbaWRePSd2aWRlby10ZWFzZXInXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIEBpZiAkdnRfZGlzYWJsZS1wb2ludGVyLWV2ZW50cyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtdmlzdWFsbHktaGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuXG4uY3MtaGVhZGVyX19sb2dvIC5sb2dvIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5yb3ctemVybyB7XG4gIGhlaWdodDogdW5zZXQ7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCAudGJvZHkuY2xvc2VkID4gdHIudGllci1wcmljZTpub3QoLnJvdy16ZXJvKSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkIC50Ym9keSA+IHRyLnRpZXItcHJpY2Uucm93LXplcm8gLmVjb21tZXJjZS10dXBsZXgge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgLnRib2R5LmNsb3NlZCA+IHRyLnRpZXItcHJpY2Uucm93LXplcm8gLmVjb21tZXJjZS10dXBsZXgge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5zdW1tYXJ5LnF0eSAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkIC51bmZvbGQtdGllcnMge1xuICBjb2xvcjogcmVkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5ICoge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5zdW1tYXJ5LnF0eSAucXR5LnN1bW1hcnktd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5zdW1tYXJ5LnF0eSAucXR5LnN1bW1hcnktd3JhcHBlciAuY29udHJvbC5xdHkuc3VtbWFyeSB7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IC5xdHkuc3VtbWFyeS13cmFwcGVyIC5jb250cm9sLnF0eS5zdW1tYXJ5IC5jcy1xdHktaW5jcmVtZW50ID4gaW5wdXQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAudGFibGUuZGF0YS5ncm91cGVkIC5yb3dzLnRpZXItcHJpY2Uuc3VtbWFyeS5xdHkgLnF0eS5zdW1tYXJ5LXdyYXBwZXIgLmNvbnRyb2wucXR5LnN1bW1hcnk6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDU1cHg7XG4gICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICB0b3A6IDBweDsgfVxuICAudGFibGUuZGF0YS5ncm91cGVkIC5yb3dzLnRpZXItcHJpY2Uuc3VtbWFyeS5xdHkgLnF0eS5zdW1tYXJ5LXdyYXBwZXIgLnF0eS1zdGVwLWJydXR0byB7XG4gICAgd2lkdGg6IDcwcHg7IH1cbiAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IC5xdHkuc3VtbWFyeS13cmFwcGVyIC5icnV0dG8tbGFiZWwge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkIC5yb3dzLnRpZXItcHJpY2UgLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXggLnJvdy1icnV0dG8ge1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDEuMnJlbTsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkIC5yb3dzLnRpZXItcHJpY2UgLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXggLnJvdy1wYWN6a2Ege1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5zdW1tYXJ5LnF0eSAuY29sLml0ZW0uc3VtYXJ5LWxhYmVsIC5tYXRjaGluZy1xdHktc3RlcCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IC5jb2wuaXRlbS5zdW1hcnktbGFiZWwgLm1hdGNoaW5nLXF0eS1zdGVwLWJydXR0byB7XG4gIGNvbG9yOiByZWQ7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgPiB0Ym9keTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgPiB0Ym9keTpudGgtY2hpbGQoZXZlbikgLnF0eS5zdW1tYXJ5LXdyYXBwZXItcGxhY2Vob2xkZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kZWNyZW1lbnQsXG4udGFibGUuZGF0YS5ncm91cGVkIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWluY3JlbWVudCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlOyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgPiB0Ym9keS50aWVyLXByaWNlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkID4gdGJvZHkudGllci1wcmljZSB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCA+IHRib2R5LnRpZXItcHJpY2U6Zmlyc3QtY2hpbGQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQgPiB0Ym9keS50aWVyLXByaWNlOm5vdCguY2xvc2VkKSA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogMDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkID4gdGJvZHkudGllci1wcmljZSA+IHRyOm50aC1jaGlsZCgyKSB0ZCB7XG4gIGJvcmRlci10b3A6IDA7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCA+IHRib2R5LnRpZXItcHJpY2UgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCA+IHRib2R5LnRpZXItcHJpY2UgPiB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkID4gdGJvZHkudGllci1wcmljZSA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDsgfVxuXG4udGFibGUuZGF0YS5ncm91cGVkID4gdGhlYWQge1xuICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCB0ciA+IC5jb2wucXR5Lmlsb3NjLmVjb21tZXJjZS10dXBsZXgudGllcnMge1xuICBwYWRkaW5nOiAxNXB4OyB9XG5cbi5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZGF0YS50YWJsZS50b3RhbHMgPiB0Ym9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5kYXRhLnRhYmxlLnRvdGFscyA+IHRib2R5ID4gdHIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZGF0YS50YWJsZS50b3RhbHMgPiB0Ym9keSA+IC50b3RhbHMtdGF4IHtcbiAgb3JkZXI6IDk5OyB9XG5cbi5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZGF0YS50YWJsZS50b3RhbHMgPiB0Ym9keSA+IC5ncmFuZC50b3RhbHMuZXhjbCB7XG4gIG9yZGVyOiA5ODsgfVxuXG4uY3MtY2FydC1zdW1tYXJ5X190b3RhbHMgLmRhdGEudGFibGUudG90YWxzID4gdGJvZHkgPiAuZ3JhbmQudG90YWxzLmluY2wge1xuICBvcmRlcjogMTAwOyB9XG5cbi5jb2wuaXRlbS53YXJ0b3NjLmVjb21tZXJjZS10dXBsZXg6OmFmdGVyLFxuLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXguc3p0dWthOjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY29sLml0ZW0ud2FydG9zYy5lY29tbWVyY2UtdHVwbGV4IC5uZXR0byxcbi5jb2wuaXRlbS5lY29tbWVyY2UtdHVwbGV4LnN6dHVrYSAubmV0dG8ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgY29sb3I6ICM0ODQ4NDg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNvbC5pdGVtLndhcnRvc2MuZWNvbW1lcmNlLXR1cGxleCAubmV0dG86OmJlZm9yZSxcbiAgLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXguc3p0dWthIC5uZXR0bzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5jb2wuaXRlbS53YXJ0b3NjLmVjb21tZXJjZS10dXBsZXggLmJydXR0byxcbi5jb2wuaXRlbS5lY29tbWVyY2UtdHVwbGV4LnN6dHVrYSAuYnJ1dHRvIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC1zaXplOiAxLjJyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY29sLml0ZW0ud2FydG9zYy5lY29tbWVyY2UtdHVwbGV4IC5icnV0dG86OmJlZm9yZSxcbiAgLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXguc3p0dWthIC5icnV0dG86OmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ucm93cy5zdW1tYXJ5LnF0eSA+IC5jb2wuaXRlbS53YXJ0b3NjOjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93cy5zdW1tYXJ5LnF0eSA+IC5jb2wuaXRlbS53YXJ0b3NjIC5uZXR0byB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogIzQ4NDg0ODtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAucm93cy5zdW1tYXJ5LnF0eSA+IC5jb2wuaXRlbS53YXJ0b3NjIC5uZXR0bzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5yb3dzLnN1bW1hcnkucXR5ID4gLmNvbC5pdGVtLndhcnRvc2MgLmJydXR0byB7XG4gIGNvbG9yOiByZWQ7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5yb3dzLnN1bW1hcnkucXR5ID4gLmNvbC5pdGVtLndhcnRvc2MgLmJydXR0bzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5yZWRpbmdvLW9uLWxpbmUuY2F0YWxvZy1saW5rLXRvLXNob3AgPiBzcGFuOjpiZWZvcmUge1xuICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG5uYXYuY3MtbmF2aWdhdGlvbiA+IC5jcy1uYXZpZ2F0aW9uX19saXN0LS1tYWluID4gLmNzLW5hdmlnYXRpb25fX2l0ZW0uY3MtbmF2aWdhdGlvbl9faXRlbS0tbWFpbltkYXRhLWNhdGVnb3J5LWlkfD1cIjU1NlwiXSAuY3MtbmF2aWdhdGlvbl9fbGluay0tbWFpbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5uYXYuY3MtbmF2aWdhdGlvbiA+IC5jcy1uYXZpZ2F0aW9uX19saXN0LS1tYWluID4gLmNzLW5hdmlnYXRpb25fX2l0ZW0uY3MtbmF2aWdhdGlvbl9faXRlbS0tbWFpbltkYXRhLWNhdGVnb3J5LWlkfD1cIjU1NlwiXSAuY3MtbmF2aWdhdGlvbl9fbGluay0tbWFpbjo6YmVmb3JlIHtcbiAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3JlZC1jYXJ0LnN2Z1wiKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxOXB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gIG5hdi5jcy1uYXZpZ2F0aW9uID4gLmNzLW5hdmlnYXRpb25fX2xpc3QtLW1haW4gPiAuY3MtbmF2aWdhdGlvbl9faXRlbS5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluW2RhdGEtY2F0ZWdvcnktaWR8PVwiNTU2XCJdIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluOjpiZWZvcmU6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jb3VudGVyLnF0eS5lbXB0eS5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0LmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWVtcHR5IHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50OyB9XG5cbi5jb3VudGVyLnF0eS5lbXB0eS5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICBtaW4td2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cblxuLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscy5wcm9kdWN0LWl0ZW0tZGV0YWlscyAuZGl2VGFibGUgPiAuZGl2VGFibGVCb2R5IC5kaXZUYWJsZUNlbGwuZWNvbW1lcmNlLXR1cGxleF8gLnJlZGluZ28tb24tbGluZS5jYXRhbG9nLWxpbmstdG8tc2hvcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNlNDFmMTI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscy5wcm9kdWN0LWl0ZW0tZGV0YWlscyAuZGl2VGFibGUgPiAuZGl2VGFibGVCb2R5IC5kaXZUYWJsZUNlbGwuZWNvbW1lcmNlLXR1cGxleF8gLnJlZGluZ28tb24tbGluZS5jYXRhbG9nLWxpbmstdG8tc2hvcCAub25saW5lLXByaWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX21haW4gLmRpdlRhYmxlIC5kaXZUYWJsZUJvZHkgPiAuZGl2VGFibGVSb3c6aG92ZXIgLmRpdlRhYmxlQ2VsbCB7XG4gIGJhY2tncm91bmQ6ICNkZGRkZGQ7IH1cblxuLmNhdGVnb3J5LXR1cGxleC1pbnRlcm5hdGlvbmFsIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXItd2luZG93LXdpZHRoLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGguY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGguY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgICAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGguY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDIzcHggIWltcG9ydGFudDsgfVxuICAgIC5jYXRlZ29yeS10dXBsZXgtaW50ZXJuYXRpb25hbCAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLXdpbmRvdy13aWR0aC5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtLW1vYmlsZV9pbWFnZS10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHNwYW4uY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsgfVxuXG4uY2F0ZWdvcnkta2ltLWplc3Rlc215IC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYXRlZ29yeS1raW0tamVzdGVzbXkgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuICAuY2F0ZWdvcnkta2ltLWplc3Rlc215IC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNhdGVnb3J5LWtpbS1qZXN0ZXNteSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHNwYW4uY3MtaW1hZ2UtdGVhc2VyX19jdGEtYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OyB9XG4gIC5jYXRlZ29yeS1raW0tamVzdGVzbXkgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSBzcGFuLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OyB9XG5cbi5zaWRlYmFyLnNpZGViYXItYWRkaXRpb25hbCA+IC53aWRnZXQuYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi5zaWRlYmFyLnNpZGViYXItYWRkaXRpb25hbCAuYmxvY2stY29udGVudCAuaXRlbS5jbGVhcmZpeCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gIC5zaWRlYmFyLnNpZGViYXItYWRkaXRpb25hbCAuYmxvY2stY29udGVudCAuaXRlbS5jbGVhcmZpeCAucG9zdC1pbWFnZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLnNpZGViYXIuc2lkZWJhci1hZGRpdGlvbmFsIC5ibG9jay1jb250ZW50IC5pdGVtLmNsZWFyZml4IC5wb3N0LWl0ZW0tbGluayB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuc2lkZWJhci5zaWRlYmFyLWFkZGl0aW9uYWwgLmJsb2NrLWNvbnRlbnQgLml0ZW0uY2xlYXJmaXggLnBvc3QtaXRlbS1kYXRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5ibG9nLXBhZ2UgLnBhZ2UtdGl0bGUtd3JhcHBlciA+IC5wYWdlLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogM3JlbTsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWhvbGRlciA+IC5yZWRpbmdvLXBvc3QtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAuYmxvZy1wYWdlIC5wb3N0LWhvbGRlciA+IC5yZWRpbmdvLXBvc3QtaGVhZGVyIC5wb3N0LWNhdGVnb3J5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDI3cHg7XG4gICAgYmFja2dyb3VuZDogIzAxMDEwMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWhvbGRlciA+IC5yZWRpbmdvLXBvc3QtaGVhZGVyIC5wb3N0LWNhdGVnb3J5IC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDFweDsgfVxuICAuYmxvZy1wYWdlIC5wb3N0LWhvbGRlciA+IC5yZWRpbmdvLXBvc3QtaGVhZGVyIC5wb3N0LXRhZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWhvbGRlciA+IC5yZWRpbmdvLXBvc3QtaGVhZGVyIC5wb3N0LXRhZyAuaXRlbS5wb3N0LXRhZ3Mge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtaG9sZGVyID4gLnJlZGluZ28tcG9zdC1oZWFkZXIgLnBvc3QtdGFnIC5wb3N0LXRhZy10aXRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICBjb2xvcjogIzAxMDEwMTtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2Q1ZDZkYTtcbiAgICAgIGJvcmRlci1ib3R0b206IDBweDtcbiAgICAgIGJvcmRlci10b3A6IDBweDsgfVxuXG4ucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdC5tb2Rlcm4gLnBvc3QtY29udGFpbmVyIC5wb3N0LWluZm8gLnBvc3QtZGF0YS13cmFwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4uI3skbnN9dmlzdWFsbHktaGlkZGVuIHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG59XG5cbi5jcy1oZWFkZXJfX2xvZ28ge1xuICAgIC5sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gdG1wIGdyb3VwZWQgcGFja2FnZXMgdmlldyB0YWJsZVxuXG4udGFibGUuZGF0YS5ncm91cGVkIHtcblxuICAgIC5yb3dzLnRpZXItcHJpY2Uucm93LXplcm8ge1xuICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgIH1cblxuICAgIC50Ym9keS5jbG9zZWQ+dHIudGllci1wcmljZTpub3QoLnJvdy16ZXJvKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudGJvZHk+dHIudGllci1wcmljZS5yb3ctemVybyAuZWNvbW1lcmNlLXR1cGxleCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG5cbiAgICAudGJvZHkuY2xvc2VkPnRyLnRpZXItcHJpY2Uucm93LXplcm8gLmVjb21tZXJjZS10dXBsZXgge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIH1cblxuICAgIC5yb3dzLnRpZXItcHJpY2Uuc3VtbWFyeS5xdHkgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgLnVuZm9sZC10aWVycyB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnF0eS5zdW1tYXJ5LXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgLmNvbnRyb2wucXR5LnN1bW1hcnkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50PmlucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTVweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnF0eS1zdGVwLWJydXR0byB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDcwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5icnV0dG8tbGFiZWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yb3dzLnRpZXItcHJpY2UgLmNvbC5pdGVtLmVjb21tZXJjZS10dXBsZXggLnJvdy1icnV0dG8ge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB9XG5cbiAgICAucm93cy50aWVyLXByaWNlIC5jb2wuaXRlbS5lY29tbWVyY2UtdHVwbGV4IC5yb3ctcGFjemthIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IC5jb2wuaXRlbS5zdW1hcnktbGFiZWwgLm1hdGNoaW5nLXF0eS1zdGVwIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICAucm93cy50aWVyLXByaWNlLnN1bW1hcnkucXR5IC5jb2wuaXRlbS5zdW1hcnktbGFiZWwgLm1hdGNoaW5nLXF0eS1zdGVwLWJydXR0byB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cbn1cblxuLy8gc3R5bGUgMzEuMDUuMjAyM1xuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keTpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cbiAgICAucXR5LnN1bW1hcnktd3JhcHBlci1wbGFjZWhvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgfVxufVxuXG4udGFibGUuZGF0YS5ncm91cGVkIHtcblxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRlY3JlbWVudCxcbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1pbmNyZW1lbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG59XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQ+dGJvZHkudGllci1wcmljZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keS50aWVyLXByaWNlIHRkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4O1xufVxuXG4udGFibGUuZGF0YS5ncm91cGVkPnRib2R5LnRpZXItcHJpY2U6Zmlyc3QtY2hpbGQ+dHI+dGQ6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keS50aWVyLXByaWNlOm5vdCguY2xvc2VkKT50cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keS50aWVyLXByaWNlPnRyOm50aC1jaGlsZCgyKSB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keS50aWVyLXByaWNlPnRyPnRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZD50Ym9keS50aWVyLXByaWNlPnRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQ+dGJvZHkudGllci1wcmljZT50cj50ZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQ+dGhlYWQge1xuICAgIGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnRhYmxlLmRhdGEuZ3JvdXBlZCB0cj4uY29sLnF0eS5pbG9zYy5lY29tbWVyY2UtdHVwbGV4LnRpZXJzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4uY3MtY2FydC1zdW1tYXJ5X190b3RhbHMgLmRhdGEudGFibGUudG90YWxzPnRib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZGF0YS50YWJsZS50b3RhbHM+dGJvZHk+dHIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZGF0YS50YWJsZS50b3RhbHM+dGJvZHk+LnRvdGFscy10YXgge1xuICAgIG9yZGVyOiA5OTtcbn1cblxuLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5kYXRhLnRhYmxlLnRvdGFscz50Ym9keT4uZ3JhbmQudG90YWxzLmV4Y2wge1xuICAgIG9yZGVyOiA5ODtcbn1cblxuLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5kYXRhLnRhYmxlLnRvdGFscz50Ym9keT4uZ3JhbmQudG90YWxzLmluY2wge1xuICAgIG9yZGVyOiAxMDA7XG59XG5cbi5jb2wuaXRlbS53YXJ0b3NjLmVjb21tZXJjZS10dXBsZXgsXG4uY29sLml0ZW0uZWNvbW1lcmNlLXR1cGxleC5zenR1a2Ege1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5uZXR0byB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5icnV0dG8ge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucm93cy5zdW1tYXJ5LnF0eT4uY29sLml0ZW0ud2FydG9zYyB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm5ldHRvIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJydXR0byB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucmVkaW5nby1vbi1saW5lLmNhdGFsb2ctbGluay10by1zaG9wPnNwYW46OmJlZm9yZSB7XG4gICAgd2lkdGg6IDIwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbn1cblxuLy8gbGFiZWwgbmEgbWVudSwgc2tsZXAgaW50ZXJuZXRvd3lcbm5hdi5jcy1uYXZpZ2F0aW9uPi5jcy1uYXZpZ2F0aW9uX19saXN0LS1tYWluPi5jcy1uYXZpZ2F0aW9uX19pdGVtLmNzLW5hdmlnYXRpb25fX2l0ZW0tLW1haW5bZGF0YS1jYXRlZ29yeS1pZHw9XCI1NTZcIl0ge1xuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcmVkLWNhcnQuc3ZnXCIpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE5cHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gYWx3YXlzIHNob3cgY2FydCBxdHkgY291bnRlciBsYWJlbFxuXG4uY291bnRlci5xdHkuZW1wdHkuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1lbXB0eSB7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuXG4uY291bnRlci5xdHkuZW1wdHkuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG5cbi8vIGNhdGVnb3J5IG9ubGluZSBwcmljZSBidXR0b25cbi5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMucHJvZHVjdC1pdGVtLWRldGFpbHMgLmRpdlRhYmxlPi5kaXZUYWJsZUJvZHkgLmRpdlRhYmxlQ2VsbC5lY29tbWVyY2UtdHVwbGV4XyAucmVkaW5nby1vbi1saW5lLmNhdGFsb2ctbGluay10by1zaG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2U0MWYxMjtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIC5vbmxpbmUtcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX19tYWluIC5kaXZUYWJsZSAuZGl2VGFibGVCb2R5Pi5kaXZUYWJsZVJvdzpob3ZlciB7XG4gICAgLmRpdlRhYmxlQ2VsbCB7XG4gICAgICAgIC8vIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZGRkZGRkO1xuICAgIH1cbn1cblxuXG4vLyB0dXBsZXggaW50ZXJuYXRpb25hbCBzdHlsZXNcbi5jYXRlZ29yeS10dXBsZXgtaW50ZXJuYXRpb25hbCB7XG4gICAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGguY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy0tbW9iaWxlX2ltYWdlLXRleHQge1xuICAgICAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgcC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHNwYW4uY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8ga2ltIGplc3RlxZtteVxuLmNhdGVnb3J5LWtpbS1qZXN0ZXNteSB7XG4gICAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCBwLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCB7XG4gICAgICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWltYWdlLXRlYXNlcl9fY3RhIHNwYW4uY3MtaW1hZ2UtdGVhc2VyX19jdGEtYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSBzcGFuLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLy8gYmxvZyBzdHlsZXNcbi5zaWRlYmFyLnNpZGViYXItYWRkaXRpb25hbD4ud2lkZ2V0LmJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uc2lkZWJhci5zaWRlYmFyLWFkZGl0aW9uYWwgLmJsb2NrLWNvbnRlbnQgLml0ZW0uY2xlYXJmaXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcblxuICAgIC5wb3N0LWltYWdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAucG9zdC1pdGVtLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5wb3N0LWl0ZW0tZGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmxvZy1wYWdlIC5wYWdlLXRpdGxlLXdyYXBwZXI+LnBhZ2UtdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG59XG5cbi5ibG9nLXBhZ2UgLnBvc3QtaG9sZGVyPi5yZWRpbmdvLXBvc3QtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcblxuICAgIC5wb3N0LWNhdGVnb3J5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjVweDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAyN3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDEwMTAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LXRhZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIC5pdGVtLnBvc3QtdGFncyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc3QtdGFnLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAjMDEwMTAxO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDVkNmRhO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdC5tb2Rlcm4gLnBvc3QtY29udGFpbmVyIC5wb3N0LWluZm8gLnBvc3QtZGF0YS13cmFwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4ucGFnZS1sYXlvdXQtbGFuZGluZy1jYXRlZ29yeSAuY3MtcGFnZS1jYXRlZ29yeSB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbi5wYWdlLWxheW91dC1sYW5kaW5nLWNhdGVnb3J5IC5jYXRlZ29yeS12aWV3IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5wYWdlLWxheW91dC1sYW5kaW5nLWNhdGVnb3J5IC50dXBsZXgtbGVuZGluZy10b3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB6LWluZGV4OiAxOyB9XG4gIC5wYWdlLWxheW91dC1sYW5kaW5nLWNhdGVnb3J5IC50dXBsZXgtbGVuZGluZy10b3AgLnBhZ2UtdGl0bGVfX2hlYWRsaW5lLmNzLXBhZ2UtdGl0bGVfX2hlYWRsaW5lIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAucGFnZS1sYXlvdXQtbGFuZGluZy1jYXRlZ29yeSAudHVwbGV4LWxlbmRpbmctdG9wIC5jcy1jbXMtYmxvY2suY3MtcGFnZS1jYXRlZ29yeV9fZGVzY3JpcHRpb24gaDIge1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi5wYWdlLWxheW91dC1sYW5kaW5nLWNhdGVnb3J5IC5jYXRlZ29yeS1pbWFnZSB7XG4gIG1hcmdpbjogMDsgfVxuICAucGFnZS1sYXlvdXQtbGFuZGluZy1jYXRlZ29yeSAuY2F0ZWdvcnktaW1hZ2UgLmltYWdlIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC42KTtcbiAgICB3aWR0aDogMTAwdnc7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xyXG5cclxuLnBhZ2UtbGF5b3V0LWxhbmRpbmctY2F0ZWdvcnkge1xyXG4gIC5jcy1wYWdlLWNhdGVnb3J5IHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxuXHJcbiAgLmNhdGVnb3J5LXZpZXcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgLnR1cGxleC1sZW5kaW5nLXRvcCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgei1pbmRleDogMTtcclxuXHJcbiAgICAucGFnZS10aXRsZV9faGVhZGxpbmUuY3MtcGFnZS10aXRsZV9faGVhZGxpbmUge1xyXG4gICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jcy1jbXMtYmxvY2suY3MtcGFnZS1jYXRlZ29yeV9fZGVzY3JpcHRpb24ge1xyXG4gICAgICBoMiB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhdGVnb3J5LWltYWdlIHtcclxuICAgIG1hcmdpbjogMDtcclxuXHJcbiAgICAuaW1hZ2Uge1xyXG4gICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC42KTtcclxuICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3MtY21zLWJsb2NrIC5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5jcy1jbXMtYmxvY2sgLmRldGFpbHMge1xuICBwYWRkaW5nOiAzcmVtIDJyZW0gMCAzcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG5cbi5jcy1jbXMtYmxvY2sgLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICB3aWR0aDogNDklOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWNtcy1ibG9jayAuY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtY21zLWJsb2NrIC5jb2x1bW4gdWwge1xuICAgIHBhZGRpbmc6IDAgMCAwIDJyZW07IH1cblxuLml0ZW0udGl0bGUge1xuICB3aWR0aDogMTAwJTsgfVxuICAuaXRlbS50aXRsZSAuc3dpdGNoIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICM3OGIwZTAgIWltcG9ydGFudDsgfVxuXG4uaXRlbS50aXRsZTpob3ZlciAuc3dpdGNoIHtcbiAgY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbi5pdGVtLnRpdGxlLmFjdGl2ZSAuc3dpdGNoIHtcbiAgY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC50YWIzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgLnRhYjMgLml0ZW0udGl0bGUge1xuICAgICAgd2lkdGg6IDMzJSAhaW1wb3J0YW50OyB9XG4gIC50YWI0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgLnRhYjQgLml0ZW0udGl0bGUge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZSB7XG4gICAgbWFyZ2luOiAwIC0xcHggMCAwICFpbXBvcnRhbnQ7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUgYSB7XG4gICAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlIC5zd2l0Y2gge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW0gIWltcG9ydGFudDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogIzc4YjBlMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3OGIwZTAgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMTBweCAwICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cbiAgICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUgLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzc4YjBlMCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2gsXG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmZvY3VzLFxuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpob3ZlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoLFxuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpmb2N1cyxcbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6aG92ZXIsXG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZTpub3QoLmRpc2FibGVkKSA+IC5zd2l0Y2g6YWN0aXZlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlID4gLnN3aXRjaDp2aXNpdGVkIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0uY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZTpub3QoLmRpc2FibGVkKSA+IC5zd2l0Y2g6Zm9jdXMsXG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZTpub3QoLmRpc2FibGVkKSA+IC5zd2l0Y2g6aG92ZXIge1xuICAgIGNvbG9yOiAjNzhiMGUwICFpbXBvcnRhbnQ7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbi5jcy1jbXMtYmxvY2sge1xuICAubGVhZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLy9mb250LXdlaWdodDogNjAwO1xuICAgIHNwYW4ge1xuICAgICAgLy9mb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgfVxuXG4gIC5kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAzcmVtIDJyZW0gMCAzcmVtO1xuICAgIC8vZGlzcGxheTogZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcbiAgfVxuXG4gIC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDQ5JTtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAvL2Rpc3BsYXk6ICR0b29sYmFyX2Rpc3BsYXk7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDJyZW07XG4gICAgICAvL3BhZGRpbmctbGVmdDogMDtcbiAgICAgIC8vICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIC8vIGNvbG9yOiAkY29sb3JfYmxhY2s7XG4gICAgLy8gbWFyZ2luLXRvcDogMDtcbiAgICAvLyBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIC8vIGZvbnQtc2l6ZTogMi40cmVtO1xuICB9XG59XG5cbi5pdGVtLnRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLnN3aXRjaCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgtYmx1ZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5pdGVtLnRpdGxlOmhvdmVyIHtcbiAgLnN3aXRjaCB7XG4gICAgY29sb3I6ICRjb2xvci10dXBsZXgtYmx1ZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5pdGVtLnRpdGxlLmFjdGl2ZSB7XG4gIC5zd2l0Y2gge1xuICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWJsdWUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGUgIWltcG9ydGFudDtcbiAgfVxufVxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAudGFiMyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAuaXRlbS50aXRsZSB7XG4gICAgICB3aWR0aDogMzMlICFpbXBvcnRhbnQ7XG4gICAgICBcbiAgICB9XG4gIH1cblxuICAudGFiNCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAuaXRlbS50aXRsZSB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlIHtcbiAgICBtYXJnaW46IDAgLTFweCAwIDAgIWltcG9ydGFudDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBhe1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gICAgJiAuc3dpdGNoIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXR1cGxleC1ibHVlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXR1cGxleC1ibHVlICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgLy8gJjp2aXNpdGVkIHtcbiAgICAgIC8vICAgY29sb3I6ICRjb2xvcl93aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgLy8gfVxuICAgIH1cblxuICAgICYgLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGNvbG9yLXR1cGxleC1ibHVlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoLFxuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpmb2N1cyxcbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6aG92ZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWJsdWUgIWltcG9ydGFudDtcbiAgfVxufVxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaCxcbiAgLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6Zm9jdXMsXG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmhvdmVyLFxuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGU6bm90KC5kaXNhYmxlZCkgPiAuc3dpdGNoOmFjdGl2ZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUgPiAuc3dpdGNoOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS5jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZTpub3QoLmRpc2FibGVkKSA+IC5zd2l0Y2g6Zm9jdXMsXG4gIC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZTpub3QoLmRpc2FibGVkKSA+IC5zd2l0Y2g6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWJsdWUgIWltcG9ydGFudDtcbiAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4ucHJvbW8ge1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuXG4uaGVhZGVyLmVjb21tZXJjZS10dXBsZXgubGlua3MuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmluZm9fcHJvZHVjdF9jYXJkIHtcbiAgYm9yZGVyOiAxcHggc29saWQ7IH1cblxuLmNhdGVnb3J5cGF0aC1rYXRhbG9nLXByb2R1a3Rvdy1wb2xpd2VnbGFuLXBvbGl3ZWdsYW4ta2FuYWxpa293eS1rb21vcm93eS1iZXpiYXJ3bnkgLmNvbDpudGgtY2hpbGQoNSksXG4uY2F0ZWdvcnlwYXRoLWthdGFsb2ctcHJvZHVrdG93LXBvbGl3ZWdsYW4tcG9saXdlZ2xhbi1rYW5hbGlrb3d5LWtvbW9yb3d5LWJyYXpvd3kgLmNvbDpudGgtY2hpbGQoNSksXG4uY2F0ZWdvcnlwYXRoLWthdGFsb2ctcHJvZHVrdG93LXBvbGl3ZWdsYW4tcG9saXdlZ2xhbi1rYW5hbGlrb3d5LWtvbW9yb3d5LW9wYWwgLmNvbDpudGgtY2hpbGQoNSkge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLm1hcC10ZXh0LWhvbWUgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbi1zcGFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLmNhdGVnb3J5LWtpbS1qZXN0ZXNteSAuY3MtYnV0dG9uLWNvbXBvbmVudF9fYW1vdW50IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJpY2UtZmluYWxfcHJpY2UgLm1pbmltYWwtcHJpY2Uge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYW1hc3R5X2Rpc3RhbmNlIHtcbiAgbWFyZ2luLWxlZnQ6IDE4cHg7IH1cblxuLmJlbGthLXBvZGFuZS1jZW55IHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogI0ZGRUY0NTtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5iZWxrYS1wb2RhbmUtY2VueSBhIHtcbiAgICBjb2xvcjogIzM0NjA5NztcbiAgICBwYWRkaW5nOiAwcHg7IH1cbiAgLmJlbGthLXBvZGFuZS1jZW55IC5yZWFkLW1vcmUgYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAgIC5iZWxrYS1wb2RhbmUtY2VueSAucmVhZC1tb3JlIGE6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgIHdpZHRoOiAzM3B4O1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgY29sb3I6ICMzNDYwOTc7IH1cbiAgLmJlbGthLXBvZGFuZS1jZW55IC50ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNXB4IDBweDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLmJlbGthLXBvZGFuZS1jZW55IC5wb3pvc3RhbGUge1xuICAgIG1heC13aWR0aDogMTMwcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggMHB4O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuYmVsa2EtcG9kYW5lLWNlbnkgLnJlYWQtbW9yZSB7XG4gICAgbWF4LXdpZHRoOiAxMzByZW07XG4gICAgcGFkZGluZzogNXB4IDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jcy1pbWFnZS10ZWFzZXJfX2Nhcm91c2VsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyBwaWN0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkLmtvbG9yIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIC5zd2F0Y2gtb3B0aW9uLmNvbG9yLCAuc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZC5rb2xvciAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCAuc3dhdGNoLW9wdGlvbi5pbWFnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggNHB4IC0ycHggIzAwMDsgfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZC5rb2xvciAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiAjNDg0ODQ4O1xuICBwYWRkaW5nOiAzcHggMHB4IDEwcHggMHB4OyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdC13cmFwcGVyIC5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCAuY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSAuY3MtY2F0ZWdvcnktbGlua3NfX2xpbmsgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAuY2hlY2tvdXQtY2FydC1pbmRleCAuY3MtY2FydC1wYWdlLmNzLWNvbnRhaW5lcl9faW5uZXIgLmNhcnQudGFibGUtd3JhcHBlci5jcy1jYXJ0LXRhYmxlLXdyYXBwZXIgLmNzLWNhcnQtdGFibGVfX2hlYWQgdHIgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHdpZHRoOiA0MyU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL2NvbG9ycyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLmVjb21tZXJjZS10dXBsZXgge1xuICAvL2Rpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgLy92aXNpYmlsaXR5OiBzaG93O1xuICAvL3Zpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnByb21vIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi5oZWFkZXIuZWNvbW1lcmNlLXR1cGxleC5saW5rcy5jcy1oZWFkZXJfX3VzZXItbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmluZm9fcHJvZHVjdF9jYXJkIHtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi5jYXRlZ29yeXBhdGgta2F0YWxvZy1wcm9kdWt0b3ctcG9saXdlZ2xhbi1wb2xpd2VnbGFuLWthbmFsaWtvd3kta29tb3Jvd3ktYmV6YmFyd255LFxuLmNhdGVnb3J5cGF0aC1rYXRhbG9nLXByb2R1a3Rvdy1wb2xpd2VnbGFuLXBvbGl3ZWdsYW4ta2FuYWxpa293eS1rb21vcm93eS1icmF6b3d5LFxuLmNhdGVnb3J5cGF0aC1rYXRhbG9nLXByb2R1a3Rvdy1wb2xpd2VnbGFuLXBvbGl3ZWdsYW4ta2FuYWxpa293eS1rb21vcm93eS1vcGFsIHtcbiAgLmNvbDpudGgtY2hpbGQoNSkge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgfVxufVxuXG4ubWFwLXRleHQtaG9tZSB7XG4gIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1idXR0b24tc3BhbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYxMDVcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDE3cHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cbiAgfVxufVxuXG4uY2F0ZWdvcnkta2ltLWplc3Rlc215IHtcbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2Ftb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ucHJpY2UtZmluYWxfcHJpY2Uge1xuICAubWluaW1hbC1wcmljZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8gLnByaWNlLWZpbmFsX3ByaWNlIHtcbi8vICAgLm1pbmltYWwtcHJpY2Uge1xuLy8gICAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgIH1cbi8vIH1cblxuLmFtYXN0eV9kaXN0YW5jZSB7XG4gIG1hcmdpbi1sZWZ0OiAxOHB4O1xufVxuXG4uYmVsa2EtcG9kYW5lLWNlbnkge1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItdHVwbGV4LXllbGxvdztcbiAgZm9udC1zaXplOiAxOHB4O1xuXG5cbiAgYSB7XG4gICAgY29sb3I6ICRjb2xvci10dXBsZXgtZGFyay1ibHVlO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuXG4gIC5yZWFkLW1vcmUgYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAmOjphZnRlciB7XG4gICAgY29udGVudDogXCJcXGYxMDVcIjtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICB3aWR0aDogMzNweDtcbiAgICBoZWlnaHQ6IDMzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBjb2xvcjogJGNvbG9yLXR1cGxleC1kYXJrLWJsdWU7XG4gICAgfVxuICB9XG5cbiAgLnRleHQge1xuICAgIG1heC13aWR0aDokcGFnZV9tYXgtd2lkdGg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDVweCAwcHg7XG4gICAgY29sb3I6ICRjb2xvcl9ibGFjaztcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICAucG96b3N0YWxlIHtcbiAgICBtYXgtd2lkdGg6JHBhZ2VfbWF4LXdpZHRoOyBcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNXB4IDBweDtcbiAgICBjb2xvcjogJGNvbG9yX2JsYWNrO1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxuXG4gIC5yZWFkLW1vcmUge1xuICAgIG1heC13aWR0aDokcGFnZV9tYXgtd2lkdGg7XG4gICAgcGFkZGluZzogNXB4IDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5jcy1pbWFnZS10ZWFzZXJfX2Nhcm91c2Vse1xuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIHBpY3R1cmV7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkLmtvbG9ye1xuICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25ze1xuICAgIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZHtcbiAgICAgIC5zd2F0Y2gtb3B0aW9uLmNvbG9yLCAuc3dhdGNoLW9wdGlvbi5pbWFnZXtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA0cHggLTJweCAjMDAwO1xuICAgICAgfVxuICAgICAgc3BhbntcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4IDEwcHggMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3Qtd3JhcHBlcntcbiAgLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0e1xuICAgICAgLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWl0ZW17XG4gICAgICAgICAgLmNzLWNhdGVnb3J5LWxpbmtzX19saW5re1xuICAgICAgICAgICAgICBzcGFue1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgfSAgICAgICAgICAgICAgIFxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gIC5jaGVja291dC1jYXJ0LWluZGV4e1xuICAgIC5jcy1jYXJ0LXBhZ2UuY3MtY29udGFpbmVyX19pbm5lcntcbiAgICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIuY3MtY2FydC10YWJsZS13cmFwcGVye1xuICAgICAgICAuY3MtY2FydC10YWJsZV9faGVhZHtcbiAgICAgICAgICB0cntcbiAgICAgICAgICAgIHRoOmZpcnN0LWNoaWxke1xuICAgICAgICAgICAgICB3aWR0aDogNDMlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi50dXBsZXgtdGFibGUge1xuICBtYXJnaW46IDJyZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAudHVwbGV4LXRhYmxlIHtcbiAgICAgIHdpZHRoOiA3NSU7IH0gfVxuICAudHVwbGV4LXRhYmxlIHRoLFxuICAudHVwbGV4LXRhYmxlIHRkIHtcbiAgICB3aWR0aDogMzMuMzMzJTsgfVxuICAudHVwbGV4LXRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLnR1cGxleC10YWJsZSB0aGVhZCB0aDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNmZmY7IH1cbiAgLnR1cGxleC10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgLnR1cGxleC10YWJsZSB0Ym9keSB0ZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZmZmOyB9XG5cbi50YWJsZS13cmFwcGVyLmdyb3VwZWQgLnByaWNlLWFuZC1jYXJ0IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAudGFibGUtd3JhcHBlci5ncm91cGVkIC5wcmljZS1hbmQtY2FydCBidXR0b24ge1xuICAgIG1hcmdpbjogMTVweCAwOyB9XG5cbi50YWJsZS13cmFwcGVyLmdyb3VwZWQgLnJvd3MudGllci1wcmljZS5zdW1tYXJ5LnF0eSA+IC5jb2wucXR5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi50YWJsZS13cmFwcGVyLmdyb3VwZWQgLnF0eS5zdW1tYXJ5LXdyYXBwZXItcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcclxuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcclxuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XHJcblxyXG5cclxuLy8vLy8vXHJcbi50dXBsZXgtdGFibGUge1xyXG4gICAgbWFyZ2luOiAycmVtIGF1dG87XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XHJcbiAgICAgICAgd2lkdGg6IDc1JTtcclxuICAgIH1cclxuXHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgICB3aWR0aDogMzMuMzMzJTtcclxuICAgIH1cclxuXHJcbiAgICB0aGVhZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXR1cGxleC1ibHVlO1xyXG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XHJcblxyXG4gICAgICAgIHRoOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkY29sb3Itd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRib2R5IHtcclxuICAgICAgICB0cjpudGgtY2hpbGQoZXZlbikge1xyXG4gICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGQ6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRjb2xvci13aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi50YWJsZS13cmFwcGVyLmdyb3VwZWQge1xyXG4gICAgLnByaWNlLWFuZC1jYXJ0IHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udGFibGUtd3JhcHBlci5ncm91cGVkIHtcclxuICAgIC5yb3dzLnRpZXItcHJpY2Uuc3VtbWFyeS5xdHk+LmNvbC5xdHkge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICAucXR5LnN1bW1hcnktd3JhcHBlci1wbGFjZWhvbGRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB9XHJcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuI215U3dpdGNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3JkZXI6IDEwO1xuICAvKiBSb3VuZGVkIHNsaWRlcnMgKi8gfVxuICAjbXlTd2l0Y2ggLnN3aXRjaCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAyNHB4OyB9XG4gICNteVN3aXRjaCAuc3dpdGNoIGlucHV0IHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAjbXlTd2l0Y2ggLnNsaWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICB0cmFuc2l0aW9uOiAuNHM7IH1cbiAgI215U3dpdGNoIC5zbGlkZXI6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgbGVmdDogNHB4O1xuICAgIGJvdHRvbTogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG4gICAgdHJhbnNpdGlvbjogLjRzOyB9XG4gICNteVN3aXRjaCBpbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAjbXlTd2l0Y2ggaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4ICM3OGIwZTA7IH1cbiAgI215U3dpdGNoIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gICAgbGVmdDogMHB4OyB9XG4gICNteVN3aXRjaCAuc2xpZGVyLnJvdW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiAzNHB4OyB9XG4gICNteVN3aXRjaCAuc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcclxuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcclxuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XHJcblxyXG5cclxuXHJcbiNteVN3aXRjaCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgb3JkZXI6IDEwO1xyXG5cclxuXHJcbiAgICAuc3dpdGNoIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICBoZWlnaHQ6IDI0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnN3aXRjaCBpbnB1dCB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnNsaWRlciB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2FsdG87XHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xyXG4gICAgfVxyXG5cclxuICAgIC5zbGlkZXI6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBoZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICAgICAgbGVmdDogNHB4O1xyXG4gICAgICAgIGJvdHRvbTogNHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcclxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICAgICAgICB0cmFuc2l0aW9uOiAuNHM7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQ6Y2hlY2tlZCsuc2xpZGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdHVwbGV4LWJsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQ6Zm9jdXMrLnNsaWRlciB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDFweCAkY29sb3ItdHVwbGV4LWJsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQ6Y2hlY2tlZCsuc2xpZGVyOmJlZm9yZSB7XHJcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XHJcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XHJcbiAgICAgICAgbGVmdDogMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFJvdW5kZWQgc2xpZGVycyAqL1xyXG4gICAgLnNsaWRlci5yb3VuZCB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcclxuICAgIH1cclxuXHJcbiAgICAuc2xpZGVyLnJvdW5kOmJlZm9yZSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgfVxyXG59IiwiLmNzLXByb2R1Y3QtdGlsZV9fbmFtZXtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgLmRpdlRhYmxle1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmRpdlRhYmxlSGVhZCB7XHJcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gICAgLy93eXNyb2Rrb3dhbmllXHJcbiAgICAuZGl2VGFibGVDZWxsLFxyXG4gICAgLmRpdlRhYmxlSGVhZCB7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gICAgLmRpdlRhYmxlIHtcclxuICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5kaXZUYWJsZVJvdyB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcclxuICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcblxyXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgICAuZGl2VGFibGVDZWxsIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRpdlRhYmxlSGVhZGluZyB7XHJcbiAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogI0VFRTtcclxuICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIC5kaXZUYWJsZUNlbGwge1xyXG4gICAgICAvL2JvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgIHBhZGRpbmc6IDVweCAzcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmRpdlRhYmxlSGVhZCB7XHJcbiAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgcGFkZGluZzogM3B4IDNweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgLy90ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmRpdlRhYmxlSGVhZGluZyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuZGl2VGFibGVIZWFkaW5nIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRTtcclxuICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuXHJcbiAgICAuZGl2VGFibGVGb290IHtcclxuICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAjRUVFO1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1mb290ZXItZ3JvdXA7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgfVxyXG5cclxuICAgIC5kaXZUYWJsZUJvZHkge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4uY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcclxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZGl0aW9uYWwuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuI3RhYi1kb2N1bWVudGF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udHVwbGV4LXRyZWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAxcmVtIDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gIC50dXBsZXgtdHJlZSAuZGVzY3JpcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnR1cGxleC10cmVlIC5kZXNjcmlwdGlvbiAubGV2ZWwtMSB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC50dXBsZXgtdHJlZSAuZGVzY3JpcHRpb24gLmxldmVsLTIsXG4gICAgLnR1cGxleC10cmVlIC5kZXNjcmlwdGlvbiAubGV2ZWwtMyB7XG4gICAgICBtYXJnaW4tbGVmdDogMnJlbTsgfVxuICAudHVwbGV4LXRyZWUgLmRlc2NyaXB0aW9uLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnR1cGxleC10cmVlIC53aWRnZXQuYW0tYXR0YWNobWVudHMge1xuICAgIHBhZGRpbmctbGVmdDogMi41cmVtOyB9XG4gICAgLnR1cGxleC10cmVlIC53aWRnZXQuYW0tYXR0YWNobWVudHMgLmFtLWZpbGVsaW5lIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnR1cGxleC10cmVlIC53aWRnZXQuYW0tYXR0YWNobWVudHMgLmFtLWZpbGVsaW5lOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogLTE4cHg7IH1cbiAgLnR1cGxleC10cmVlIC50aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAudHVwbGV4LXRyZWUgLnRpdGxlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG4gICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IC0xOHB4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC50dXBsZXgtdHJlZSAudGl0bGUuYWN0aXZlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG4gIC50dXBsZXgtdHJlZSAuYW0tZmlsZWljb24ge1xuICAgIHdpZHRoOiAyNHB4OyB9XG5cbi5hY2NvcmRlb246YmVmb3JlLFxuLmRlc2NyaXB0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogN3B4O1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2NvbG9ycyc7IFxuXG4jdGFiLWRvY3VtZW50YXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udHVwbGV4LXRyZWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAxcmVtIDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItdHVwbGV4LWJnLWdyZXk7XG5cbiAgLmRlc2NyaXB0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC5sZXZlbC0xIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgIC5sZXZlbC0yLFxuICAgIC5sZXZlbC0zIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgIH1cbiAgfVxuXG4gIC5kZXNjcmlwdGlvbi5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLndpZGdldC5hbS1hdHRhY2htZW50cyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG5cbiAgICAuYW0tZmlsZWxpbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogLTE4cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcXGYwZmVcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogLTE4cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICB9XG4gIH1cblxuICAudGl0bGUuYWN0aXZlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG4gICAgfVxuICB9XG5cbiAgLmFtLWZpbGVpY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgfVxufVxuXG4uYWNjb3JkZW9uLFxuLmRlc2NyaXB0aW9uIHtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgLy8gbGVmdDogMDtcbiAgICBsZWZ0OiA3cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY21zLWthcmllcmEgLmNvbHVtbi5tYWluIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDByZW0gMCAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtOyB9XG5cbi5jbXMta2FyaWVyYSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uY21zLWthcmllcmEgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX193cmFwcGVyLS1jb250ZW50LW92ZXIgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgcGFkZGluZzogMy43NiU7IH1cblxuLmNtcy1rYXJpZXJhIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gIGZvbnQtc2l6ZTogMi44ZW07IH1cblxuLmNtcy1rYXJpZXJhIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50OyB9XG5cbi5jbXMta2FyaWVyYSAjYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogNDBweDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbi5jbXMta2FyaWVyYSB7XG5cbiAgLy8gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXRlYXNlci1hbmQtdGV4dC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlcixcbiAgLy8gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgLy8gICBkaXNwbGF5OiBncmlkO1xuICAvLyB9XG4gIC5jb2x1bW4ubWFpbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMHJlbSAwIDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICB9XG5cbiAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWJ1dHRvbixcbiAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWhlYWRsaW5lIHtcbiAgICAvL3BhZGRpbmctdG9wOiAzcmVtO1xuICB9XG5cbiAgLmNzLWhlYWRsaW5lIHtcbiAgICAvL21hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX3dyYXBwZXItLWNvbnRlbnQtb3ZlciAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDMuNzYlO1xuICB9XG5cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICBmb250LXNpemU6IDIuOGVtO1xuICB9XG5cbiAgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNidXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNhdGVnb3J5LXR1cGxleC1pbnRlcm5hdGlvbmFsIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuXG4uY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHBhZGRpbmc6IDAgMTAwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xOHB4O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4uY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwgLmNzLXBhZ2UtY2F0ZWdvcnlfX2NjLXRvcCB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5jbXMta2FyaWVyYSAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmNtcy1rYXJpZXJhIC5jcy1wYWdlLWNhdGVnb3J5X19jYy10b3Age1xuICBtYXgtd2lkdGg6IDEzMHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4uY2F0ZWdvcnktdHVwbGV4LWludGVybmF0aW9uYWwge1xuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgcGFkZGluZzogMCAxMDBweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4xOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cblxuICAuY3MtcGFnZS1jYXRlZ29yeV9fY2MtdG9wIHtcbiAgICAvL21heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cblxuXG5cbi5jbXMta2FyaWVyYSAge1xuICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuY3MtcGFnZS1jYXRlZ29yeV9fY2MtdG9wIHtcbiAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLnBhZ2UtbGF5b3V0LXN0cmVmYS13aWVkenkge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAucGFnZS1sYXlvdXQtc3RyZWZhLXdpZWR6eSBoMjpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKSB7XG4gICAgbWFyZ2luOiAzcmVtIDAgM3JlbTtcbiAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAucGFnZS1sYXlvdXQtc3RyZWZhLXdpZWR6eSBoMjpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGY2NzJcIjtcbiAgICAgIGNvbG9yOiAjRkZFRjQ1O1xuICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogIzM0NjA5NztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICAucGFnZS1sYXlvdXQtc3RyZWZhLXdpZWR6eSBwIHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgLnBhZ2UtbGF5b3V0LXN0cmVmYS13aWVkenkgcCBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5ICNidXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLnBhZ2UtbGF5b3V0LXN0cmVmYS13aWVkenkgLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4ge1xuICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4OyB9XG4gIC5wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5IC5jcy1wYXJhZ3JhcGggaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5IC5jcy1wYXJhZ3JhcGgge1xuICAgICAgbWFyZ2luOiAwIDAgMHJlbTsgfSB9XG4gIC5wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5IC5jcy1wYXJhZ3JhcGggdWwge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gM3JlbSA2cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgLnBhZ2UtbGF5b3V0LXN0cmVmYS13aWVkenkgLmNzLXBhcmFncmFwaCB1bCA+IGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgICBjb2xvcjogIzgyY2FkNDtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogLTEuOWVtO1xuICAgIHdpZHRoOiAxLjllbTsgfVxuXG5jcy1jYXRlZ29yeS1saW5rc19fZHJvcGRvd24gY3MtY2F0ZWdvcnktbGlua3MtZHJvcGRvd25cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtOyB9XG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IGgyLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmVsZXdhY2plLXdlbnR5bG93YW5lIHA6Zmlyc3QtY2hpbGQsIC5zdHJlZmEtd2llZHp5LXN6YWNob3duaWNhIHA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMTUwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuZWxld2FjamUtd2VudHlsb3dhbmUgcDpmaXJzdC1jaGlsZCwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2EgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogNTBweDsgfSB9XG5cbi5jb2wtbWQtNCwgLmNvbC1tZC05IHtcbiAgcGFkZGluZzogMXJlbTsgfVxuXG4uY29sLWxnLTMsIC5jb2wtbGctNiB7XG4gIHBhZGRpbmc6IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuLy9wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5XG5cblxuIC5wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5IHtcblxuICAgIGgyOm5vdCguY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlKTpub3QoLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSk6bm90KC5mb290ZXItdHVwbGV4KTpub3QoLm5ld3NsZXR0ZXItdGl0bGUpIHtcbiAgICAgIG1hcmdpbjogM3JlbSAwIDNyZW07XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmNjcyXCI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LXllbGxvdztcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgtZGFyay1ibHVlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIH1cblxuICAgIH1cblxuXG4gICAgZm9udC1zaXplOiAxLjZyZW07XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICBpbWcge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgICNidXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cblxuICAgIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcblxuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAuY3MtcGFyYWdyYXBoIHtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgIG1hcmdpbjogMCAwIDByZW07XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogM3JlbSAzcmVtIDNyZW0gNnJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG4gICAgICB9XG5cbiAgICAgIHVsID4gbGk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgICAgICAgY29sb3I6ICRjb2xvci10dXBsZXgtZ3JlZW47XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4gICAgICAgIHdpZHRoOiAxLjllbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4vLy8vL1xuY3MtY2F0ZWdvcnktbGlua3NfX2Ryb3Bkb3duIGNzLWNhdGVnb3J5LWxpbmtzLWRyb3Bkb3duXG5cblxuXG5cbi8vIC5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCB7XG4vL1xuLy8gICAmOnZpc2l0ZWQge1xuLy8gICAgICAgY29sb3I6IHJlZDtcbi8vICAgfVxuLy9cbi8vICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4vL1xuLy8gICB1bCB7XG4vLyAgICAgbWFyZ2luLXRvcDogMnJlbTtcbi8vICAgICBsaXN0LXN0eWxlOiBub25lO1xuLy8gICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDZyZW07XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG4vLyAgIH1cbi8vXG4vLyAgIHVsID4gbGk6YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuLy8gICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWdyZWVuO1xuLy8gICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4vLyAgICAgd2lkdGg6IDEuOWVtO1xuLy8gICB9XG4vLyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnRcbn1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtO1xufVxuXG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IHtcbiAgaDIuY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5lbGV3YWNqZS13ZW50eWxvd2FuZSwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2Ege1xuICBwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgIH1cbiAgfVxufVxuXG5cblxuLmNvbC1tZC00LCAuY29sLW1kLTkge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLmNvbC1sZy0zLCAuY29sLWxnLTYge1xuICBwYWRkaW5nOiAycmVtO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2UgLmF2YWlsYWJpbGl0eS1sZWdlbmQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlLWxheW91dC1lLWNvbW1lcmNlIC5saW5rX3RvX2xvY2F0b3Ige1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlLWxheW91dC1lLWNvbW1lcmNlIC5yb3dzIC5uZXR0byB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDExcHg7IH1cbiAgLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2UgLnJvd3MgLm5ldHRvOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdOZXR0byc7IH1cblxuLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2UgLnJvd3MgLmJydXR0byB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDExcHg7IH1cbiAgLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2UgLnJvd3MgLmJydXR0bzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBjbG9zZS1xdW90ZSAhaW1wb3J0YW50OyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICBwYWRkaW5nOiAxN3B4IDU0cHggMTdweCAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5tZXNzYWdlcyB7XG4gIG1heC13aWR0aDogMTMwcmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNXB4OyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucm93cyAua3VwLW9uLWxpbmUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5yb3dzIC5icnV0dG8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMXB4OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucm93cyAuYnJ1dHRvOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdCcnV0dG8nOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtcHJvZHVjdC1kZXRhaWxzLW5hdiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByaWNlLWJveCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtaW5mby1wcmljZSB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWluZm8tcHJpY2UgLmFkZGl0aW9uYWwtYXR0cmlidXRlcy13cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5idXR0b24tcGFyZW50LWVjb21tIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDVweCAxNXB4IDVweCAxNXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2U0MWYxMjsgfVxuICAuYnV0dG9uLXBhcmVudC1lY29tbS5vZGR6aWFseSB7XG4gICAgYm9yZGVyOiAycHggI0ZGRUY0NSBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kOiAjRkZFRjQ1O1xuICAgIGNvbG9yOiAjMDAwOyB9XG5cbi5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgLmxpbmtfdG9fbG9jYXRvciB7XG4gIG1hcmdpbjogMjBweCAwcHggMHB4IDBweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQgLmxpbmtfdG9fbG9jYXRvciB7XG4gICAgICBtYXJnaW46IDIwcHggMHB4ICFpbXBvcnRhbnQ7IH0gfVxuXG4ubGlua190b19sb2NhdG9yIHtcbiAgbWFyZ2luOiAyMHB4IDBweCAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5saW5rX3RvX2xvY2F0b3Ige1xuICAgICAgbWFyZ2luOiAyMHB4IDBweCAhaW1wb3J0YW50OyB9IH1cblxuLmRlbGl2ZXJ5LWxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTMwcmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICAuZGVsaXZlcnktbGVnZW5kIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmRlbGl2ZXJ5LWxlZ2VuZCB1bCBsaTo6YmVmb3JlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfVxuXG4ua3VyaWVyLWRvc3Rhd2Etc3RhbmRhcmRvd2Ege1xuICBmb250LXN0eWxlOiBpbmhlcml0OyB9XG4gIC5rdXJpZXItZG9zdGF3YS1zdGFuZGFyZG93YTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjQ2N1wiO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiOyB9XG5cbi5rdXJpZXItc3BlY2phbG5lLXBha293YW5pZSB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7IH1cbiAgLmt1cmllci1zcGVjamFsbmUtcGFrb3dhbmllOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmNGRlXCI7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7IH1cblxuLm9kYmlvci1vc29iaXN0eSB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7IH1cbiAgLm9kYmlvci1vc29iaXN0eTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjVhMFwiO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiOyB9XG5cbi5jb2wuaXRlbSAua3VyaWVyLWRvc3Rhd2Etc3RhbmRhcmRvd2EsXG4uY29sLml0ZW0gLmt1cmllci1zcGVjamFsbmUtcGFrb3dhbmllLFxuLmNvbC5pdGVtIC5vZGJpb3Itb3NvYmlzdHkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4uYXZhaWxhYmlsaXR5LWxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTMwcmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuICAuYXZhaWxhYmlsaXR5LWxlZ2VuZCB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuICAgIC5hdmFpbGFiaWxpdHktbGVnZW5kIHVsIGxpOjpiZWZvcmUge1xuICAgICAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuXG4uZG9zdGVwbmUtdy1vZGR6aWFsZSB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7IH1cbiAgLmRvc3RlcG5lLXctb2RkemlhbGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYzYzVcIjtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4uZG9zdGVwbmUtb24tbGluZSB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmRvc3RlcG5lLW9uLWxpbmU6OmJlZm9yZSB7XG4gICAgY29udGVudDogdXJsKC9jYXJ0LW9ubGluZS5zdmcpO1xuICAgIHdpZHRoOiAyN3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjdweDsgfVxuXG4ua3VwLW9uLWxpbmUge1xuICBwYWRkaW5nLXRvcDogMTdweCAhaW1wb3J0YW50OyB9XG4gIC5rdXAtb24tbGluZSAucmVkaW5nby1vbi1saW5lIHNwYW46OmJlZm9yZSB7XG4gICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3doaXRlLWNhcnQuc3ZnXCIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyN3B4O1xuICAgIGJhY2tncm91bmQ6ICNlNDFmMTI7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAua3VwLW9uLWxpbmUgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5OyB9XG4gICAgLmt1cC1vbi1saW5lIGRpdiBhIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAua3VwLW9uLWxpbmUgZGl2IGEgLmRvc3RlcG5lLXctb2RkemlhbGU6OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAua3VwLW9uLWxpbmUgZGl2IC5yZWRpbmdvLW9kZHppYWxlIHtcbiAgICAgIG1heC13aWR0aDogNTBweDtcbiAgICAgIHBhZGRpbmc6IDhweDsgfVxuICAgIC5rdXAtb24tbGluZSBkaXYgLnJlZGluZ28tb24tbGluZSB7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICBtYXgtd2lkdGg6IDUwcHg7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAudG9vbHRpcCAudG9vbHRpcHRleHQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTQwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHRvcDogMzVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTsgfVxuICAudG9vbHRpcDpob3ZlciAudG9vbHRpcHRleHQge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2UgLnRvb2x0aXB0ZXh0IHtcbiAgbGVmdDogLTYwcHg7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQtY29uc3RydWN0b3Ige1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudC1jb25zdHJ1Y3RvciA+IC5jcy1jb250YWluZXIgPiAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG4uY29sdW1uLm1haW4gPiAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wID4gLnByb2R1Y3QuYXR0cmlidXRlLmRlc2NyaXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAxMzByZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG4gIC5jb2x1bW4ubWFpbiA+IC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3AgPiAucHJvZHVjdC5hdHRyaWJ1dGUuZGVzY3JpcHRpb246OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY29sdW1uLm1haW4gPiAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wID4gLnByb2R1Y3QuYXR0cmlidXRlLmRlc2NyaXB0aW9uIGg0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDJyZW07IH1cblxuLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5wcm9kdWN0LmF0dHJpYnV0ZS5vdmVydmlldyB7XG4gIG1heC13aWR0aDogMTMwcmVtO1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4uY29sdW1uLm1haW4gPiAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wID4gLmNzLXBhZ2UtcHJvZHVjdF9fYnV5Ym94IHtcbiAgbWFyZ2luOiAwIGF1dG87IH1cbiAgLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCAucHJvZHVjdC1pbmZvLW1haW4uY3MtYnV5Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jb2x1bW4ubWFpbiA+IC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3AgPiAuY3MtcGFnZS1wcm9kdWN0X19idXlib3ggLnByb2R1Y3QtaW5mby1tYWluLmNzLWJ1eWJveCAuY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogOXB4IDQwcHggOXB4IDEwcHggIWltcG9ydGFudDsgfVxuICAgICAgLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5jcy1wYWdlLXByb2R1Y3RfX2J1eWJveCAucHJvZHVjdC1pbmZvLW1haW4uY3MtYnV5Ym94IC5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b24gc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICNjYjFjMGU7IH1cbiAgICAuY29sdW1uLm1haW4gPiAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wID4gLmNzLXBhZ2UtcHJvZHVjdF9fYnV5Ym94IC5wcm9kdWN0LWluZm8tbWFpbi5jcy1idXlib3ggLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbjpob3ZlciBzdHJvbmcge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbi5jb2x1bW4ubWFpbiA+IC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3AgPiAuY3MtY29udGFpbmVyX19pbm5lciA+IC5jcy1wYWdlLXByb2R1Y3RfX3RvcCA+IC5jcy1wYWdlLXByb2R1Y3RfX2dhbGxlcnkge1xuICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5jcy1jb250YWluZXJfX2lubmVyID4gLmNzLXBhZ2UtcHJvZHVjdF9fdG9wID4gLmdhbGxlcnktZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsgfVxuICAuY29sdW1uLm1haW4gPiAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wID4gLmNzLWNvbnRhaW5lcl9faW5uZXIgPiAuY3MtcGFnZS1wcm9kdWN0X190b3AgPiAuZ2FsbGVyeS1kZXNjcmlwdGlvbiBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5jcy1jb250YWluZXJfX2lubmVyID4gLmNzLXBhZ2UtcHJvZHVjdF9fdG9wID4gLmdhbGxlcnktZGVzY3JpcHRpb24gaDIge1xuICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgZm9udC1zaXplOiAzLjhyZW07IH1cbiAgLmNvbHVtbi5tYWluID4gLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCA+IC5jcy1jb250YWluZXJfX2lubmVyID4gLmNzLXBhZ2UtcHJvZHVjdF9fdG9wID4gLmdhbGxlcnktZGVzY3JpcHRpb24gaDMge1xuICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuIiwiLy8vLy8vXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9pbmRpY2F0b3JzL21peGlucy5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnOyAvLyBTb21lIGdsb2JhbHNcblxuLnBhZ2UtbGF5b3V0LWUtY29tbWVyY2Uge1xuICAuYXZhaWxhYmlsaXR5LWxlZ2VuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5saW5rX3RvX2xvY2F0b3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAucm93cyB7XG4gICAgLm5ldHRvIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnTmV0dG8nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5icnV0dG8ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDExcHg7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiB7XG4gICAgcGFkZGluZzogMTdweCA1NHB4IDE3cHggMTBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1lc3NhZ2VzIHtcbiAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTVweDtcbiAgfVxuXG4gIC5yb3dzIHtcbiAgICAua3VwLW9uLWxpbmUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5icnV0dG8ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDExcHg7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdCcnV0dG8nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jcy1wcm9kdWN0LWRldGFpbHMtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHJpY2UtYm94IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucHJvZHVjdC1pbmZvLXByaWNlIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgLmFkZGl0aW9uYWwtYXR0cmlidXRlcy13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5idXR0b24tcGFyZW50LWVjb21tIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDIwcHg7XG4gIHBhZGRpbmc6IDVweCAxNXB4IDVweCAxNXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfY3JpbXNvbjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICRjb2xvcl9jcmltc29uO1xuXG4gICYub2RkemlhbHkge1xuICAgIGJvcmRlcjogMnB4ICRjb2xvci10dXBsZXgteWVsbG93IHNvbGlkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgteWVsbG93O1xuICAgIGNvbG9yOiAkY29sb3JfYmxhY2s7XG4gIH1cbn1cblxuLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCAubGlua190b19sb2NhdG9yIHtcbiAgbWFyZ2luOiAyMHB4IDBweCAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICBtYXJnaW46IDIwcHggMHB4ICFpbXBvcnRhbnQ7XG4gICAgO1xuICB9XG59XG5cbi5saW5rX3RvX2xvY2F0b3Ige1xuICBtYXJnaW46IDIwcHggMHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxOHB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICBtYXJnaW46IDIwcHggMHB4ICFpbXBvcnRhbnQ7XG4gICAgO1xuICB9XG59XG5cbi5kZWxpdmVyeS1sZWdlbmQge1xuICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgICBsaSB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ua3VyaWVyLWRvc3Rhd2Etc3RhbmRhcmRvd2Ege1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGY0NjdcIjtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgfVxufVxuXG4ua3VyaWVyLXNwZWNqYWxuZS1wYWtvd2FuaWUge1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGY0ZGVcIjtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgfVxufVxuXG4ub2RiaW9yLW9zb2Jpc3R5IHtcbiAgZm9udC1zdHlsZTogaW5oZXJpdDtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmNWEwXCI7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gIH1cbn1cblxuLmNvbC5pdGVtIHtcblxuICAua3VyaWVyLWRvc3Rhd2Etc3RhbmRhcmRvd2EsXG4gIC5rdXJpZXItc3BlY2phbG5lLXBha293YW5pZSxcbiAgLm9kYmlvci1vc29iaXN0eSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG59XG5cbi5hdmFpbGFiaWxpdHktbGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuXG4gICAgbGkge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmRvc3RlcG5lLXctb2RkemlhbGUge1xuICBmb250LXN0eWxlOiBpbmhlcml0O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGYzYzVcIjtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgfVxufVxuXG4uZG9zdGVwbmUtb24tbGluZSB7XG4gIGZvbnQtc3R5bGU6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiB1cmwoL2NhcnQtb25saW5lLnN2Zyk7XG4gICAgd2lkdGg6IDI3cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAyN3B4O1xuICB9XG59XG5cbi5rdXAtb24tbGluZSB7XG4gIHBhZGRpbmctdG9wOiAxN3B4ICFpbXBvcnRhbnQ7XG5cbiAgLnJlZGluZ28tb24tbGluZSB7XG4gICAgc3BhbiB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvd2hpdGUtY2FydC5zdmdcIik7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMjdweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2U0MWYxMjtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgLmRvc3RlcG5lLXctb2RkemlhbGUge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yX2JsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJlZGluZ28tb2RkemlhbGUge1xuICAgICAgbWF4LXdpZHRoOiA1MHB4O1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgIH1cblxuICAgIC5yZWRpbmdvLW9uLWxpbmUge1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgbWF4LXdpZHRoOiA1MHB4O1xuICAgIH1cbiAgfVxufVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC50b29sdGlwdGV4dCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxNDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgdG9wOiAzNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLnRvb2x0aXB0ZXh0IHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG59XG5cbi5wYWdlLWxheW91dC1lLWNvbW1lcmNlIHtcbiAgLnRvb2x0aXB0ZXh0IHtcbiAgICBsZWZ0OiAtNjBweDtcbiAgfVxufVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudC1jb25zdHJ1Y3RvciB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xufVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudC1jb25zdHJ1Y3Rvcj4uY3MtY29udGFpbmVyPi5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xufVxuXG4vLyBwcm9kdWN0IHZpcnR1YWxcblxuLmNvbHVtbi5tYWluPi5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3A+LnByb2R1Y3QuYXR0cmlidXRlLmRlc2NyaXB0aW9uIHtcbiAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGg0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cblxuLmNvbHVtbi5tYWluPi5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3A+LnByb2R1Y3QuYXR0cmlidXRlLm92ZXJ2aWV3IHtcbiAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY29sdW1uLm1haW4+LmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcD4uY3MtcGFnZS1wcm9kdWN0X19idXlib3gge1xuICBtYXJnaW46IDAgYXV0bztcblxuICAucHJvZHVjdC1pbmZvLW1haW4uY3MtYnV5Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiA5cHggNDBweCA5cHggMTBweCAhaW1wb3J0YW50O1xuXG4gICAgICBzdHJvbmcge1xuICAgICAgICBjb2xvcjogI2NiMWMwZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uOmhvdmVyIHtcbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4uY29sdW1uLm1haW4+LmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcD4uY3MtY29udGFpbmVyX19pbm5lcj4uY3MtcGFnZS1wcm9kdWN0X190b3A+LmNzLXBhZ2UtcHJvZHVjdF9fZ2FsbGVyeSB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLmNvbHVtbi5tYWluPi5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3A+LmNzLWNvbnRhaW5lcl9faW5uZXI+LmNzLXBhZ2UtcHJvZHVjdF9fdG9wPi5nYWxsZXJ5LWRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZzogMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XG5cblxuICBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cblxuICBoMiB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgICBmb250LXNpemU6IDMuOHJlbTtcbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jYXRlZ29yeXBhdGgtYWt0dWFsbm9zY2ktZm9saWUtYXZlcnktNTAwLWVmLXctbmFqbGVwc3p5Y2gtY2VuYWNoLW5hLXJ5bmt1LCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGksIC5jYXRlZ29yeS1vc2xvbnktei1wbGV4aS1wZXQtcG9saXdlZ2xhbnUtaWRlYWxuZS1yb3p3aWF6YW5pZS13LW1pZWpzY2FjaC1vYnNsdWdpLWtsaWVudG93IHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgaDIsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIGgyLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSBoMiwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgaDIge1xuICAgIG1hcmdpbjogM3JlbSAwIDNyZW07IH1cbiAgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgaDMsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIGgzLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSBoMywgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgaDMge1xuICAgIG1hcmdpbjogM3JlbSAwIDNyZW07IH1cbiAgICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSBoMzpiZWZvcmUsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIGgzOmJlZm9yZSwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgaDM6YmVmb3JlLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyBoMzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGY2NzJcIjtcbiAgICAgIGNvbG9yOiAjRkZFRjQ1O1xuICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTVweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogIzM0NjA5NztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgfVxuICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSB0YWJsZSwgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IgdGFibGUsIC5jYXRlZ29yeS0xMC10eXMtcHJ6eWxiaWMtZGxhLXBvbHNraWNoLXN6cGl0YWxpIHRhYmxlLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyB0YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDg0ODQ4O1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgYmFja2dyb3VuZDogIzM0NjA5NztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSB0aCwgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgdGQsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIHRoLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciB0ZCwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgdGgsIC5jYXRlZ29yeS0xMC10eXMtcHJ6eWxiaWMtZGxhLXBvbHNraWNoLXN6cGl0YWxpIHRkLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyB0aCwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgdGQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmOyB9XG4gICAgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgdGggcCwgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgdGQgcCwgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IgdGggcCwgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IgdGQgcCwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgdGggcCwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgdGQgcCwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgdGggcCwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgdGQgcCB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgdGgsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIHRoLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSB0aCwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmNhdGVnb3J5cGF0aC1ha3R1YWxub3NjaS1mb2xpZS1hdmVyeS01MDAtZWYtdy1uYWpsZXBzenljaC1jZW5hY2gtbmEtcnlua3UgcCwgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IgcCwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgcCwgLmNhdGVnb3J5LW9zbG9ueS16LXBsZXhpLXBldC1wb2xpd2VnbGFudS1pZGVhbG5lLXJvendpYXphbmllLXctbWllanNjYWNoLW9ic2x1Z2kta2xpZW50b3cgcCB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICAgIC5jYXRlZ29yeXBhdGgtYWt0dWFsbm9zY2ktZm9saWUtYXZlcnktNTAwLWVmLXctbmFqbGVwc3p5Y2gtY2VuYWNoLW5hLXJ5bmt1IHAgaW1nLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciBwIGltZywgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgcCBpbWcsIC5jYXRlZ29yeS1vc2xvbnktei1wbGV4aS1wZXQtcG9saXdlZ2xhbnUtaWRlYWxuZS1yb3p3aWF6YW5pZS13LW1pZWpzY2FjaC1vYnNsdWdpLWtsaWVudG93IHAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSAjYnV0dG9uLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciAjYnV0dG9uLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSAjYnV0dG9uLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyAjYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jYXRlZ29yeXBhdGgtYWt0dWFsbm9zY2ktZm9saWUtYXZlcnktNTAwLWVmLXctbmFqbGVwc3p5Y2gtY2VuYWNoLW5hLXJ5bmt1IC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciAuY3MtYnV0dG9uLWNvbXBvbmVudF9fc3BhbiwgLmNhdGVnb3J5LTEwLXR5cy1wcnp5bGJpYy1kbGEtcG9sc2tpY2gtc3pwaXRhbGkgLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4sIC5jYXRlZ29yeS1vc2xvbnktei1wbGV4aS1wZXQtcG9saXdlZ2xhbnUtaWRlYWxuZS1yb3p3aWF6YW5pZS13LW1pZWpzY2FjaC1vYnNsdWdpLWtsaWVudG93IC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSAuY3MtcGFyYWdyYXBoIGltZywgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IgLmNzLXBhcmFncmFwaCBpbWcsIC5jYXRlZ29yeS0xMC10eXMtcHJ6eWxiaWMtZGxhLXBvbHNraWNoLXN6cGl0YWxpIC5jcy1wYXJhZ3JhcGggaW1nLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyAuY3MtcGFyYWdyYXBoIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSAuY3MtcGFyYWdyYXBoLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciAuY3MtcGFyYWdyYXBoLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSAuY3MtcGFyYWdyYXBoLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyAuY3MtcGFyYWdyYXBoIHtcbiAgICAgIG1hcmdpbjogMCAwIDByZW07IH0gfVxuICAuY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSAuY3MtcGFyYWdyYXBoIHVsLCAuY2F0ZWdvcnktaWRlYWxuZS13LWFyYW56YWNqaS13bmV0cnotcGx5dHktZnVuZGVybWF4LWhwbC1pbnRlcmlvciAuY3MtcGFyYWdyYXBoIHVsLCAuY2F0ZWdvcnktMTAtdHlzLXByenlsYmljLWRsYS1wb2xza2ljaC1zenBpdGFsaSAuY3MtcGFyYWdyYXBoIHVsLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyAuY3MtcGFyYWdyYXBoIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogM3JlbSAzcmVtIDNyZW0gNnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gIC5jYXRlZ29yeXBhdGgtYWt0dWFsbm9zY2ktZm9saWUtYXZlcnktNTAwLWVmLXctbmFqbGVwc3p5Y2gtY2VuYWNoLW5hLXJ5bmt1IC5jcy1wYXJhZ3JhcGggdWwgPiBsaTpiZWZvcmUsIC5jYXRlZ29yeS1pZGVhbG5lLXctYXJhbnphY2ppLXduZXRyei1wbHl0eS1mdW5kZXJtYXgtaHBsLWludGVyaW9yIC5jcy1wYXJhZ3JhcGggdWwgPiBsaTpiZWZvcmUsIC5jYXRlZ29yeS0xMC10eXMtcHJ6eWxiaWMtZGxhLXBvbHNraWNoLXN6cGl0YWxpIC5jcy1wYXJhZ3JhcGggdWwgPiBsaTpiZWZvcmUsIC5jYXRlZ29yeS1vc2xvbnktei1wbGV4aS1wZXQtcG9saXdlZ2xhbnUtaWRlYWxuZS1yb3p3aWF6YW5pZS13LW1pZWpzY2FjaC1vYnNsdWdpLWtsaWVudG93IC5jcy1wYXJhZ3JhcGggdWwgPiBsaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgY29sb3I6ICM4MmNhZDQ7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjllbTtcbiAgICB3aWR0aDogMS45ZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG4uY2F0ZWdvcnlwYXRoLWFrdHVhbG5vc2NpLWZvbGllLWF2ZXJ5LTUwMC1lZi13LW5hamxlcHN6eWNoLWNlbmFjaC1uYS1yeW5rdSwgLmNhdGVnb3J5LWlkZWFsbmUtdy1hcmFuemFjamktd25ldHJ6LXBseXR5LWZ1bmRlcm1heC1ocGwtaW50ZXJpb3IsIC5jYXRlZ29yeS0xMC10eXMtcHJ6eWxiaWMtZGxhLXBvbHNraWNoLXN6cGl0YWxpLCAuY2F0ZWdvcnktb3Nsb255LXotcGxleGktcGV0LXBvbGl3ZWdsYW51LWlkZWFsbmUtcm96d2lhemFuaWUtdy1taWVqc2NhY2gtb2JzbHVnaS1rbGllbnRvdyB7XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW46IDNyZW0gMCAzcmVtO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbjogM3JlbSAwIDNyZW07XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmNjcyXCI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LXllbGxvdztcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgtZGFyay1ibHVlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgdGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci10dXBsZXgtdGV4dC1kYXJrZW47XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXR1cGxleC1kYXJrLWJsdWU7XG4gICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIH1cblxuICAgIHRoLCB0ZCB7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl93aGl0ZTtcblxuICAgICAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci10dXBsZXgtZGFyay1ibHVlO1xuICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgIH1cblxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuXG4gICAgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAjYnV0dG9uIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuXG5cbiAgICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fc3BhbiB7XG5cbiAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgLmNzLXBhcmFncmFwaCB7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICBtYXJnaW46IDAgMCAwcmVtO1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDZyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9nYWxsZXJ5O1xuICAgICAgfVxuXG4gICAgICB1bCA+IGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWdyZWVuO1xuICAgICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTEuOWVtO1xuICAgICAgICB3aWR0aDogMS45ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgLmNtcy1ob21lIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7IH0gfVxuXG4uY21zLWhvbWUgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OyB9XG5cbi5jbXMtaG9tZSAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgZm9udC1zaXplOiAzLjhlbTsgfVxuXG4uY21zLWhvbWUgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmNtcy1ob21lIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LXNpemU6IDEuOGVtOyB9XG5cbi5jbXMtaG9tZSAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IC5jcy1wYXJhZ3JhcGguY3MtcGFyYWdyYXBoLS1jb2xzLW5vbmUuY3MtcGFyYWdyYXBoLS1tb2RlLSB7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDJyZW0gYXV0bzsgfVxuICAuY21zLWhvbWUgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCAuY3MtcGFyYWdyYXBoLmNzLXBhcmFncmFwaC0tY29scy1ub25lLmNzLXBhcmFncmFwaC0tbW9kZS06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTdweDtcbiAgICB0b3A6IDVweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmNtcy1ob21lIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlcjpsYXN0LWNoaWxkIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gIGZvbnQtc2l6ZTogMi44cmVtOyB9XG5cbi5jbXMtaG9tZSAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OyB9XG5cbi5jbXMtaG9tZSAuYnV0dG9uLXRlYXNlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGggLmNzLWNtcy1ibG9jayBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY21zLWhvbWUgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhcmFncmFwaCAuY3MtY21zLWJsb2NrIGRpdiAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGggLmNzLWNtcy1ibG9jayBkaXYgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbjo6YWZ0ZXIsIC5jbXMtaG9tZSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFyYWdyYXBoIC5jcy1jbXMtYmxvY2sgZGl2IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1idXR0b246OmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGggLmNzLWNtcy1ibG9jayBkaXYgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbjo6YWZ0ZXI6aG92ZXIsIC5jbXMtaG9tZSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFyYWdyYXBoIC5jcy1jbXMtYmxvY2sgZGl2IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1idXR0b246OmJlZm9yZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAuY21zLWhvbWUgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhcmFncmFwaCAuY3MtY21zLWJsb2NrIGRpdiAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtYnV0dG9uIC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1idXR0b24tc3BhbiB7XG4gICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cblxuLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCB7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgZm9udC1zaXplOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyB9XG4gIC5jbXMtaG9tZSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudCAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7IH1cbiAgLmNtcy1ob21lIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIuY3MtY29udGFpbmVyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fdGV4dC1jb250ZW50IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSBzcGFuLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsgfVxuXG4uY21zLWhvbWUgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWJ1dHRvbiAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy9jb2xvcnMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmNtcy1ob21lIHtcbiAgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9bGFwdG9wJykge1xuICAgICAgcGFkZGluZzogMCAwIDIwcHggMDtcbiAgICB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgICBmb250LXNpemU6IDMuOGVtO1xuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyayAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gICAgfVxuXG4gICAgLmNzLXBhcmFncmFwaC5jcy1wYXJhZ3JhcGgtLWNvbHMtbm9uZS5jcy1wYXJhZ3JhcGgtLW1vZGUtIHtcbiAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcXGYxMDVcIjtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTdweDtcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWltYWdlLXRlYXNlcjpsYXN0LWNoaWxkIHtcbiAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX2N0YSB7XG4gICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLXRlYXNlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGgge1xuICAgIC5jcy1jbXMtYmxvY2sge1xuICAgICAgZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NztcblxuICAgICAgICAgICY6OmFmdGVyLFxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fY3RhLWJ1dHRvbi1zcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyLmNzLWNvbnRhaW5lci0tdGVhc2VyLWFuZC10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtLW1vYmlsZV9pbWFnZS10ZXh0IHtcbiAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3RleHQtY29udGVudCB7XG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgICAgICBmb250LXNpemU6IDMycHggIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgc3Bhbi5jcy1pbWFnZS10ZWFzZXJfX2N0YS1idXR0b24tc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1idXR0b24gLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn0iLCJcbi5jYXRlZ29yeXBhdGgta2ltLWplc3Rlc215IHtcbiAgLmNzLWltYWdlLXRlYXNlci5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy0yLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LW1vYmlsZS0xIHtcbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtZGFyay5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCxcbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDtcblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy9jb2xvcnMnO1xuXG4uY2hlY2tvdXQtY2FydC1pbmRleCB7XG4gIC5wYWdlLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gIH1cblxuICAjc2hpcHBpbmctemlwLWZvcm0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZmllbGQuY2hvaWNlLml0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IHtcblxuICAuc2hpcHBpbmcge1xuICAgIC5leGNsIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDQwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2hlY2tvdXQtYWdyZWVtZW50cyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG5cblxuICAudG90YWxzLXRheCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci10dXBsZXgteWVsbG93ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAkY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDFyZW0gMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jaGVja291dC1pbmRleC1pbmRleCB7XG4gIC5jcy1jaGVja291dCB7XG4gICAgLmNzLWNoZWNrb3V0X19zaWRlYmFyIHtcbiAgICAgIC5jaGVja291dC1hZ3JlZW1lbnRzIHtcbiAgICAgICAgLmNoZWNrb3V0LWFncmVlbWVudCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ub3JkZXItYXR0cmlidXRlcz4ub3JkZXItYXR0cmlidXRlcy1mb3JtLmZpZWxkc2V0LmFkZHJlc3Mge1xuICBzZWxlY3Quc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuLy8gcDI0IGNoZWNrb3V0XG5cbi5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X19hZ3JlZW1lbnRzLmZpZWxkc2V0Pi5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X19hZ3JlZW1lbnQuZmllbGQuY2hvaWNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIGVycm9yIHNoaXBpbmdtZXRob2RzIGxpc3RcblxuLnJvdy5yb3ctZXJyb3I+LmNvbC5jb2wtZXJyb3I+Lm5vLWRpc3BsYXkge1xuICBkaXNwbGF5OiBub25lO1xufSIsIi5jdXN0b21lci1hY2NvdW50LWNyZWF0ZSwgLmN1c3RvbWVyLWFjY291bnQtbG9naW4ge1xuICAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwcmVtIDAgMXJlbSAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuXG4gICAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAuY3MtZGFzaGJvYXJkIC5sZWdlbmQge1xuICAgIHBhZGRpbmc6IDNyZW0gMCAxcmVtIDAgIWltcG9ydGFudDtcbiAgfVxuXG4ubGVnZW5kIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG4gIC5sYWJlbCB7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gIH1cbn1cblxuLnpnb2R5LWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIDAgMCAxcmVtO1xufVxuIiwiLnBhZ2UtbGF5b3V0LXN6YWNob3duaWNhIHtcbiAgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuICAuY29sdW1uLm1haW4ge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwcmVtIDAgMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLnByb21vLWluZm9iYW5uZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNjYzFjMTA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMCAwIDEwcHg7IH1cbiAgLnByb21vLWluZm9iYW5uZXIgYSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAucHJvbW8taW5mb2Jhbm5lciBhIC52YWx1ZS1wcm9tb2Jhbm5lcl9oZWFkZXIge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyB9XG4gICAgLnByb21vLWluZm9iYW5uZXIgYSAuc3ByYXdkei1wcm9tb2Jhbm5lcl9oZWFkZXIge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBjb2xvcjogI2NjMWMxMDtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gICAgLnByb21vLWluZm9iYW5uZXIgYTpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cblxuLnByb21vLWluZm9iYW5uZXItZ3JlZW4ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICM4M2JkMzQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbjogMCAwIDEwcHg7IH1cbiAgLnByb21vLWluZm9iYW5uZXItZ3JlZW4gYSB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLnByb21vLWluZm9iYW5uZXItZ3JlZW4gYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfSB9XG4gICAgLnByb21vLWluZm9iYW5uZXItZ3JlZW4gYSAudmFsdWUtcHJvbW9iYW5uZXJfaGVhZGVyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuICAgIC5wcm9tby1pbmZvYmFubmVyLWdyZWVuIGEgLnNwcmF3ZHotcHJvbW9iYW5uZXJfaGVhZGVyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgY29sb3I6ICM4M2JkMzQ7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAgIC5wcm9tby1pbmZvYmFubmVyLWdyZWVuIGE6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5oZWFkZXJfX2Jhbm5lcl9wcm9tb2Jhbm5lciB7XG4gICAgbWFyZ2luLXRvcDogMHB4OyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy9jb2xvcnMnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG5cblxuXG4ucHJvbW8taW5mb2Jhbm5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogJGNvbG9yX3RodW5kZXJiaXJkO1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuXG4gICAgICAudmFsdWUtcHJvbW9iYW5uZXJfaGVhZGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwcmF3ZHotcHJvbW9iYW5uZXJfaGVhZGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50OztcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfdGh1bmRlcmJpcmQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIH1cblxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG59XG5cbi5wcm9tby1pbmZvYmFubmVyLWdyZWVuIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZWNvLXR1cGxleDtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luOiAwIDAgMTBweDtcblxuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG4gICAgLnZhbHVlLXByb21vYmFubmVyX2hlYWRlciB7XG4gICAgICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5zcHJhd2R6LXByb21vYmFubmVyX2hlYWRlciB7XG4gICAgICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7O1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBjb2xvcjogJGNvbG9yLWVjby10dXBsZXg7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG4uaGVhZGVyX19iYW5uZXJfcHJvbW9iYW5uZXIge1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIH1cbn1cbiIsIi5hbWNmb3JtLXRvb2xiYXIgLmFtY2Zvcm0tc3VibWl0LmFjdGlvbi5wcmltYXJ5IHtcbiAgbWluLXdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xufVxuXG4uYW1jZm9ybS10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cbi5hbWZvcm0tdmVyc2lvbnR3by1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4zcmVtICFpbXBvcnRhbnQ7XG59XG5cblxuXG5cbi5hbWNmb3JtLW11bHRpLXBhZ2Uge1xuICAuYW1mb3JtLXZlcnNpb250d28tbGFiZWwge1xuICAgIHdvcmQtYnJlYWs6IHVuc2V0O1xuICB9XG5cbiAgLmFtZm9ybS1jaGVja2JveCxcbiAgLmNoZWNrYm94LWdyb3VwIHtcbiAgICBsaW5lLWhlaWdodDogMTEwJTtcbiAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5wYWdlLWxheW91dC1lY28ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAucGFnZS1sYXlvdXQtZWNvIGgxLCAucGFnZS1sYXlvdXQtZWNvIGgyIHtcbiAgICBjb2xvcjogIzgzYmQzNDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiA0cmVtOyB9XG4gIC5wYWdlLWxheW91dC1lY28gaDM6bm90KC5jcy1jYXRlZ29yeS1saW5rc19fdGl0bGUpOm5vdCguY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlKTpub3QoLmZvb3Rlci10dXBsZXgpOm5vdCgubmV3c2xldHRlci10aXRsZSkge1xuICAgIG1hcmdpbjogM3JlbSAwIDNyZW07XG4gICAgZm9udC1zaXplOiAxLjhyZW07IH1cbiAgICAucGFnZS1sYXlvdXQtZWNvIGgzOm5vdCguY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlKTpub3QoLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSk6bm90KC5mb290ZXItdHVwbGV4KTpub3QoLm5ld3NsZXR0ZXItdGl0bGUpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcZjA2Y1wiO1xuICAgICAgY29sb3I6ICM4M2JkMzQ7XG4gICAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHBhZGRpbmc6IDEycHggMTBweDtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgLnBhZ2UtbGF5b3V0LWVjbyBwIHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgLnBhZ2UtbGF5b3V0LWVjbyBwIGltZyB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtbGF5b3V0LWVjbyAjYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5wYWdlLWxheW91dC1lY28gLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4ge1xuICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4OyB9XG4gIC5wYWdlLWxheW91dC1lY28gLmNzLXBhcmFncmFwaCBpbWcge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LWVjbyAuY3MtcGFyYWdyYXBoIHtcbiAgICAgIG1hcmdpbjogMCAwIDByZW07IH0gfVxuICAucGFnZS1sYXlvdXQtZWNvIC5jcy1wYXJhZ3JhcGggdWwge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gM3JlbSA2cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7IH1cbiAgLnBhZ2UtbGF5b3V0LWVjbyAuY3MtcGFyYWdyYXBoIHVsID4gbGk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuICAgIGNvbG9yOiAjODNiZDM0O1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4gICAgd2lkdGg6IDEuOWVtOyB9XG4gIC5wYWdlLWxheW91dC1lY28gLmNvbHVtbi5tYWluIHtcbiAgICBwYWRkaW5nOiAwcmVtIDAgMDsgfVxuICAucGFnZS1sYXlvdXQtZWNvIC5jcy1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMHJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcmVtOyB9XG5cbmNzLWNhdGVnb3J5LWxpbmtzX19kcm9wZG93biBjcy1jYXRlZ29yeS1saW5rcy1kcm9wZG93blxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0IGEge1xuICBmb250LXNpemU6IDMwcHggIWltcG9ydGFudDsgfVxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtYWxsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAxcmVtIDAgMCAyLjVyZW07IH1cblxuLmNhdGVnb3J5LXN0cmVmYS13aWVkenkgaDIuY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZWxld2FjamUtd2VudHlsb3dhbmUgcDpmaXJzdC1jaGlsZCwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2EgcDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAxNTBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5lbGV3YWNqZS13ZW50eWxvd2FuZSBwOmZpcnN0LWNoaWxkLCAuc3RyZWZhLXdpZWR6eS1zemFjaG93bmljYSBwOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1MHB4OyB9IH1cblxuLmNvbC1tZC00LCAuY29sLW1kLTkge1xuICBwYWRkaW5nOiAxcmVtOyB9XG5cbi5jb2wtbGctMywgLmNvbC1sZy02IHtcbiAgcGFkZGluZzogMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG4vL3BhZ2UtbGF5b3V0LXN0cmVmYS13aWVkenlcblxuXG4gLnBhZ2UtbGF5b3V0LWVjbyB7XG5cbiAgIGgxLGgyIHtcbiAgICAgY29sb3I6ICRjb2xvci1lY28tdHVwbGV4O1xuICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgIH1cblxuXG5cbiAgICBoMzpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKSB7XG4gICAgICBtYXJnaW46IDNyZW0gMCAzcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDZjXCI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZWNvLXR1cGxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIC8vZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICB9XG5cblxuXG4gICAgfVxuXG5cbiAgICBmb250LXNpemU6IDEuNnJlbTtcblxuICAgIHAge1xuICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgI2J1dHRvbiB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cblxuXG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4ge1xuXG4gICAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgIH1cblxuICAgIC5jcy1wYXJhZ3JhcGgge1xuXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgbWFyZ2luOiAwIDAgMHJlbTtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDNyZW0gM3JlbSA2cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlO1xuICAgICAgfVxuXG4gICAgICB1bCA+IGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZWNvLXR1cGxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjllbTtcbiAgICAgICAgd2lkdGg6IDEuOWVtO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwIDA7XG4gICAgfVxuXG5cbiAgICAuY3MtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMHJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDByZW07XG4gIH1cblxuXG4gIH1cblxuXG4vLy8vL1xuY3MtY2F0ZWdvcnktbGlua3NfX2Ryb3Bkb3duIGNzLWNhdGVnb3J5LWxpbmtzLWRyb3Bkb3duXG5cblxuXG5cbi8vIC5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCB7XG4vL1xuLy8gICAmOnZpc2l0ZWQge1xuLy8gICAgICAgY29sb3I6IHJlZDtcbi8vICAgfVxuLy9cbi8vICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4vL1xuLy8gICB1bCB7XG4vLyAgICAgbWFyZ2luLXRvcDogMnJlbTtcbi8vICAgICBsaXN0LXN0eWxlOiBub25lO1xuLy8gICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDZyZW07XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG4vLyAgIH1cbi8vXG4vLyAgIHVsID4gbGk6YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuLy8gICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWdyZWVuO1xuLy8gICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4vLyAgICAgd2lkdGg6IDEuOWVtO1xuLy8gICB9XG4vLyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnRcbn1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtO1xufVxuXG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IHtcbiAgaDIuY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5lbGV3YWNqZS13ZW50eWxvd2FuZSwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2Ege1xuICBwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgIH1cbiAgfVxufVxuXG5cblxuLmNvbC1tZC00LCAuY29sLW1kLTkge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLmNvbC1sZy0zLCAuY29sLWxnLTYge1xuICBwYWRkaW5nOiAycmVtO1xufVxuIiwiI3R1cGxleC13ZWJpbmFyLWNvdW50ZXIge1xuICBmb250LXNpemU6IDUxcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICNjYzFjMTI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDUwNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogYXV0bztcbn1cbiIsIi5wb3B1cC1yZWRpbmdve1xyXG4gIGJ1dHRvbntcclxuICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgYmFja2dyb3VuZDogIzc4YjBlMDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgY29sb3I6d2hpdGU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBpOmJlZm9yZXtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29udGVudC13cmFwcGVye1xyXG4gICAgLm1vZGFsLWhlYWRlcntcclxuICAgICAgLmNzLWNvbnRhaW5lcntcclxuICAgICAgICBjdXJzb3I6ZGVmYXVsdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYnV0dG9ue1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG4gICAgYnV0dG9uOmJlZm9yZXtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XHJcbiAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgZm9udC1zaXplOiAyZW07XHJcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xyXG4gICAgfVxyXG4gIH1cclxuICAucG9wdXAtZm9ybS1idXR0b257XHJcbiAgICBiYWNrZ3JvdW5kOiAjNzhiMGUwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgcGFkZGluZzogMXJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcbn1cclxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLnBhZ2UtbGF5b3V0LW1lc2hxYSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5wYWdlLWxheW91dC1tZXNocWEgaDEsIC5wYWdlLWxheW91dC1tZXNocWEgaDIge1xuICAgIGNvbG9yOiAjMzU0MjQ3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDRyZW07IH1cbiAgLnBhZ2UtbGF5b3V0LW1lc2hxYSBoMzpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKSB7XG4gICAgbWFyZ2luOiAzcmVtIDAgM3JlbTtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLnBhZ2UtbGF5b3V0LW1lc2hxYSBoMzpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKTpiZWZvcmUge1xuICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL01lc2hxYS1JY29uLnN2Z1wiKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gIC5wYWdlLWxheW91dC1tZXNocWEgcCB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuICAgIC5wYWdlLWxheW91dC1tZXNocWEgcCBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wYWdlLWxheW91dC1tZXNocWEgI2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAucGFnZS1sYXlvdXQtbWVzaHFhIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAucGFnZS1sYXlvdXQtbWVzaHFhIC5jcy1wYXJhZ3JhcGggaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYWdlLWxheW91dC1tZXNocWEgLmNzLXBhcmFncmFwaCB7XG4gICAgICBtYXJnaW46IDAgMCAwcmVtOyB9IH1cbiAgLnBhZ2UtbGF5b3V0LW1lc2hxYSAuY3MtcGFyYWdyYXBoIHVsIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogM3JlbSAzcmVtIDNyZW0gNnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZXNtb2tlOyB9XG4gIC5wYWdlLWxheW91dC1tZXNocWEgLmNzLXBhcmFncmFwaCB1bCA+IGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIxXCI7XG4gICAgY29sb3I6ICMzNTQyNDc7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjllbTtcbiAgICB3aWR0aDogMS45ZW07IH1cbiAgLnBhZ2UtbGF5b3V0LW1lc2hxYSAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6IDByZW0gMCAwOyB9XG4gIC5wYWdlLWxheW91dC1tZXNocWEgLmNzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDByZW07IH1cblxuY3MtY2F0ZWdvcnktbGlua3NfX2Ryb3Bkb3duIGNzLWNhdGVnb3J5LWxpbmtzLWRyb3Bkb3duXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QgYSB7XG4gIGZvbnQtc2l6ZTogMzBweCAhaW1wb3J0YW50OyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdC1hbGwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdC1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDFyZW0gMCAwIDIuNXJlbTsgfVxuXG4uY2F0ZWdvcnktc3RyZWZhLXdpZWR6eSBoMi5jcy1jYXRlZ29yeS1saW5rc19fdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5lbGV3YWNqZS13ZW50eWxvd2FuZSBwOmZpcnN0LWNoaWxkLCAuc3RyZWZhLXdpZWR6eS1zemFjaG93bmljYSBwOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDE1MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmVsZXdhY2plLXdlbnR5bG93YW5lIHA6Zmlyc3QtY2hpbGQsIC5zdHJlZmEtd2llZHp5LXN6YWNob3duaWNhIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy10b3A6IDUwcHg7IH0gfVxuXG4uY29sLW1kLTQsIC5jb2wtbWQtOSB7XG4gIHBhZGRpbmc6IDFyZW07IH1cblxuLmNvbC1sZy0zLCAuY29sLWxnLTYge1xuICBwYWRkaW5nOiAycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbi8vcGFnZS1sYXlvdXQtc3RyZWZhLXdpZWR6eVxuXG5cbiAucGFnZS1sYXlvdXQtbWVzaHFhe1xuXG4gICBoMSxoMiB7XG4gICAgIGNvbG9yOiAkY29sb3ItbWVhc2hxYS10dXBsZXg7XG4gICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgfVxuXG5cblxuICAgIGgzOm5vdCguY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlKTpub3QoLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSk6bm90KC5mb290ZXItdHVwbGV4KTpub3QoLm5ld3NsZXR0ZXItdGl0bGUpIHtcbiAgICAgIG1hcmdpbjogM3JlbSAwIDNyZW07XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9NZXNocWEtSWNvbi5zdmdcIik7XG4gICAgICAgIC8vZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG5cblxuICAgIH1cblxuXG4gICAgZm9udC1zaXplOiAxLjZyZW07XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICBpbWcge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgICNidXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cblxuICAgIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcblxuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAuY3MtcGFyYWdyYXBoIHtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgIG1hcmdpbjogMCAwIDByZW07XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogM3JlbSAzcmVtIDNyZW0gNnJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTtcbiAgICAgIH1cblxuICAgICAgdWwgPiBsaTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMjFcIjtcbiAgICAgICAgY29sb3I6ICRjb2xvci1tZWFzaHFhLXR1cGxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjllbTtcbiAgICAgICAgd2lkdGg6IDEuOWVtO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwIDA7XG4gICAgfVxuXG5cbiAgICAuY3MtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMHJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDByZW07XG4gIH1cblxuXG4gIH1cblxuXG4vLy8vL1xuY3MtY2F0ZWdvcnktbGlua3NfX2Ryb3Bkb3duIGNzLWNhdGVnb3J5LWxpbmtzLWRyb3Bkb3duXG5cblxuXG5cbi8vIC5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCB7XG4vL1xuLy8gICAmOnZpc2l0ZWQge1xuLy8gICAgICAgY29sb3I6IHJlZDtcbi8vICAgfVxuLy9cbi8vICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4vL1xuLy8gICB1bCB7XG4vLyAgICAgbWFyZ2luLXRvcDogMnJlbTtcbi8vICAgICBsaXN0LXN0eWxlOiBub25lO1xuLy8gICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDZyZW07XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG4vLyAgIH1cbi8vXG4vLyAgIHVsID4gbGk6YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuLy8gICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWdyZWVuO1xuLy8gICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4vLyAgICAgd2lkdGg6IDEuOWVtO1xuLy8gICB9XG4vLyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnRcbn1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtO1xufVxuXG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IHtcbiAgaDIuY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5lbGV3YWNqZS13ZW50eWxvd2FuZSwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2Ege1xuICBwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgIH1cbiAgfVxufVxuXG5cblxuLmNvbC1tZC00LCAuY29sLW1kLTkge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLmNvbC1sZy0zLCAuY29sLWxnLTYge1xuICBwYWRkaW5nOiAycmVtO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIGgxLCAucGFnZS1sYXlvdXQtYWt0dWFsbm9zY2kgaDIge1xuICAgIGNvbG9yOiAjMzU0MjQ3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDRyZW07IH1cbiAgLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIGgzOm5vdCguY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlKTpub3QoLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSk6bm90KC5mb290ZXItdHVwbGV4KTpub3QoLm5ld3NsZXR0ZXItdGl0bGUpIHtcbiAgICBtYXJnaW46IDNyZW0gMCAzcmVtO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAucGFnZS1sYXlvdXQtYWt0dWFsbm9zY2kgaDM6bm90KC5jcy1jYXRlZ29yeS1saW5rc19fdGl0bGUpOm5vdCguY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlKTpub3QoLmZvb3Rlci10dXBsZXgpOm5vdCgubmV3c2xldHRlci10aXRsZSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9XeWtyei1JY29uLnN2Z1wiKTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgICB3aWR0aDogNTBweDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XG4gIC5wYWdlLWxheW91dC1ha3R1YWxub3NjaSBwIHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIHAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1sYXlvdXQtYWt0dWFsbm9zY2kgI2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAucGFnZS1sYXlvdXQtYWt0dWFsbm9zY2kgLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4ge1xuICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4OyB9XG4gIC5wYWdlLWxheW91dC1ha3R1YWxub3NjaSAuY3MtcGFyYWdyYXBoIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS1sYXlvdXQtYWt0dWFsbm9zY2kgLmNzLXBhcmFncmFwaCB7XG4gICAgICBtYXJnaW46IDAgMCAwcmVtOyB9IH1cbiAgLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIC5jcy1wYXJhZ3JhcGggdWwge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gM3JlbSA2cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7IH1cbiAgLnBhZ2UtbGF5b3V0LWFrdHVhbG5vc2NpIC5jcy1wYXJhZ3JhcGggdWwgPiBsaTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMVwiO1xuICAgIGNvbG9yOiAjMzU0MjQ3O1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4gICAgd2lkdGg6IDEuOWVtOyB9XG4gIC5wYWdlLWxheW91dC1ha3R1YWxub3NjaSAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6IDByZW0gMCAwOyB9XG4gIC5wYWdlLWxheW91dC1ha3R1YWxub3NjaSAuY3MtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDByZW07XG4gICAgcGFkZGluZy1yaWdodDogMHJlbTsgfVxuXG5jcy1jYXRlZ29yeS1saW5rc19fZHJvcGRvd24gY3MtY2F0ZWdvcnktbGlua3MtZHJvcGRvd25cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtOyB9XG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IGgyLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmVsZXdhY2plLXdlbnR5bG93YW5lIHA6Zmlyc3QtY2hpbGQsIC5zdHJlZmEtd2llZHp5LXN6YWNob3duaWNhIHA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMTUwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuZWxld2FjamUtd2VudHlsb3dhbmUgcDpmaXJzdC1jaGlsZCwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2EgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogNTBweDsgfSB9XG5cbi5jb2wtbWQtNCwgLmNvbC1tZC05IHtcbiAgcGFkZGluZzogMXJlbTsgfVxuXG4uY29sLWxnLTMsIC5jb2wtbGctNiB7XG4gIHBhZGRpbmc6IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuLy9wYWdlLWxheW91dC1zdHJlZmEtd2llZHp5XG5cblxuIC5wYWdlLWxheW91dC1ha3R1YWxub3NjaXtcblxuICAgaDEsaDIge1xuICAgICBjb2xvcjogJGNvbG9yLW1lYXNocWEtdHVwbGV4O1xuICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgIH1cblxuXG5cbiAgICBoMzpub3QoLmNzLWNhdGVnb3J5LWxpbmtzX190aXRsZSk6bm90KC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUpOm5vdCguZm9vdGVyLXR1cGxleCk6bm90KC5uZXdzbGV0dGVyLXRpdGxlKSB7XG4gICAgICBtYXJnaW46IDNyZW0gMCAzcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvV3lrcnotSWNvbi5zdmdcIik7XG4gICAgICAgIC8vZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG5cblxuICAgIH1cblxuXG4gICAgZm9udC1zaXplOiAxLjZyZW07XG5cbiAgICBwIHtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICBpbWcge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgICNidXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cblxuICAgIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcblxuICAgICAgbWluLXdpZHRoOiAyNTBweDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAuY3MtcGFyYWdyYXBoIHtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgIG1hcmdpbjogMCAwIDByZW07XG4gICAgICB9XG5cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogM3JlbSAzcmVtIDNyZW0gNnJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTtcbiAgICAgIH1cblxuICAgICAgdWwgPiBsaTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMjFcIjtcbiAgICAgICAgY29sb3I6ICRjb2xvci1tZWFzaHFhLXR1cGxleDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDUgUHJvXCI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjllbTtcbiAgICAgICAgd2lkdGg6IDEuOWVtO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMHJlbSAwIDA7XG4gICAgfVxuXG5cbiAgICAuY3MtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMHJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDByZW07XG4gIH1cblxuXG4gIH1cblxuXG4vLy8vL1xuY3MtY2F0ZWdvcnktbGlua3NfX2Ryb3Bkb3duIGNzLWNhdGVnb3J5LWxpbmtzLWRyb3Bkb3duXG5cblxuXG5cbi8vIC5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCB7XG4vL1xuLy8gICAmOnZpc2l0ZWQge1xuLy8gICAgICAgY29sb3I6IHJlZDtcbi8vICAgfVxuLy9cbi8vICAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnQ7XG4vL1xuLy8gICB1bCB7XG4vLyAgICAgbWFyZ2luLXRvcDogMnJlbTtcbi8vICAgICBsaXN0LXN0eWxlOiBub25lO1xuLy8gICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAzcmVtIDZyZW07XG4vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG4vLyAgIH1cbi8vXG4vLyAgIHVsID4gbGk6YmVmb3JlIHtcbi8vICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuLy8gICAgIGNvbG9yOiAkY29sb3ItdHVwbGV4LWdyZWVuO1xuLy8gICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IFByb1wiO1xuLy8gICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICAgIG1hcmdpbi1sZWZ0OiAtMS45ZW07XG4vLyAgICAgd2lkdGg6IDEuOWVtO1xuLy8gICB9XG4vLyB9XG5cbi5jcy1jYXRlZ29yeS1saW5rc19fbGlzdCBhIHtcbiAgZm9udC1zaXplOiAzMHB4ICFpbXBvcnRhbnRcbn1cblxuLmNzLWNhdGVnb3J5LWxpbmtzX19saXN0LWFsbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuXG4uY3MtY2F0ZWdvcnktbGlua3NfX2xpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMXJlbSAwIDAgMi41cmVtO1xufVxuXG5cbi5jYXRlZ29yeS1zdHJlZmEtd2llZHp5IHtcbiAgaDIuY3MtY2F0ZWdvcnktbGlua3NfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5lbGV3YWNqZS13ZW50eWxvd2FuZSwgLnN0cmVmYS13aWVkenktc3phY2hvd25pY2Ege1xuICBwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgIH1cbiAgfVxufVxuXG5cblxuLmNvbC1tZC00LCAuY29sLW1kLTkge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLmNvbC1sZy0zLCAuY29sLWxnLTYge1xuICBwYWRkaW5nOiAycmVtO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXJzIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci5maWx0ZXItYXR0cmlidXRlLWtvbG9yIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVycyAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXIuZmlsdGVyLWF0dHJpYnV0ZS1rb2xvciAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXItY29udGVudCAuc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZC5rb2xvciB7XG4gIHBhZGRpbmc6IDFyZW0gMHJlbTsgfVxuICAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXJzIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci5maWx0ZXItYXR0cmlidXRlLWtvbG9yIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci1jb250ZW50IC5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkLmtvbG9yIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlcnMgLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVyLmZpbHRlci1hdHRyaWJ1dGUta29sb3IgLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVyLWNvbnRlbnQgLnN3YXRjaC1hdHRyaWJ1dGUuc3dhdGNoLWxheWVyZWQua29sb3IgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyAuc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICAgICAgbWluLXdpZHRoOiAxMHJlbTsgfVxuICAgICAgLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVycyAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXIuZmlsdGVyLWF0dHJpYnV0ZS1rb2xvciAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXItY29udGVudCAuc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZC5rb2xvciAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCAuc3dhdGNoLW9wdGlvbi5jb2xvciB7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgICAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXJzIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci5maWx0ZXItYXR0cmlidXRlLWtvbG9yIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci1jb250ZW50IC5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkLmtvbG9yIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIC5zd2F0Y2gtb3B0aW9uLmNvbG9yOjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXJzIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci5maWx0ZXItYXR0cmlidXRlLWtvbG9yIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci1jb250ZW50IC5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkLmtvbG9yIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIC5zd2F0Y2gtb3B0aW9uLmNvbG9yOjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVyc3tcbiAgICAuY3MtYWZ0ZXJzZWFyY2gtbmF2X19maWx0ZXIuZmlsdGVyLWF0dHJpYnV0ZS1rb2xvcntcbiAgICAgICAgLmNzLWFmdGVyc2VhcmNoLW5hdl9fZmlsdGVyLXRpdGxle1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jcy1hZnRlcnNlYXJjaC1uYXZfX2ZpbHRlci1jb250ZW50e1xuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUuc3dhdGNoLWxheWVyZWQua29sb3J7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwcmVtO1xuICAgICAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnN7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVke1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zd2F0Y2gtb3B0aW9uLmNvbG9ye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5ibG9jay5kaXNjb3VudC5jcy1kaXNjb3VudC5jcy1kaXNjb3VudC0tY291cG9uIC5jb250ZW50LmNzLWRpc2NvdW50X19jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uYmxvY2suZGlzY291bnQuY3MtZGlzY291bnQuY3MtZGlzY291bnQtLWNvdXBvbiAjZGlzY291bnQtY291cG9uLWZvcm0gLmZpZWxkID4gLmxhYmVsIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC1zaXplOiAxLjdyZW07IH1cblxuLmJsb2NrLmRpc2NvdW50LmNzLWRpc2NvdW50LmNzLWRpc2NvdW50LS1jb3Vwb24gI2Rpc2NvdW50LWNvdXBvbi1mb3JtIC5jb250cm9sID4gLmlucHV0LXRleHQge1xuICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsgfVxuXG4uYmxvY2suZGlzY291bnQuY3MtZGlzY291bnQuY3MtZGlzY291bnQtLWNvdXBvbiAjZGlzY291bnQtY291cG9uLWZvcm0gLmFjdGlvbnMtdG9vbGJhci5jcy1kaXNjb3VudF9fYnV0dG9ucyA+IGJ1dHRvbiB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM3N2IxZTA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmJsb2NrLmRpc2NvdW50LmNzLWRpc2NvdW50LmNzLWRpc2NvdW50LS1jb3Vwb24ge1xuICAgIC5jb250ZW50LmNzLWRpc2NvdW50X19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAjZGlzY291bnQtY291cG9uLWZvcm0ge1xuICAgICAgICAuZmllbGQ+LmxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250cm9sPi5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhci5jcy1kaXNjb3VudF9fYnV0dG9ucz5idXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzc3YjFlMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNvdW50ZG93biAjY2RfdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjODBjYWQ0O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBtaW4taGVpZ2h0OiA2NXB4OyB9XG4gIC5jb3VudGRvd24gI2NkX3RleHQgLmR5bmFtaWNDb3VudGRvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbjogMXJlbTsgfVxuICAgIC5jb3VudGRvd24gI2NkX3RleHQgLmR5bmFtaWNDb3VudGRvd24gLmRheXMsXG4gICAgLmNvdW50ZG93biAjY2RfdGV4dCAuZHluYW1pY0NvdW50ZG93biAuaG91cnMsXG4gICAgLmNvdW50ZG93biAjY2RfdGV4dCAuZHluYW1pY0NvdW50ZG93biAubWludXRlcyxcbiAgICAuY291bnRkb3duICNjZF90ZXh0IC5keW5hbWljQ291bnRkb3duIC5zZWNvbmRzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jb3VudGRvd24gI2NkX3RleHQgLmR5bmFtaWNDb3VudGRvd24gLmxpY3pieSB7XG4gICAgICBtYXJnaW46IDByZW0gMC41cmVtOyB9XG4gICAgICAuY291bnRkb3duICNjZF90ZXh0IC5keW5hbWljQ291bnRkb3duIC5saWN6Ynkgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDByZW0gMC41cmVtOyB9XG4gICAgLmNvdW50ZG93biAjY2RfdGV4dCAuZHluYW1pY0NvdW50ZG93biAubmF6d2Ege1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAuY291bnRkb3duICNjZF90ZXh0IC5keW5hbWljQ291bnRkb3duIC5jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvY29sb3JzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5jb3VudGRvd24gI2NkX3RleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICM4MGNhZDQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBtaW4taGVpZ2h0OiA2NXB4O1xuXG4gICAgLmR5bmFtaWNDb3VudGRvd24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDFyZW07XG5cbiAgICAgICAgLmRheXMsXG4gICAgICAgIC5ob3VycyxcbiAgICAgICAgLm1pbnV0ZXMsXG4gICAgICAgIC5zZWNvbmRzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5saWN6Ynkge1xuICAgICAgICAgICAgbWFyZ2luOiAwcmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHJlbSAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubmF6d2Ege1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY291bnRkb3duLXNlcGFyYXRvciB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy0yIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gIGdhcDogMnJlbSAhaW1wb3J0YW50OyB9XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctMiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMgPiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5jcy1jb250YWluZXItLWltYWdlLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctMiAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgIGdhcDogMnJlbSAhaW1wb3J0YW50O1xufVxuXG4uY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzPi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9pbWFnZS10ZWFzZXIvbWl4aW5zL2NvbnRyYXN0LW9wdGltaXplcnMvZ3JhZGllbnQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9pbWFnZS10ZWFzZXIvbWl4aW5zL2NvbnRyYXN0LW9wdGltaXplcnMvdGV4dC1zaGFkb3cnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzJzsgLy8gVE1QXG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnNjc3MnOyAvLyBUTVBcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kaXRfbW9iaWxlLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJGl0X2Rlc2t0b3AtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbiRpdC0tc2xpZGVyX21vYmlsZS1nYXA6ICRpdF9tb2JpbGUtZ2FwICFkZWZhdWx0O1xuJGl0LS1zbGlkZXJfZGVza3RvcC1nYXA6ICRpdF9kZXNrdG9wLWdhcCAhZGVmYXVsdDtcblxuLy8gXCJuZXh0LXNsaWRlLXZpc2libGVcIiB3aWxsIHdvcmsgb24gbW9iaWxlcyBhbmQgYnJvd3Nlci13aWR0aCBkZXNrdG9wXG4vLyBGb3IgY29udGFpbmVyLXdpZHRoIGRlc2t0b3AgaXQgZG9lc24ndCBtYWtlIHNlbnNlLlxuLy8gUGxlYXNlIHVzZSAndXNlX3dob2xlX3NjcmVlbicgb3B0aW9uIGluIGV0Yy92aWV3IHRvIGhhdmUgbmV4dCBzbGlkZXMgdmlzaWJsZSBmb3IgY29udGVudC13aWR0aFxuJGl0LS1zbGlkZXJfbmV4dC1zbGlkZS12aXNpYmxlOiAwcHggIWRlZmF1bHQ7IC8vIG11c3QgYmUgd2l0aCB1bml0IChhbnkga2luZClcblxuLy8gJGl0X2N0YS10eXBlLS1saWdodDogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kaXRfY3RhLXR5cGUtLWxpZ2h0OiAncHJpbWFyeScgIWRlZmF1bHQ7XG4kaXRfY3RhLXR5cGUtLWRhcms6ICdwcmltYXJ5JyAhZGVmYXVsdDtcbiRpdF9jdGEtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kaXRfY3RhLWljb24tcG9zaXRpb246ICdyaWdodCcgIWRlZmF1bHQ7XG4kaXRfY3RhLWljb24td2lkdGg6IDEuMnJlbSAhZGVmYXVsdDtcbiRpdF9jdGEtaWNvbi1oZWlnaHQ6IDEuNHJlbSAhZGVmYXVsdDtcblxuLy8gY29udHJhc3Qgb3B0aW1pemVyc1xuJGl0X2NvbnRhaW5lci1iYWNrZ3JvdW5kLS1saWdodDogJGNvbG9yX2JhY2tncm91bmQtNzAwICFkZWZhdWx0O1xuJGl0X2NvbnRhaW5lci1iYWNrZ3JvdW5kLS1kYXJrOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kaXRfZ3JhZGllbnQtY29sb3ItLWxpZ2h0OiAkY29sb3JfYmFja2dyb3VuZC03MDAgIWRlZmF1bHQ7XG4kaXRfZ3JhZGllbnQtY29sb3ItLWRhcms6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRpdF90ZXh0LXNoYWRvdy1jb2xvci0tbGlnaHQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTcwMCAhZGVmYXVsdDtcbiRpdF90ZXh0LXNoYWRvdy1jb2xvci0tZGFyazogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGl0X3RleHQtc2hhZG93LW9mZnNldC0tbGlnaHQ6IDAgMCAwLjRyZW0gIWRlZmF1bHQ7XG4kaXRfdGV4dC1zaGFkb3ctb2Zmc2V0LS1kYXJrOiAwIDAgMi41cmVtICFkZWZhdWx0O1xuJGl0X3RleHQtc2hhZG93LXN0ZXAtLWxpZ2h0OiA1ICFkZWZhdWx0O1xuJGl0X3RleHQtc2hhZG93LXN0ZXAtLWRhcms6IDUgIWRlZmF1bHQ7XG5cbi8vIGluc3RhZ3JhbSBmZWVkXG4kaXRfaW5zdGFncmFtLWltYWdlcy1rZWVwLXJhdGlvOiB0cnVlICFkZWZhdWx0O1xuJGl0X2luc3RhZ3JhbS1pbWFnZXMtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4vLyBpY29uIGNvbXBvbmVudFxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudHMgaXMgc29ydCBvZiB1bmlxdWUgYmVjYXVzZSBpdCdzIGl0ZW1zLXBlci1yb3cgY29uZmlndXJhdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGFibGV0K1xuICogVGhpcyBtYXAgYWRkcyBwb3NzaWJpbGl0eSB0byAnZm9yY2UnIHByb3ZpZWQgY29sdW1ucyBjb25maWd1cmF0aW9uIHVwIHRvIGxhcHRvcCByZXNvbHV0aW9ucy5cbiAqL1xuJGl0LS1pY29uX2l0ZW1zLWluLXZpZXctdGlsbC1sYXB0b3A6IGRlZXAtZ2V0KCR2aWV3LXhtbCxcbiAgICAgICAgdmFycyxcbiAgICAgICAgTWFnZVN1aXRlX0NvbnRlbnRDb25zdHJ1Y3RvckZyb250ZW5kLFxuICAgICAgICBpY29uLFxuICAgICAgICBqcyxcbiAgICAgICAgY29sdW1uc0NvbmZpZykgIWRlZmF1bHQ7XG5cbi4jeyRuc31pbWFnZS10ZWFzZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgLS1zbG9nYW4tZm9udC1zaXplOiAyLjFyZW07XG4gICAgLS1kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuNXJlbTtcblxuICAgIEBpbmNsdWRlIGl0LWdyaWQoJG0tZ2FwOiAkaXRfbW9iaWxlLWdhcCwgJGQtZ2FwOiAkaXRfZGVza3RvcC1nYXApO1xuXG4gICAgJi0tc2xpZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2xpZGVyKCRtLWdhcDogJGl0LS1zbGlkZXJfbW9iaWxlLWdhcCxcbiAgICAgICAgICAgICRkLWdhcDogJGl0LS1zbGlkZXJfZGVza3RvcC1nYXAsXG4gICAgICAgICAgICAkbmV4dC12aXNpYmxlOiAkaXQtLXNsaWRlcl9uZXh0LXNsaWRlLXZpc2libGUsXG4gICAgICAgICAgICAkcm9vdDogJHJvb3QgKTtcbiAgICB9XG5cbiAgICAmLS1zbGlkZXItbW9iaWxlOm5vdCgjeyRyb290fS0tc2xpZGVyKSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2xpZGVyLW1vYmlsZSgkbS1nYXA6ICRpdC0tc2xpZGVyX21vYmlsZS1nYXAsXG4gICAgICAgICAgICAgICAgJG5leHQtdmlzaWJsZTogJGl0LS1zbGlkZXJfbmV4dC1zbGlkZS12aXNpYmxlLFxuICAgICAgICAgICAgICAgICRyb290OiAkcm9vdCApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbmF2LFxuICAgICAgICAgICAgI3skcm9vdH1fX3BhZ2luYXRpb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZSB7XG4gICAgICAgICYtLXNjaGVtZS1saWdodCB7XG4gICAgICAgICAgICAtLXNjaGVtZS1jb2xvcjogI3skc2NoZW1lLS1saWdodF90ZXh0cy1jb2xvcn07XG4gICAgICAgICAgICAtLXNjaGVtZS1iYWNrZ3JvdW5kOiAjeyRzY2hlbWUtLWxpZ2h0X2JhY2tncm91bmR9O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2NoZW1lLWRhcmsge1xuICAgICAgICAgICAgLS1zY2hlbWUtY29sb3I6ICN7JHNjaGVtZS0tZGFya190ZXh0cy1jb2xvcn07XG4gICAgICAgICAgICAtLXNjaGVtZS1iYWNrZ3JvdW5kOiAjeyRzY2hlbWUtLWRhcmtfYmFja2dyb3VuZH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0ZWFzZXIgJiB0ZXh0XG4gICAgICAgICY6bm90KCN7JHJvb3R9X19zbGlkZS0taW1hZ2UtdXBsb2FkZWQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNjaGVtZS1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgJi0taW1hZ2UtdXBsb2FkZWQge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMtLW1vYmlsZV90ZXh0LWltYWdlICYge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLS1tb2JpbGVfaW1hZ2UtdGV4dCAmIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhlcm8gaW4gbW9iaWxlIGFzICdMYXJnZSBUZWFzZXInIHNjZW5hcmlvXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICYtLWFzLWxpc3QtbW9iaWxlIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAjeyRpdC0tc2xpZGVyX21vYmlsZS1nYXB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fcGFnaW5hdGlvbixcbiAgICAgICAgICAgICN7JHJvb3R9X19uYXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zY2hlbWUtY29sb3IpO1xuXG4gICAgICAgICYtLXVuZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBtYXJnaW46IC0ycmVtIDJyZW0gMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zY2hlbWUtYmFja2dyb3VuZCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19waWN0dXJlKyYsXG4gICAgICAgICAgICAjeyRyb290fS0tdGVhc2VyLWFuZC10ZXh0ICN7JHJvb3R9X19zbGlkZS0taW1hZ2UtdXBsb2FkZWQgJiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29udGVudC1hbGlnbi14IHtcbiAgICAgICAgICAgICYtMiB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLTMge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb250ZW50LWFsaWduLXkge1xuICAgICAgICAgICAgJi0yIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLTMge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBLZWVwIENUQSBzZXBhcmF0ZWQgZnJvbSB0ZXh0LWNvbnRlbnQgZm9yIGFsbCBzY2VuYXJpb3NcbiAgICAgKiBcIiFpbXBvcnRhbnRcIiBhZGRlZCBkdWUgdG8gZmFsbGJhY2sgZnJvbSAtLXNjaGVtZS0qIHdpdGggYnV0dG9uKCkgbWl4aW4gdGhhdCByZXNldHMgbWFyZ2luc1xuICAgICAqL1xuICAgICZfX3RleHQtY29udGVudCsjeyRyb290fV9fY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fc2xvZ2FuIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXNsb2dhbi1mb250LXNpemUpO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGh5cGhlbnM6IGF1dG87XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIC8vIHRleHQtc2hhZG93OiAwIDAgMi41cmVtICM0ODQ4NDg7XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDFlbSAwIDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZGVzY3JpcHRpb24tZm9udC1zaXplKTtcbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkaXRfY3RhLXR5cGUtLWRhcmssXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaXRfY3RhLWljb24tcG9zaXRpb24gKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkaXRfY3RhLXR5cGUtLWxpZ2h0LFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGl0X2N0YS1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtZGFyayAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGl0X2N0YS10eXBlLS1kYXJrLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpdF9jdGEtaWNvbi1wb3NpdGlvbiApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGl0X2N0YS10eXBlLS1saWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaXRfY3RhLWljb24tcG9zaXRpb24gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkaXRfY3RhLXR5cGUtLWRhcmssXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGl0X2N0YS1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZS0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkaXRfY3RhLXR5cGUtLWxpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpdF9jdGEtaWNvbi1wb3NpdGlvbiApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAxLjJlbSAwIDA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkaXRfY3RhLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGl0X2N0YS1pY29uLXdpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGl0X2N0YS1pY29uLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnRyYXN0IE9wdGltaXplcnNcbiAgICAgKi9cbiAgICAvLyBjb21tb24gZm9yIG92ZXJsYXkgYW1uZCBncmFkaWVudFxuICAgICZfX292ZXJsYXksXG4gICAgJl9fZ3JhZGllbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBvdmVybGF5LCBjb250YWluZXJcbiAgICAmX19vdmVybGF5LFxuICAgICZfX29wdGltaXplci1jb250YWluZXIge1xuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpdF9jb250YWluZXItYmFja2dyb3VuZC0tbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGl0X2NvbnRhaW5lci1iYWNrZ3JvdW5kLS1kYXJrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZ3JhZGllbnRcbiAgICAmX19ncmFkaWVudCB7XG4gICAgICAgIEBmb3IgJHggZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICAgICAmLS1kaXJlY3Rpb24teC0jeyR4fSB7XG4gICAgICAgICAgICAgICAgQGZvciAkeSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAgICAgICAgICAgICAgICAgJiN7JHJvb3R9X19ncmFkaWVudC0tZGlyZWN0aW9uLXktI3skeX0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGVhc2VyLWdyYWRpZW50LW92ZXJsYXkoJHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRfZ3JhZGllbnQtY29sb3ItLWxpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4NSUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRlYXNlci1ncmFkaWVudC1vdmVybGF5KCR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0X2dyYWRpZW50LWNvbG9yLS1kYXJrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4NSUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWlycm9yIGltYWdlXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICAmLS1taXJyb3Ige1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY29udGFpbmVyXG4gICAgJl9fY29udGVudC0tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAyZW07XG4gICAgfVxuXG4gICAgJl9fb3B0aW1pemVyLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICAvLyB0ZXh0IHNoYWRvd1xuICAgICZfX3RleHQtY29udGVudC0tdGV4dC1zaGFkb3cge1xuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1kYXJrICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgb3B0aW1pemVyLXRleHQtc2hhZG93KCRjb2xvcjogJGl0X3RleHQtc2hhZG93LWNvbG9yLS1kYXJrLFxuICAgICAgICAgICAgICAgICR0ZXh0LXNoYWRvdy1vZmZzZXQ6ICRpdF90ZXh0LXNoYWRvdy1vZmZzZXQtLWRhcmssXG4gICAgICAgICAgICAgICAgJHN0ZXA6ICRpdF90ZXh0LXNoYWRvdy1zdGVwLS1kYXJrICk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc2xpZGUtLXNjaGVtZS1saWdodCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9wdGltaXplci10ZXh0LXNoYWRvdygkY29sb3I6ICRpdF90ZXh0LXNoYWRvdy1jb2xvci0tbGlnaHQsXG4gICAgICAgICAgICAgICAgJHRleHQtc2hhZG93LW9mZnNldDogJGl0X3RleHQtc2hhZG93LW9mZnNldC0tbGlnaHQsXG4gICAgICAgICAgICAgICAgJHN0ZXA6ICRpdF90ZXh0LXNoYWRvdy1zdGVwLS1saWdodCApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBjb21wb25lbnRcbiAgICAmLS1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzbGlkZXItbW9iaWxlKCRtLWdhcDogJGl0LS1zbGlkZXJfbW9iaWxlLWdhcCxcbiAgICAgICAgICAgICAgICAkbmV4dC12aXNpYmxlOiAkaXQtLXNsaWRlcl9uZXh0LXNsaWRlLXZpc2libGUsXG4gICAgICAgICAgICAgICAgJHJvb3Q6ICRyb290ICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRpdC0taWNvbl9pdGVtcy1pbi12aWV3LXRpbGwtbGFwdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKHZhcigtLWJhc2Utc2l6ZSkgLyAjeyRpdGVtc1BlclJvd30gLSAoKCN7JGl0ZW1zUGVyUm93IC0gMX0gKiB2YXIoLS1nYXApKSAvICN7JGl0ZW1zUGVyUm93fSkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICYjeyRyb290fS0tc2xpZGVyLW1vYmlsZTpub3QoI3skcm9vdH0tLXNsaWRlcikge1xuICAgICAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX25hdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19wYWdpbmF0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc2xvZ2FuIHtcbiAgICAgICAgICAgIC0tc2xvZ2FuLWZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2N0YSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICAmLS11bmRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jdGEtb25seSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1vc2FpYyBjb21wb25lbnRcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICYtLW1vc2FpYyB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLS1tb3NhaWMtc2NlbmFyaW8ge1xuICAgICAgICAgICAgICAgICYtMSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDJmcikgbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi0yIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMmZyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZWFzZXIgJiBUZXh0IGNvbXBvbmVudFxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAmLS10ZWFzZXItYW5kLXRleHQge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnN0YWdyYW0gZmVlZFxuICAgICYtLWluc3RhZ3JhbS1mZWVkIHtcbiAgICAgICAgI3skcm9vdH1fX3BpY3R1cmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaXRfaW5zdGFncmFtLWltYWdlcy1rZWVwLXJhdGlvKSB7XG4gICAgICAgICAgICAjeyRyb290fV9faW1hZ2Uge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGl0X2luc3RhZ3JhbS1pbWFnZXMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyIHtcbiAgICAvLyBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG59XG5cbi4jeyRuc31jb250YWluZXItLWdyaWQtdGVhc2VyIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi4jeyRuc31jb250YWluZXItLWltYWdlLXRlYXNlci13aW5kb3ctd2lkdGgge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgLiN7JG5zfWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyLS1pbWFnZS10ZWFzZXItc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuXG4vLyBIb21lIFZpZGVvXG5cbi5jbXMtaG9tZSAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tc3RhdGljLWJsb2NrIHtcblxuICAgIC8vcGFkZGluZzogMDtcbiAgICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5ob21ldmlkZW8ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgLy8gIGJvcmRlci10b3A6IDVweCBzb2xpZCAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgJGNvbG9yLXR1cGxleC1ncmVlbjtcbiAgICAgICAgICAgIC8vYm9yZGVyLXRvcDogNXB4IHNvbGlkICRjb2xvci10dXBsZXgtYmx1ZTtcblxuICAgICAgICAgICAgLnNsb2dhbiB7XG4gICAgICAgICAgICAgICAgLy8gd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4NCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgICAgICAgICAgLy9mb250LXNpemU6IDE0MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogLTVweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDUwcHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAuMnJlbSAjMjEyMTIxO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvLyBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgICAgICAgICAgLy8gIHBob25lTGdcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlkZW8ge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgLy9tYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgIC8vIHdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHZ3O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMDB2dztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTcwdnc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTMwdnc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBLaW0gamVzdGXFm215IHZpZGVvXG5cbi5jYXRlZ29yeS1raW0tamVzdGVzbXkgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXN0YXRpYy1ibG9jayB7XG4gICAgcGFkZGluZzogMDtcblxuICAgIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAudmlkZW8ta2ltLWplc3Rlc215IHtcbiAgICAgICAgICAgIC5zbG9nYW4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMC4ycmVtICMyMTIxMjE7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE3MCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuc3ViIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEzMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2aWRlbyB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jbXMtaG9tZSB7XG4gICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tc3RhdGljLWJsb2NrOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGl2Om50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2VyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpdjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpdjpudGgtY2hpbGQoOCkge1xuICAgICAgICAgICAgLy8gbWFyZ2luLXRvcDogNHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgICAgICAgIC5jcy1idXR0b24tY29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkaXY6bnRoLWNoaWxkKDEwKSB7XG4gICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkaXY6bnRoLWNoaWxkKDExKSB7XG4gICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZSB7XG4gICAgICAgICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGFsb2ctY2F0ZWdvcnktdmlldyB7XG4gICAgLmNzLWltYWdlLXRlYXNlci0taXRlbXMtaW4tcm93LTEuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctbW9iaWxlLTEge1xuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXIuY3MtaW1hZ2UtdGVhc2VyLS1pdGVtcy1pbi1yb3ctMi5jcy1pbWFnZS10ZWFzZXItLWl0ZW1zLWluLXJvdy1tb2JpbGUtMSB7XG5cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWRhcmsuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQsXG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1pbWFnZS11cGxvYWRlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDQ5JTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaW1hZ2UtdGVhc2VyL2Z1bmN0aW9ucy9nZXQtZ3JhZGllbnQtYW5nbGUnO1xuXG5AbWl4aW4gdGVhc2VyLWdyYWRpZW50LW92ZXJsYXkoXG4gICAgJHg6IDEsXG4gICAgJHk6IDEsXG4gICAgJGNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC03MDAsXG4gICAgJGdyYWRpZW50LXJhbmdlOiA4NSVcbikge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgZ2V0LWdyYWRpZW50LWFuZ2xlKCR4LCAkeSksXG4gICAgICAgICRjb2xvciAwJSxcbiAgICAgICAgcmdiYSgkY29sb3IsIDApICRncmFkaWVudC1yYW5nZVxuICAgICk7XG59XG4iLCJAbWl4aW4gb3B0aW1pemVyLXRleHQtc2hhZG93KFxuICAgICRjb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwLFxuICAgICR0ZXh0LXNoYWRvdy1vZmZzZXQ6IDAgMCAyNXB4LFxuICAgICRzdGVwOiA1XG4pIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIGNlaWwoMTAwIC8gJHN0ZXApIHtcbiAgICAgICAgJHZhbHVlOiAkaSAqICRzdGVwO1xuXG4gICAgICAgICYtI3skdmFsdWV9IHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAjeyR0ZXh0LXNoYWRvdy1vZmZzZXR9IHJnYmEoJGNvbG9yLCAoJHZhbHVlIC8gMTAwKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cbi8qKlxuICogSXQgaXMgaW50ZW5kZWQsIHRvIG5vdCB1c2UgdGhlIHNhbWUgY29uZmlnIHBhdHRlcm4gKGpzL2Nvbmx1bW5zQ29uZmlnKSBhcyBmb3Igb3RoZXIgc2xpZGVyLWJhc2VkIGNvbXBvbmV0cyxcbiAqIGJlY2F1c2UgUHJvZHVjdHMgQ2Fyb3VzZWxzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGNvbmZpZyBhcyBwcm9kdWN0IGdyaWQgZm9yIGNvbnNpc3RlbmN5LlxuICogSWYgY3VzdG9tIGNvbHVtbnMgY29uZmlnIGlzIG5lZWRlZCwgcmVkZWZpbmUgaXQuXG4gKi9cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gIG1hcmdpbjogMCAwIDNyZW07XG4gIC0tZ2FwOiAwLjhyZW07XG4gIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAwcHgpO1xuICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG4gIC8qKlxuICAgICAqIGNsYXNzLWJhc2VkIGNvbHVtbnMgY29uZmlnIHJlbGF0ZXMgdG8gY2xhc3NuYW1lcywgbGlrZSAnLS1pdGVtcy1pbi1yb3ctNCdcbiAgICAgKiB3aGljaCBhcmUgYWRkZWQgdG8gZWxlbWVudHMsIGRlcGVuZGluZyBvbiB0aGUgQ0MgQ29tcG9uZW50cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC9cbiAgICAgICAgICAgICAgICAyIC1cbiAgICAgICAgICAgICAgICAxICpcbiAgICAgICAgICAgICAgICB2YXIoLS1nYXApIC9cbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICk7XG4gIC8qICBjb250YWluZXIgcGFkZGluZyBmaXggICovIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgbWFyZ2luOiAwIDAgNHJlbTsgfSB9XG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgzLjEyNWVtKSB7XG4gICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1jb250YWluZXItd2lkdGgge1xuICAgICAgLS1iYXNlLXNpemU6IGNhbGMoMTMwcmVtIC0gMHB4KTsgfVxuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tdXNlLXdob2xlLXNjcmVlbjpub3QoLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1mdWxsLXdpZHRoLXNsaWRlcikge1xuICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tdXNlLXdob2xlLXNjcmVlbjpub3QoLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1mdWxsLXdpZHRoLXNsaWRlcikgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IHByb3hpbWl0eTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTMwcmVtKSAvIDIpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gMTMwcmVtKSAvIDIpO1xuICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTMwcmVtKSAvIDIpO1xuICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIDEzMHJlbSkgLyAyKTtcbiAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEzMHJlbSkgLyAyKTtcbiAgICAgICAgc2Nyb2xsLW1hcmdpbi1yaWdodDogY2FsYygoMTAwdncgLSAxMzByZW0pIC8gMik7IH0gfVxuICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSBhbmQgKG1pbi13aWR0aDogODMuMTI1ZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAtLWJhc2Utc2l6ZTogMTMwcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgLS1nYXA6IDAuOHJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAzIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAzKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyA0IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyA0KVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyA0IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyA0KVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyA0IC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyA0KVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNCAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gNClcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDgzLjA2MjVlbSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tY29udGFpbmVyLXdpZHRoIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfSB9XG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcy13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgZ2FwOiAwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsgfVxuICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IH1cbiAgICAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwOyB9IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9faW1hZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvbWl4aW4nO1xuXG4vKipcbiAqIEl0IGlzIGludGVuZGVkLCB0byBub3QgdXNlIHRoZSBzYW1lIGNvbmZpZyBwYXR0ZXJuIChqcy9jb25sdW1uc0NvbmZpZykgYXMgZm9yIG90aGVyIHNsaWRlci1iYXNlZCBjb21wb25ldHMsXG4gKiBiZWNhdXNlIFByb2R1Y3RzIENhcm91c2VscyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBjb25maWcgYXMgcHJvZHVjdCBncmlkIGZvciBjb25zaXN0ZW5jeS5cbiAqIElmIGN1c3RvbSBjb2x1bW5zIGNvbmZpZyBpcyBuZWVkZWQsIHJlZGVmaW5lIGl0LlxuICovXG4kcHJvZHVjdHMtY2Fyb3VzZWxfaXRlbS1wZXItcm93OiBkZWVwLWdldCgkdmlldy14bWwsXG4gICAgICAgIHZhcnMsXG4gICAgICAgIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3IsXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIG9uZS1jb2x1bW4pICFkZWZhdWx0O1xuXG4kcHJvZHVjdHMtY2Fyb3VzZWxfbW9iaWxlLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJHByb2R1Y3RzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdHMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlOiAwcHggIWRlZmF1bHQ7IC8vIGl0IHdpbGwgYmUgdGhpcyB2YWx1ZSArIHBhZ2UtZ3V0dGVyXG5cbi4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgQGluY2x1ZGUgc2xpZGVyKCRjb2x1bW5zLWNvbmZpZzogJHByb2R1Y3RzLWNhcm91c2VsX2l0ZW0tcGVyLXJvdyxcbiAgICAgICAgJG0tZ2FwOiAkcHJvZHVjdHMtY2Fyb3VzZWxfbW9iaWxlLWdhcCxcbiAgICAgICAgJGQtZ2FwOiAkcHJvZHVjdHMtY2Fyb3VzZWxfZGVza3RvcC1nYXAsXG4gICAgICAgICRuZXh0LXZpc2libGU6ICRwcm9kdWN0cy1jYXJvdXNlbF9uZXh0LXNsaWRlLXZpc2libGUsXG4gICAgICAgICRyb290OiAkcm9vdCApO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEdhcCBiZXR3ZWVuIGNvbHVtbnMgKGFsbCBDU1MgdW5pdHMgYWxsb3dlZCkgW0V4YW1wbGU6IDEuNXJlbV1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2NvbHVtbi1nYXBcbiAqL1xuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9jb2x1bW4tcnVsZVxuICovXG4uY3MtcGFyYWdyYXBoIHtcbiAgY29sdW1uLWdhcDogNnJlbTtcbiAgY29sdW1uLXJ1bGU6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhcmFncmFwaCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLXBhcmFncmFwaC0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXBhcmFncmFwaCBpbWcge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMiwgLmNzLXBhcmFncmFwaC0tY29scy0zLCAuY3MtcGFyYWdyYXBoLS1jb2xzLTQge1xuICAgICAgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgICAuY3MtcGFyYWdyYXBoLS1jb2xzLTIgbGksIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMyBsaSwgLmNzLXBhcmFncmFwaC0tY29scy00IGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMiBpbWcsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMyBpbWcsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFyYWdyYXBoLS1jb2xzLTMsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDM7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDQ7IH0gfVxuICAuY3MtcGFyYWdyYXBoLS1tb2RlLW9wdGltYWwge1xuICAgIG1heC13aWR0aDogNDBlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgY29sdW1uLWNvdW50OiBpbml0aWFsOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5cbi8qKlxuICogR2FwIGJldHdlZW4gY29sdW1ucyAoYWxsIENTUyB1bml0cyBhbGxvd2VkKSBbRXhhbXBsZTogMS41cmVtXVxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY29sdW1uLWdhcFxuICovXG4kcGFyYWdyYXBoX2NvbHVtbi1nYXA6IDZyZW0gIWRlZmF1bHQ7XG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2NvbHVtbi1ydWxlXG4gKi9cbiRwYXJhZ3JhcGhfY29sdW1uLXJ1bGU6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXBhcmFncmFwaCB7XG4gICAgY29sdW1uLWdhcDogJHBhcmFncmFwaF9jb2x1bW4tZ2FwO1xuICAgIGNvbHVtbi1ydWxlOiAkcGFyYWdyYXBoX2NvbHVtbi1ydWxlO1xuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAmLS1jb2xzLTIsXG4gICAgICAgICYtLWNvbHMtMyxcbiAgICAgICAgJi0tY29scy00IHtcbiAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgJi0tY29scy0zLFxuICAgICAgICAmLS1jb2xzLTQge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICYtLWNvbHMtNCB7XG4gICAgICAgICAgICBjb2x1bW4tY291bnQ6IDQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1tb2RlLW9wdGltYWwge1xuICAgICAgICBtYXgtd2lkdGg6IDQwZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIGNvbHVtbi1jb3VudDogaW5pdGlhbDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLmNzLXNlcGFyYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY2xlYXI6IGJvdGg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNlcGFyYXRvciB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLXNlcGFyYXRvci0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuXG4kc2VwYXJhdG9yX2NvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzZXBhcmF0b3Jfc3R5bGU6IDFweCBzb2xpZCAkc2VwYXJhdG9yX2NvbG9yICFkZWZhdWx0O1xuXG4uI3skbnN9c2VwYXJhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci10b3A6ICRzZXBhcmF0b3Jfc3R5bGU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLnVpLWRhdGVwaWNrZXIge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiA5OTk5OTkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDI1cmVtO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDcyLCA3MiwgNzIsIDAuMjgpO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG5cbi51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0ZGRUY0NTtcbiAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsgfVxuXG4udWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycmVtO1xuICB3aWR0aDogMS44ZW07XG4gIGhlaWdodDogMS44ZW07XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sXG4gIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDAuMnJlbTtcbiAgICBmb250LXNpemU6IDBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7IH1cblxuLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gIGxlZnQ6IDEuNXJlbTsgfVxuICAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4ge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW46YmVmb3JlLCAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW46YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDJyZW07XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMDsgfVxuICAgIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbjpiZWZvcmUge1xuICAgICAgbGVmdDogLTEuMnJlbTtcbiAgICAgIGJvcmRlci10b3A6IDAuOHJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDAuOHJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMC44cmVtIHNvbGlkICM3OGIwZTA7XG4gICAgICBtYXJnaW4tdG9wOiAtMC44cmVtOyB9XG4gICAgLnVpLWRhdGVwaWNrZXItcHJldiBzcGFuOmFmdGVyIHtcbiAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwLjZyZW0gc29saWQgI0ZGRUY0NTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjZyZW07IH1cblxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIHJpZ2h0OiAxLjVyZW07IH1cbiAgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuIHtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuOmJlZm9yZSwgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwOyB9XG4gICAgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuOmJlZm9yZSB7XG4gICAgICByaWdodDogLTEuMnJlbTtcbiAgICAgIGJvcmRlci10b3A6IDAuOHJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b206IDAuOHJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwLjhyZW0gc29saWQgIzc4YjBlMDtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjhyZW07IH1cbiAgICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YWZ0ZXIge1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDAuNnJlbSBzb2xpZCAjRkZFRjQ1O1xuICAgICAgbWFyZ2luLXRvcDogLTAuNnJlbTsgfVxuXG4udWktZGF0ZXBpY2tlci10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDEuNXJlbTsgfVxuXG4udWktZGF0ZXBpY2tlci10aXRsZSBzZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG5cbnNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXllYXIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4udWktZGF0ZXBpY2tlci1tb250aCB7XG4gIHdpZHRoOiA0NyU7XG4gIG1hcmdpbi1yaWdodDogNiU7IH1cblxuLnVpLWRhdGVwaWNrZXIteWVhciB7XG4gIHdpZHRoOiA0NyU7IH1cblxuLnVpLWRhdGVwaWNrZXItdGFibGUge1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgfVxuXG4udWktZGF0ZXBpY2tlci1jYWxlbmRhciB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbjogMXJlbSAxLjVyZW0gMS41cmVtO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIHdpZHRoOiAyM3JlbTsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCxcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGgge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0aCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktZGF0ZXBpY2tlci13ZWVrLWNvbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkIGEsXG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRoIHNwYW4sXG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkIHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSxcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgc3BhbiB7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLXN0YXRlLWhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzhiMGUwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtZGlzYWJsZWQgc3BhbiB7XG4gICAgICBjb2xvcjogI2RjZGNkYzsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzhiMGUwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG5cbi51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLXRvcDogI2RjZGNkYyAxcHggc29saWQ7IH1cbiAgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCB7XG4gIGRpcmVjdGlvbjogcnRsOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgcmlnaHQ6IDJweDtcbiAgbGVmdDogYXV0bzsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gIGxlZnQ6IDJweDtcbiAgcmlnaHQ6IGF1dG87IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIge1xuICByaWdodDogMXB4O1xuICBsZWZ0OiBhdXRvOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyIHtcbiAgbGVmdDogMXB4O1xuICByaWdodDogYXV0bzsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIGNsZWFyOiByaWdodDsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IH1cblxuLnVpLXRpbWVwaWNrZXItZGl2IHtcbiAgcGFkZGluZzogMXJlbSAwIDAuNXJlbSAwOyB9XG4gIC51aS10aW1lcGlja2VyLWRpdiAudWktd2lkZ2V0LWhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC44cmVtOyB9XG4gIC51aS10aW1lcGlja2VyLWRpdiBkbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC51aS10aW1lcGlja2VyLWRpdiBkbCBkdCB7XG4gICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0yLjJyZW07IH1cbiAgICAudWktdGltZXBpY2tlci1kaXYgZGwgLnVpX3RwaWNrZXJfdGltZV9sYWJlbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMi41cmVtOyB9XG4gICAgLnVpLXRpbWVwaWNrZXItZGl2IGRsIGRkIHtcbiAgICAgIG1hcmdpbjogMCAwIDFyZW0gNi41cmVtOyB9XG4gIC51aS10aW1lcGlja2VyLWRpdiB0ZCB7XG4gICAgZm9udC1zaXplOiA5MCU7IH1cblxuLnVpLXRwaWNrZXItZ3JpZC1sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi51aS1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnVpLXNsaWRlci1oYW5kbGUge1xuICBoZWlnaHQ6IDFyZW07XG4gIHdpZHRoOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiAjNzhiMGUwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgaGVpZ2h0OiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuXG4vKiBJRTYgSUZSQU1FIEZJWCAodGFrZW4gZnJvbSBkYXRlcGlja2VyIDEuNS4zICovXG4udWktZGF0ZXBpY2tlci1jb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyptdXN0IGhhdmUqL1xuICB6LWluZGV4OiAtMTtcbiAgLyptdXN0IGhhdmUqL1xuICBmaWx0ZXI6IG1hc2soKTtcbiAgLyptdXN0IGhhdmUqL1xuICB0b3A6IC00cHg7XG4gIC8qbXVzdCBoYXZlKi9cbiAgbGVmdDogLTRweDtcbiAgLyptdXN0IGhhdmUqL1xuICB3aWR0aDogMjAwcHg7XG4gIC8qbXVzdCBoYXZlKi9cbiAgaGVpZ2h0OiAyMDBweDtcbiAgLyptdXN0IGhhdmUqLyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRjYWxlbmRhcl9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJGNhbGVuZGFyX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9oZWFkZXItYXJyb3ctY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfd2Vla2RheS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLWRpc2FibGVkLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi51aS1kYXRlcGlja2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogJGNhbGVuZGFyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkY2FsZW5kYXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMjVyZW07XG4gICAgYm94LXNoYWRvdzogJGNhbGVuZGFyX2JveC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I7XG59XG5cbi8vIEhFQURFUlxuLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHBhZGRpbmc6IDEuMnJlbSAycmVtO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkY2FsZW5kYXJfYm9yZGVyLXJhZGl1cztcbn1cblxuLnVpLWRhdGVwaWNrZXItcHJldixcbi51aS1kYXRlcGlja2VyLW5leHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJyZW07XG4gICAgd2lkdGg6IDEuOGVtO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAwLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cblxuLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gICAgbGVmdDogMS41cmVtO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiAycmVtO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAtMS4ycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjhyZW0gc29saWQgJGNhbGVuZGFyX2hlYWRlci1hcnJvdy1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwLjZyZW0gc29saWQgJGNhbGVuZGFyX2hlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcblxuICAgIHNwYW4ge1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDAuOHJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC42cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDAuNnJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC42cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCAxLjVyZW07XG59XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG5zZWxlY3QudWktZGF0ZXBpY2tlci1tb250aC15ZWFyIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnVpLWRhdGVwaWNrZXItbW9udGgge1xuICAgIHdpZHRoOiA0NyU7XG4gICAgbWFyZ2luLXJpZ2h0OiA2JTtcbn1cblxuLnVpLWRhdGVwaWNrZXIteWVhciB7XG4gICAgd2lkdGg6IDQ3JTtcbn1cblxuLnVpLWRhdGVwaWNrZXItdGFibGUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLy8gQ2FsZW5kYXJcbi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIG1hcmdpbjogMXJlbSAxLjVyZW0gMS41cmVtO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICB3aWR0aDogMjNyZW07XG5cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl93ZWVrZGF5LWNvbG9yO1xuICAgIH1cblxuICAgIC51aS1kYXRlcGlja2VyLXdlZWstY29sIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHRkIGEsXG4gICAgdGggc3BhbixcbiAgICB0ZCBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICB0ZCBhLFxuICAgIHRkIHNwYW4ge1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yO1xuICAgIH1cblxuICAgIC51aS1zdGF0ZS1kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1jb2xvcjtcbiAgICB9XG59XG5cbi8vIEJ1dHRvbnNcbi51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgYm9yZGVyLXRvcDogJGNvbG9yX2JvcmRlci01MDAgMXB4IHNvbGlkO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi8vIFJUTFxuLnVpLWRhdGVwaWNrZXItcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXYge1xuICAgIHJpZ2h0OiAycHg7XG4gICAgbGVmdDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQge1xuICAgIGxlZnQ6IDJweDtcbiAgICByaWdodDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIge1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgbGVmdDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIge1xuICAgIGxlZnQ6IDFweDtcbiAgICByaWdodDogYXV0bztcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuICAgIGNsZWFyOiByaWdodDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuXG4vLyBUaW1lcGlja2VyXG4udWktdGltZXBpY2tlci1kaXYge1xuICAgIHBhZGRpbmc6IDFyZW0gMCAwLjVyZW0gMDtcblxuICAgIC51aS13aWRnZXQtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICAgIH1cblxuICAgIGRsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICBkdCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAudWlfdHBpY2tlcl90aW1lX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBkZCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDYuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgfVxufVxuXG4udWktdHBpY2tlci1ncmlkLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gU2xpZGVyXG4udWktc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICRjYWxlbmRhcl9iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICB9XG59XG5cbi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi9cbi51aS1kYXRlcGlja2VyLWNvdmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qbXVzdCBoYXZlKi9cbiAgICB6LWluZGV4OiAtMTsgLyptdXN0IGhhdmUqL1xuICAgIGZpbHRlcjogbWFzaygpOyAvKm11c3QgaGF2ZSovXG4gICAgdG9wOiAtNHB4OyAvKm11c3QgaGF2ZSovXG4gICAgbGVmdDogLTRweDsgLyptdXN0IGhhdmUqL1xuICAgIHdpZHRoOiAyMDBweDsgLyptdXN0IGhhdmUqL1xuICAgIGhlaWdodDogMjAwcHg7IC8qbXVzdCBoYXZlKi9cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4uY3MtY2FwdGNoYV9faW1hZ2UtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY2FwdGNoYV9faW1hZ2UtY29udHJvbHMge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLmNzLWNhcHRjaGFfX2ltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5jcy1jYXB0Y2hhX19idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTsgfVxuICAuY3MtY2FwdGNoYV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWNhcHRjaGFfX2J1dHRvbiwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICBjb2xvcjogIzc4YjBlMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWNhcHRjaGFfX2J1dHRvbiAqLCAuY3MtY2FwdGNoYV9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgIGZpbGw6ICM3OGIwZTA7IH1cbiAgLmNzLWNhcHRjaGFfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jYXB0Y2hhX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2FwdGNoYV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgLmNzLWNhcHRjaGFfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNhcHRjaGFfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNhcHRjaGFfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1jYXB0Y2hhX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX19idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuY3MtY2FwdGNoYV9fYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG5cbi5jcy1jYXB0Y2hhX19idXR0b24tc3BhbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuXG4uY3MtY2FwdGNoYV9fbm90ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgcGFkZGluZzogMC4zZW0gMCAwO1xuICBjb2xvcjogIzY5Njk2OTsgfVxuXG4uY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4kY2FwdGNoYV9idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kY2FwdGNoYV9idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfWNhcHRjaGEge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9faW1hZ2UtY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGNhcHRjaGFfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRjYXB0Y2hhX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY2FwdGNoYV9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICAuI3skbnN9ZGFzaGJvYXJkICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3MtZGFzaGJvYXJkIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAgICAgLmNzLWRhc2hib2FyZF9fY29sdW1uczpiZWZvcmUsIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnM6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWRhc2hib2FyZF9fbWVzc2FnZXMge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgIG9yZGVyOiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyk7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7IH0gfVxuICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICBvcmRlcjogMjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gMykpO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMCAwIDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyA0KSk7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwIDAgMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDQpKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyA0KSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDQpKTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLXBhZ2UtY2F0ZWdvcnlfX21haW4tLXNlYXJjaC1uby1yZXN1bHQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDNyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAzLjVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXgucGFnZS1sYXlvdXQtMWNvbHVtbiAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX3RvcCB7XG4gICAgcGFkZGluZzogMCAwIDNyZW07IH1cbiAgLmNzLWRhc2hib2FyZF9fcGFnZS10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAucGFnZS10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtIDA7IH1cbiAgLmNzLWRhc2hib2FyZCAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAubWVzc2FnZS1lcnJvcixcbiAgLmNzLWRhc2hib2FyZCAubWVzc2FnZS1zdWNjZXNzLFxuICAuY3MtZGFzaGJvYXJkIC5tZXNzYWdlLW5vdGljZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5jcy1kYXNoYm9hcmRfX2JvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LWxpbmUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIHtcbiAgICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQge1xuICAgICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkLS1za2lwLXNwYWNpbmcge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LWd1ZXN0LWNvZGUge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0IHtcbiAgICBtYXJnaW46IDAgMCAzcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3Qge1xuICAgICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtLXNraXAtc3BhY2luZyB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW0ge1xuICAgICAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW0ge1xuICAgICAgICAgIHdpZHRoOiAzMy4zMyU7IH0gfVxuICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW06bnRoLWNoaWxkKG4gKyA0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZF9fbG9naW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19sb2dpbiB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX19sb2dpbi1zZWN0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fbG9naW4tc2VjdGlvbiB7XG4gICAgICAgICAgd2lkdGg6IDUwJTsgfVxuICAgICAgICAgIC5jcy1kYXNoYm9hcmRfX2xvZ2luLXNlY3Rpb246bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgICAuY3MtZGFzaGJvYXJkX19sb2dpbi1zZWN0aW9uOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX2NvbnRhY3QtZm9ybSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDE1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDQ1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAubGltaXRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtZGFzaGJvYXJkIHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuY3MtZGFzaGJvYXJkIHNlbGVjdDotbW96LWZvY3VzcmluZywgLmNzLWRhc2hib2FyZCBzZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWRhc2hib2FyZCBzZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkIHNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzNzhiMGUwJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuY3MtZGFzaGJvYXJkIHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNob2ljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNob2ljZSAubGFiZWwge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jaG9pY2UgLmNoZWNrYm94IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZC1uYW1lLXByZWZpeCB7XG4gICAgbWF4LXdpZHRoOiAxMnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uLFxuICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbiwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjp2aXNpdGVkLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZSxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uICosIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZCAqLFxuICAgICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlICosXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uW2Rpc2FibGVkXSxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGVbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbiwgLndpc2hsaXN0LWluZGV4LWluZGV4XG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlIHtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uIHNwYW4sXG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlIHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5yZW1pbmQsXG4gIC5jcy1kYXNoYm9hcmQgLmJhY2sge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG1hcmdpbi10b3A6IDAuN3JlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuY291bnRlciB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFyZW0pO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNvdW50ZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNvdW50ZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDEuNXJlbSAwIDIuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuYmxvY2sge1xuICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDRyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSxcbiAgLmNzLWRhc2hib2FyZCAubGVnZW5kLFxuICAuY3MtZGFzaGJvYXJkIC5vcmRlci10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSBzdHJvbmcsXG4gICAgLmNzLWRhc2hib2FyZCAubGVnZW5kIHN0cm9uZyxcbiAgICAuY3MtZGFzaGJvYXJkIC5vcmRlci10aXRsZSBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSBhIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJveC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW46IDJyZW0gMCAwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5zYWxlcy1vcmRlci1oaXN0b3J5IC5jcy1kYXNoYm9hcmQgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1jb250ZW50Lm5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1uZXctY3VzdG9tZXIgLmJsb2NrLWNvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1uZXctY3VzdG9tZXIgLmJsb2NrLWNvbnRlbnQgLmZpZWxkc2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50Om50aC1jaGlsZCgxKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5wYWdlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbjogMC43cmVtIDAgMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5wYWdlczpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyOm50aC1jaGlsZCgzKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gtYWN0aW9ucyBhICsgYTpiZWZvcmUsXG4gIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYSArIGE6YmVmb3JlIHtcbiAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYSxcbiAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyBhIHtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLXdyYXBwZXIsXG4gIC5jcy1kYXNoYm9hcmQgLm9yZGVycy1oaXN0b3J5LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLXdyYXBwZXIgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLmFjdGlvbnMtdG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5vcmRlcnMtaGlzdG9yeSArIC50b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLm9yZGVycy1oaXN0b3J5ICsgLmFjdGlvbnMtdG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtd3JhcHBlci5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3Rvcnkub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zICsgLnRvb2xiYXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyIC5hY3Rpb24sXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgLmFjdGlvbixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2UgLmZpZWxkc2V0IHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDsgfVxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLXB3YW5vdGlmaWNhdGlvbnMtbWFuYWdlIC5maWVsZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1wd2Fub3RpZmljYXRpb25zLW1hbmFnZSAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyOjphZnRlciwgLmNzLWRhc2hib2FyZCAudG9vbGJhcjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQgKyAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC50b29sYmFyLWFtb3VudCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5wYWdlcyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAucGFnZXMge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5saW1pdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5saW1pdGVyIC5sYWJlbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyLndpc2hsaXN0LXRvb2xiYXIgYnIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayxcbiAgLmNzLWRhc2hib2FyZCAuc2Vjb25kYXJ5IC5hY3Rpb24uZWRpdC1lbWFpbC1wcmVmZXJlbmNlcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5yZXZpZXctY3VzdG9tZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjaywgLnJldmlldy1jdXN0b21lci12aWV3XG4gICAgLmNzLWRhc2hib2FyZCAuc2Vjb25kYXJ5IC5hY3Rpb24uZWRpdC1lbWFpbC1wcmVmZXJlbmNlcyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gsXG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5ib3gsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5hZGRyZXNzZXMge1xuICAgICAgICB3aWR0aDogNDglOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LWNvbnRlbnQsXG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyAuaXRlbSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAudG9vbHRpcC53cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY2hvaWNlLnBlcnNpc3RlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuY3MtdGFibGVfX2NvbDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLml0ZW1zLXF0eSxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuY3MtY2FydC1pdGVtX19vcHRpb25zLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLXRhYmxlX19jb2wuc3VidG90YWwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLml0ZW1zLXF0eSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5pdGVtcy1xdHkgLml0ZW0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuaXRlbXMtcXR5IC5pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMsXG4gIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTA7IH1cbiAgICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyICosIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkICosXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyW2Rpc2FibGVkXSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6YmVmb3JlLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjpiZWZvcmUsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyIHNwYW4sXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgc3BhbixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgKiwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZCAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgICBmaWxsOiAjNzhiMGUwOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzNDYwOTc7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50W2Rpc2FibGVkXSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludFtkaXNhYmxlZF0sXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6OmJlZm9yZSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6YmVmb3JlLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCBzcGFuLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50IHNwYW4sXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50IHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5wcm9kdWN0LW5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLmNzLWRhc2hib2FyZCAucmF0aW5nLXJlc3VsdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5yYXRpbmctcmVzdWx0OjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5yYXRpbmctc3VtbWFyeS5pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1uYW1lIHtcbiAgICBmb250LWZhbWlseTogXCJMYXRvXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctdGl0bGUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldy52aWV3IC5yZXZpZXcudGl0bGUsXG4gICAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3LnZpZXcgLnJhdGluZ3Mtc3VtbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LWRldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LW1lZGlhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIG1heC13aWR0aDogMjguNXJlbTtcbiAgICB3aWR0aDogMzAlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LXRpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmF0aW5nLXN1bW1hcnksXG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS5jcmVhdGUuYWNjb3VudCxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLnJlc2V0LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCxcbiAgLmNzLWRhc2hib2FyZCAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50LFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCBicixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gYnIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZ1bGxuYW1lIC5sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgPiAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5mdWxsbmFtZSA+IC5sYWJlbCB7XG4gICAgICB3aWR0aDogMXB4OyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5jcmVhdGUuYWNjb3VudCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmZ1bGxuYW1lIC5jb250cm9sLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLnJlc2V0IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSAuZnVsbG5hbWUgLmNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuYWN0aW9uLnByaW1hcnksXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuYmFjayxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmJhY2sge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tYWRkcmVzcy1lZGl0IC5maWVsZHNldCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5zZW5kLmNvbmZpcm1hdGlvbiAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZpZWxkc2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZmllbGRzZXQtZnVsbG5hbWUsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5maWVsZHNldC1mdWxsbmFtZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stYWRkcmVzc2VzLWxpc3QgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJveC1iaWxsaW5nLWFkZHJlc3Mge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5jb2wuc3RhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0aDpmaXJzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtYWRkaXRpb25hbC1hZGRyZXNzZXMtaXRlbXMgdGg6bGFzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZTpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5hY3Rpb24uZWRpdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1uZXdzbGV0dGVyLW1hbmFnZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLW5ld3NsZXR0ZXItbWFuYWdlIC5maWVsZHNldCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2J1dHRvbiwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgICAgLmNzLWRhc2hib2FyZF9fYnV0dG9uICosIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAgIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZGFzaGJvYXJkX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLWRhc2hib2FyZF9fYnV0dG9uLXNwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAuY3MtZGFzaGJvYXJkX19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS40cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtZ3Vlc3Qge1xuICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LWd1ZXN0LWNvcHkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtZ3Vlc3QtY29weS1pY29uIHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgZmlsbDogIzY5Njk2OTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLmNzLWNvbnRhaW5lci0tY3JlYXRlLWFjY291bnQtcGFnZSwgLmNzLWNvbnRhaW5lci0tbG9naW4tcGFnZSwgLmNzLWNvbnRhaW5lci0tc3VjY2Vzcy1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dvdXQtcGFnZSwgLmNzLWNvbnRhaW5lci0tY29udGFjdC1wYWdlIHtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tY3JlYXRlLWFjY291bnQtcGFnZSwgLmNzLWNvbnRhaW5lci0tbG9naW4tcGFnZSwgLmNzLWNvbnRhaW5lci0tc3VjY2Vzcy1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dvdXQtcGFnZSwgLmNzLWNvbnRhaW5lci0tY29udGFjdC1wYWdlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDVyZW07IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0tbXktYWNjb3VudC1wYWdlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH0gfVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuYWN0aW9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5ibG9jayBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDA7IH1cblxuLmJsb2NrIC5ib3gtYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuXG4uYWNjb3VudC5wYWdlLXByaW50IC5pdGVtcy1xdHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3BhZ2VzL2xheW91dC8yY29sdW1ucy1sZWZ0L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kZGFzaGJvYXJkLWJ1dHRvbl90eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX3NlY29uZGFyeS10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2J1dHRvbl9mb3Jtcy1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX3NtYWxsLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX21haW4tc2VwYXJhdG9yLWFwcGx5OiBmYWxzZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfc2lkZWJhci1tYWluLXNwYWNlOiAzLjVyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JvdHRvbS1ib3JkZXItdG9wOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmtzLXNlcGFyYXRvcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9sb2dpbi1zZWN0aW9ucy1zZXBhcmF0b3I6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF9oZWFkbGluZS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtcGFkZGluZy1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmstZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9ib3gtdGl0bGUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF90ZXh0LWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfdGV4dC1saW5lLWhlaWdodDogMi41cmVtICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2xpbmtzLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuXG4vLyBGb3Igc2hvcHMgd2l0aCBkYXJrZXIgYmFja2dyb3VuZCBlbGVtZW50cyBpbiB1c2VyIGFyZWEgYXJlIHBsYWNlZCBpbiBzZXBhcmF0ZSBib3hlc1xuXG4vLyBWYWx1ZXMgc3BlY2lmaWMgZm9yIHNob3BzIHdpdGggYmFja2dyb3VuZFxuJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQ6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzOiBmYWxzZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGlkZS10aXRsZXMtc2VwYXJhdG9yczogZmFsc2UgIWRlZmF1bHQ7XG4vLyBTZXQgdmFsdWUgaWYgJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgaXMgc2V0IHRvIHRydWVcbiRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZzogMCAhZGVmYXVsdDtcbi8vIEZvciBzaG9wcyB3aGl0ZSB3aGl0ZSBiYWNrZ3JvdW5kIGl0IGlzIGFsc28gbmVlZGVkIGFzIGl0IGlzIHBhcnQgb2Ygc3BhY2luZyBzeXN0ZW0uXG4vLyBGb3Igc2hvcHMgd2l0aCBkYXJrZXIgYmFja2dyb3VuZCB2YWx1ZSBoZXJlIGNhbiBiZSBzbWFsbGVyIG9mIGhpZ2hlclxuJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzOiAycmVtICFkZWZhdWx0O1xuXG4vLyBPcmRlciB0YWJsZVxuJGRhc2hib2FyZF9wcmljZS1mb250LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31kYXNoYm9hcmQge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgdHdvLWNvbHVtbnMtbGVmdCgkZGFzaGJvYXJkX21haW4tc2VwYXJhdG9yLWFwcGx5KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICZfX2NvbHVtbnMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogM3JlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2lkZWJhciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAkZGFzaGJvYXJkX3NpZGViYXItbWFpbi1zcGFjZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEd1ZXN0IHdpc2hsaXN0IHdpdGhvdXQgc2lkZWJhclxuICAgICAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXgucGFnZS1sYXlvdXQtMWNvbHVtbiAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9wIHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAzcmVtO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDFyZW07XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFnZS10aXRsZSB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxcmVtIDA7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5tZXNzYWdlLWVycm9yLFxuICAgIC5tZXNzYWdlLXN1Y2Nlc3MsXG4gICAgLm1lc3NhZ2Utbm90aWNlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGRhc2hib2FyZF9ib3R0b20tYm9yZGVyLXRvcDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3Qge1xuICAgICAgICAmLWxpbmUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3QtY29kZSB7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgJl9fYm90dG9tLXdpc2hsaXN0IHtcbiAgICAgICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQobiArIDQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9naW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLXNlY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAoI3skZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXN9IC8gMikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRkYXNoYm9hcmRfbG9naW4tc2VjdGlvbnMtc2VwYXJhdG9yO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29udGFjdC1wYWdlIHtcbiAgICAgICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWN0LWZvcm0ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhbCBVc2VyIEFyZWEgc3R5bGVzXG5cbiAgICAuZmllbGRzZXQsXG4gICAgLmZvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxNXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5maWVsZHNldCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWF4LXdpZHRoOiA0NXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5maWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLmxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaG9pY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLXByZWZpeCB7XG4gICAgICAgIG1heC13aWR0aDogMTJyZW07XG4gICAgfVxuXG4gICAgLnByaW1hcnkge1xuICAgICAgICA+IGJ1dHRvbixcbiAgICAgICAgLmNyZWF0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIC53aXNobGlzdC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlbWluZCxcbiAgICAuYmFjayB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9saW5rcy1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuN3JlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5jb3VudGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDIuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDRyZW07XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay10aXRsZSxcbiAgICAubGVnZW5kLFxuICAgIC5vcmRlci10aXRsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRkYXNoYm9hcmRfaGVhZGxpbmUtYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLW1hcmdpbi1ib3R0b207XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLXBhZGRpbmctYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtdGl0bGVzLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLXRpdGxlIGEge1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmstZm9udC1zaXplO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLmJveC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGFzaGJvYXJkX2JveC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW46IDJyZW0gMCAwO1xuXG4gICAgICAgIC5zYWxlcy1vcmRlci1oaXN0b3J5ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubm8tZGlzcGxheSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLW5ldy1jdXN0b21lciAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stcmV3YXJkLWhpc3Rvcnkge1xuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBvdGhlciB3YXkgdG8gcmVtb3ZlIHRvcCB0b29sYmFyIGVsZW1lbnRzXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC43cmVtIDAgMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWFjdGlvbnMsXG4gICAgLmFjdGlvbnMge1xuICAgICAgICBhICsgYSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuN3JlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRkYXNoYm9hcmRfaGVhZGxpbmUtbGlua3Mtc2VwYXJhdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRhYmxlcyBub3QgcGxhY2VkIGluc2lkZSBib3ggaW4gbWFya3VwXG4gICAgLnRhYmxlLXdyYXBwZXIsXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhcixcbiAgICAgICAgJiArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zLFxuICAgIC5yZXZpZXdzLFxuICAgIC50cmFuc2FjdGlvbnMge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2Uge1xuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc310b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC50b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFtb3VudCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICArIC4jeyRuc310b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWxpbWl0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50b29sYmFyLWFtb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5saW1pdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lzaGxpc3QtdG9vbGJhciB7XG4gICAgICAgICAgICBiciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayxcbiAgICAuc2Vjb25kYXJ5IC5hY3Rpb24uZWRpdC1lbWFpbC1wcmVmZXJlbmNlcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgLnJldmlldy1jdXN0b21lci12aWV3ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LFxuICAgIC5hZGRyZXNzZXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3gtY29udGVudCxcbiAgICAuYWRkcmVzc2VzIC5pdGVtIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfdGV4dC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRkYXNoYm9hcmRfdGV4dC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRkYXNoYm9hcmRfdGV4dC1saW5lLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAudG9vbHRpcC53cmFwcGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAuY2hvaWNlLnBlcnNpc3RlbnQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIH1cblxuICAgIC8vIE9yZGVyIHNjdGlvbiBhbmQgcGFnZVxuICAgIC50YWJsZS1vcmRlci1pdGVtcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgLiN7JG5zfXRhYmxlX19jb2w6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4LFxuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgICAgICAgICAuaXRlbXMtcXR5LFxuICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXNoYm9hcmRfcHJpY2UtZm9udC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc310YWJsZV9fY29sLnN1YnRvdGFsIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbXMtcXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgICAuc2FsZXMtb3JkZXItdmlldyAmLFxuICAgICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAmLFxuICAgICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm9yZGVyIHtcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci12aWV3ICYsXG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAmLFxuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZC1idXR0b25fc21hbGwtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmludCB7XG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItdmlldyAmLFxuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl9zZWNvbmRhcnktdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkLWJ1dHRvbl9zbWFsbC1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3NlY29uZGFyeS10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldmlld3Mgc2VjdGlvbiBhbmQgcGFnZVxuICAgIC5ibG9jay1yZXZpZXdzLWRhc2hib2FyZCB7XG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmF0aW5nLXJlc3VsdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYXRpbmctc3VtbWFyeS5pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLmN1c3RvbWVyLXJldmlldyB7XG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGZvbnQtc2l6ZV9oZWFkbGluZS00KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXZpZXctdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGZvbnQtc2l6ZV9oZWFkbGluZS00KTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi52aWV3IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIC5yZXZpZXcudGl0bGUsXG4gICAgICAgICAgICAucmF0aW5ncy1zdW1tYXJ5LFxuICAgICAgICAgICAgLnByb2R1Y3QtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW1lZGlhIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjguNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXZpZXctZGV0YWlscyAucmV2aWV3LXRpdGxlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy1kZXRhaWxzIC5yZXZpZXctY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yYXRpbmctc3VtbWFyeSxcbiAgICAgICAgLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yZXZpZXdzLWFjdGlvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGRyZXNzIGZvcm1zIHNlY3Rpb25zXG4gICAgLmZvcm0uY3JlYXRlLmFjY291bnQsXG4gICAgLmZvcm0tYWRkcmVzcy1lZGl0LFxuICAgIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgICAuZm9ybS5wYXNzd29yZC5yZXNldCxcbiAgICAuZm9ybS5zZW5kLmNvbmZpcm1hdGlvbixcbiAgICAuZm9ybS5wYXNzd29yZC5mb3JnZXQsXG4gICAgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZnVsbG5hbWUge1xuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbiB0aGVtZS1mcm9udGVuZC1ibGFuay9NYWdlbnRvX0N1c3RvbWVyL3dlYi9jc3Mvc291cmNlL19tb2R1bGUubGVzcyB0aGlzIGxhYmVsIGlzIHZpc3VhbGx5IGhpZGRlbixcbiAgICAgICAgICAgIC8vIGFuZCBmaXJzdCBsYWJlbCB3aWR0aCBtdXN0IGJlIDFweCBoZXJlXG4gICAgICAgICAgICA+IC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRyb2wge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5wcmltYXJ5IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9idXR0b25fZm9ybXMtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJhY2sge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0LWZ1bGxuYW1lIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1lZGl0LWFjY291bnQsXG4gICAgLmZvcm0tYWRkcmVzcy1lZGl0IHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWRkcmVzc2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0ICsgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgICAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmdcbiAgICAgICAgICAgICAgICAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWJpbGxpbmctYWRkcmVzcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB7XG4gICAgICAgIC5jb2wuc3RhdGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5kZWxldGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24uZWRpdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5ld3NsZXR0ZXIgc2VjdGlvblxuICAgIC5mb3JtLW5ld3NsZXR0ZXItbWFuYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zLm9yZGVyZWQge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IHRydWUpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXItbGlua3Mge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3Qge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1ndWVzdC1jb3B5IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3QtY29weS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgZmlsbDogJGRhc2hib2FyZF90ZXh0LWNvbG9yO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1jcmVhdGUtYWNjb3VudC1wYWdlLFxuICAgICYtLWxvZ2luLXBhZ2UsXG4gICAgJi0tc3VjY2Vzcy1wYWdlLFxuICAgICYtLWxvZ291dC1wYWdlLFxuICAgICYtLWNvbnRhY3QtcGFnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbXktYWNjb3VudC1wYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXI6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG59XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uYmxvY2sgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5ibG9jayAuYm94LWFjdGlvbnMge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmFjY291bnQucGFnZS1wcmludCB7XG4gICAgLml0ZW1zLXF0eSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9jb2x1bW5zLXBlci1yb3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3IsXG4gICAgY29sdW1ucyxcbiAgICBvbmUtY29sdW1uXG4pICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfd2FzLXNlcGFyYXRvci1jYWxsZWQteWV0OiBmYWxzZSAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldDogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItZGVza3RvcDogJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wOiAyICpcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtc2VwYXJhdG9yLWFwcGx5OiB0cnVlICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtc2VwYXJhdG9yLWNvbG9yOiAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfbGF5b3V0LWFsaWduLWl0ZW1zOiBzdHJldGNoICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctdGFibGV0OiAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldCAwIDAgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctZGVza3RvcDogMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wIDAgMCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0OiAycHggc29saWRcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItY29sb3IgIWRlZmF1bHQ7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X21haW4tdG9wLXNwYWNpbmc6IDEuNXJlbSAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X21haW4tcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLXRhYmxldDogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLWRlc2t0b3A6ICRsYXlvdXQtMmNvbC1sZWZ0X21haW4tdG9wLXNwYWNpbmcgMCAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3AgIWRlZmF1bHQ7XG5cbkBtaXhpbiB0d28tY29sdW1ucy1sZWZ0KCRhcHBseS1ib3JkZXI6IHRydWUpIHtcbiAgICAmX19jb2x1bW5zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkbGF5b3V0LTJjb2wtbGVmdF9sYXlvdXQtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2lkZWJhciB7XG4gICAgICAgIG9yZGVyOiAxO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGxheW91dC0yY29sLWxlZnRfY29sdW1ucy1wZXItcm93IHtcbiAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBwaG9uZSBhbmQgJGJyZWFrcG9pbnQgIT0gcGhvbmVMZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAjeyRpdGVtc1BlclJvd30pO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPlxuICAgICAgICAgICAgICAgICAgICAgICAgMSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3dhcy1zZXBhcmF0b3ItY2FsbGVkLXlldCA9PVxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLWJvcmRlci1yaWdodCAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9uZVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGFwcGx5LWJvcmRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGF5b3V0LTJjb2wtbGVmdF93YXMtc2VwYXJhdG9yLWNhbGxlZC15ZXQ6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gJ3RhYmxldCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1wYWRkaW5nLXRhYmxldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAnbGFwdG9wJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBvcmRlcjogMjtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRsYXlvdXQtMmNvbC1sZWZ0X2NvbHVtbnMtcGVyLXJvdyB7XG4gICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gcGhvbmUgYW5kICRicmVha3BvaW50ICE9IHBob25lTGcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyAjeyRpdGVtc1BlclJvd30pKTtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gJ3RhYmxldCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLXRhYmxldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAnbGFwdG9wJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1wYWdlLWNhdGVnb3J5X19tYWluLS1zZWFyY2gtbm8tcmVzdWx0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtZm9ybSwgLmNzLWZvcm1fX2ZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLWZvcm1fX2ZpZWxkICsgLmNzLWZvcm1fX2ZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi5jcy1mb3JtLS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpob3ZlciwgLmNzLWZvcm1fX2J1dHRvbjpmb2N1cywgLmNzLWZvcm1fX2J1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OGIwZTAgIWltcG9ydGFudDsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOmJlZm9yZSwgLmNzLWZvcm1fX2J1dHRvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpiZWZvcmUge1xuICAgIHdpZHRoOiA1LjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAwcHggMHB4IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDE1JSwgIzM0NjA5NyAxNSUsICMzNDYwOTcgMTAwJSk7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjphZnRlciB7XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbiwgLmNzLWZvcm1fX2J1dHRvbjp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgIC5jcy1mb3JtX19idXR0b24gKiwgLmNzLWZvcm1fX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1mb3JtX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZvcm1fX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7IH1cbiAgICAuY3MtZm9ybV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZm9ybV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZm9ybV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5jcy1mb3JtX19idXR0b24tc3BhbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cblxuLmNzLWZvcm1fX2J1dHRvbi1pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNHJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICByaWdodDogMWVtOyB9XG5cbi5mb3JtLFxuLmZvcm0gLmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmZvcm0gLmZpZWxkICsgLmZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGZvcm1fYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGZvcm1fYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb3JtIHtcbiAgICAmLFxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLmZvcm0ge1xuICAgICYsXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgKyAuZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4ucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDMuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDMuMnJlbTtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtc2l6ZTogMnJlbSAwLjdyZW07XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teTogNTAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIDFyZW0pLCBjYWxjKDEwMCUgLSAoMi41cmVtICsgMXJlbSkpLCBjYWxjKDEwMCUgLSAoMi41cmVtICogMiArIDFyZW0pKSwgY2FsYygxMDAlIC0gKDIuNXJlbSAqIDMgKyAxcmVtKSksIGNhbGMoMTAwJSAtICgyLjVyZW0gKiA0ICsgMXJlbSkpLCBjYWxjKDEwMCUgLSAoMi41cmVtICogNSArIDFyZW0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTsgfSB9XG4gIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlcjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhc3N3b3JkLXdlYWsgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXdlYWsuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci13ZWFrLnN2Z1wiKTsgfVxuICAucGFzc3dvcmQtbWVkaXVtIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2Z1wiKTsgfVxuICAucGFzc3dvcmQtc3Ryb25nIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnXCIpOyB9XG4gIC5wYXNzd29yZC12ZXJ5LXN0cm9uZyAucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmdcIik7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW0gMC41cmVtO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAxcmVtKSwgY2FsYyggMTAwJSAtICggMS43cmVtICsgMXJlbSApKSwgY2FsYyggMTAwJSAtICggMS43cmVtICogMiArIDFyZW0gKSksIGNhbGMoIDEwMCUgLSAoIDEuN3JlbSAqIDMgKyAxcmVtICkpLCBjYWxjKCAxMDAlIC0gKCAxLjdyZW0gKiA0ICsgMXJlbSApKSwgY2FsYyggMTAwJSAtICggMS43cmVtICogNSArIDFyZW0gKSk7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRwYXNzd29yZC1zdHJlbmd0aF9pY29uLWhlaWdodDogMC43cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoLXNtYWxsLW1vYmlsZTogMS41cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0LXNtYWxsLW1vYmlsZTogMC41cmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlLXNtYWxsLW1vYmlsZTogMC4ycmVtICFkZWZhdWx0O1xuXG4kcGFzc3dvcmQtc3RyZW5ndGhfYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbCAhZGVmYXVsdDtcbiRwYXNzd29yZC1zdHJlbmd0aF9ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcGFzc3dvcmQtc3RyZW5ndGhfaGVpZ2h0OiAzLjJyZW0gIWRlZmF1bHQ7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoOiAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aCArXG4gICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlO1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGgtc21hbGwtbW9iaWxlOiAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aC1zbWFsbC1tb2JpbGUgK1xuICAgICRwYXNzd29yZC1zdHJlbmd0aF9pY29ucy1zcGFjZS1zbWFsbC1tb2JpbGU7XG5cbi8vIE9yaWdpbmFsIE1hZ2VudG8gY2xhc3MgaXMgbGVmdCBmb3IgdGhpcyBjb21wb25lbnRcbi8vXG4ucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYXNzd29yZC1zdHJlbmd0aF9iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlcjogJHBhc3N3b3JkLXN0cmVuZ3RoX2JvcmRlcjtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGhlaWdodDogJHBhc3N3b3JkLXN0cmVuZ3RoX2hlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHBhc3N3b3JkLXN0cmVuZ3RoX2hlaWdodDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjVyZW07XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24td2lkdGhcbiAgICAgICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1MCU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAxcmVtKSxcbiAgICAgICAgY2FsYygxMDAlIC0gKCN7JHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGh9ICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiAyICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiAzICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiA0ICsgMXJlbSkpLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKiA1ICsgMXJlbSkpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyk7XG5cbiAgICAucGFzc3dvcmQtd2VhayAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItd2Vhay5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItd2Vhay5zdmcnKTtcbiAgICB9XG5cbiAgICAucGFzc3dvcmQtbWVkaXVtICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLW1lZGl1bS5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnJyk7XG4gICAgfVxuXG4gICAgLnBhc3N3b3JkLXN0cm9uZyAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyk7XG4gICAgfVxuXG4gICAgLnBhc3N3b3JkLXZlcnktc3Ryb25nICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoLXNtYWxsLW1vYmlsZVxuICAgICAgICAgICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0LXNtYWxsLW1vYmlsZTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAxcmVtKSxcbiAgICAgICAgICAgIGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwJSAtXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGgtc21hbGwtbW9iaWxlfSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ICsgMXJlbVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4uY3MtcmV2aWV3IHtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNzLXJldmlld19fdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMC43cmVtO1xuICAgIGNvbG9yOiAjNDg0ODQ4OyB9XG4gIC5jcy1yZXZpZXdfX3JhdGluZywgLmNzLXJldmlld19fcmF0aW5ncyB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1yZXZpZXdfX2NvbXBvdW5kLXJhdGluZyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1heC13aWR0aDogMjByZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zZW07IH1cbiAgICAuY3MtcmV2aWV3X19jb21wb3VuZC1yYXRpbmc6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1yZXZpZXdfX21ldGEge1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgZm9udC1zaXplOiAwLjllbTsgfVxuICAgIC5jcy1yZXZpZXdfX21ldGEtLXZhcmlhbnQtc3VwcG9ydCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtcmV2aWV3X19tZXRhLWl0ZW0ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIC5jcy1yZXZpZXdfX21ldGEtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAuY3MtcmV2aWV3X19tZXRhLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cbiAgLmNzLXJldmlld19fYXV0aG9yIHtcbiAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAuY3MtcmV2aWV3X19kYXRlIHtcbiAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtcmV2aWV3X192YXJpYW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgcGFkZGluZzogMCAxcmVtOyB9XG4gICAgLmNzLXJldmlld19fdmFyaWFudCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtcmV2aWV3X192YXJpYW50IC5zd2F0Y2gtb3B0aW9uIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtcmV2aWV3X19jb250ZW50IHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM4ODg7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kcmV2aWV3X2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHJldmlld190aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHJldmlld190aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHJldmlld19hdXRob3ItY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRyZXZpZXdfY29udGVudC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld19kYXRlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X21ldGEtaXRlbS1mb250LXNpemU6IDAuOWVtICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X21ldGEtaXRlbS1wYWRkaW5nOiAwIDFyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3X2hpZGUtY29tcG91bmQtcmF0aW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXcge1xuICAgIGZvbnQtc2l6ZTogJHJldmlld19mb250LXNpemU7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcmV2aWV3X3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDAgMCAwLjdyZW07XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X3RpdGxlLWNvbG9yO1xuICAgIH1cblxuICAgICZfX3JhdGluZyxcbiAgICAmX19yYXRpbmdzIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19jb21wb3VuZC1yYXRpbmcge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRyZXZpZXdfaGlkZS1jb21wb3VuZC1yYXRpbmdzKSB7XG4gICAgICAgICZfX2NvbXBvdW5kLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmIC5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vdmVyYWxsLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJHJldmlld19tZXRhLWl0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgICYtLXZhcmlhbnQtc3VwcG9ydCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21ldGEtaXRlbSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdfbWV0YS1pdGVtLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGJvcmRlci1yaWdodDogJHJldmlld19tZXRhLWl0ZW0tYm9yZGVyO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2F1dGhvciB7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X2F1dGhvci1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19kYXRlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3X2RhdGUtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgcGFkZGluZzogJHJldmlld19tZXRhLWl0ZW0tcGFkZGluZztcblxuICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJHJldmlld19jb250ZW50LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1yZXZpZXdzLXN1bW1hcnkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4OiAxIDAgMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5IHtcbiAgICAgIGZsZXg6IDAgMCAzNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX25vdGUge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19ub3RlLXJpZ2h0IHtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19hbGwtY291bnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246aG92ZXIsIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjpmb2N1cywgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246YmVmb3JlLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xcHg7XG4gICAgICBib3R0b206IC0xcHg7XG4gICAgICByaWdodDogLTFweDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDUuNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMHB4IDBweCAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTAwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTUlLCAjMzQ2MDk3IDE1JSwgIzM0NjA5NyAxMDAlKTsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjphZnRlciB7XG4gICAgICB3aWR0aDogNHJlbTtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDYwOTc7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAtMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjpob3ZlcjphZnRlciB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzhiMGUwOyB9XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24gKiwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS40cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtOyB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICAgICAgZmxleDogMCAxIDEwMCU7IH0gfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtOyB9IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDAgMXJlbSAwOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1sYWJlbCB7XG4gICAgICBmbGV4OiAwIDEgMy41ZW07IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXItY291bnQge1xuICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXItcHJvZ3Jlc3Mge1xuICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtaW4td2lkdGg6IDlyZW07XG4gICAgICBoZWlnaHQ6IDAuOWVtO1xuICAgICAgbWFyZ2luOiAwIDAuOHJlbSAwIDAuN3JlbTtcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZWRmYTQ7IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMi41cmVtIDAgMDtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQzOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcy1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcy1pdGVtIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDI1cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3JhdGluZ3MtYXZlcmFnZXMtaXRlbSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTsgfSB9XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19yYXRpbmdzLWF2ZXJhZ2VzLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZzogMi41cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9kZXNrdG9wLXdpZHRoOiAzNXJlbSAhZGVmYXVsdDtcblxuJHJldmlld3Mtc3VtbWFyeV9idXR0b24tZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXN1bW1hcnlfYmFycy1mbGV4LWdyb3c6IDEgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2JhcnMtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFyLW1heC13aWR0aDogNDByZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2Jhci1oZWlnaHQ6IDEuMnJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFyLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1taW4td2lkdGg6IDlyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1oZWlnaHQ6IDAuOWVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItZmlsbC1iYWNrZ3JvdW5kOiAkY29sb3JfcmV2aWV3LWJhci1hY3RpdmUgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXN1bW1hcnlfbm90ZS1mb250LXNpemU6IDRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X25vdGUtbGVmdC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9ub3RlLXJpZ2h0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXJhdGluZ3MtYXZlcmFnZXNfaGlkZTogZmFsc2UgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aDogNDByZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aC1tb2JpbGU6IDI1cmVtICFkZWZhdWx0O1xuXG4uI3skbnN9cmV2aWV3cy1zdW1tYXJ5IHtcbiAgICAkcm9vdDogJjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBmbGV4OiAwIDAgJHJldmlld3Mtc3VtbWFyeV9kZXNrdG9wLXdpZHRoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzLXN1bW1hcnlfbm90ZS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb2xvcjogJHJldmlld3Mtc3VtbWFyeV9ub3RlLWxlZnQtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19ub3RlLXJpZ2h0IHtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzLXN1bW1hcnlfbm90ZS1yaWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19hbGwtY291bnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwO1xuICAgICAgICBib3JkZXItdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYXJzIHtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZm9udC1zaXplO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIGZsZXgtZ3JvdzogJHJldmlld3Mtc3VtbWFyeV9iYXJzLWZsZXgtZ3JvdztcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzLXN1bW1hcnlfYmFycy1jb2xvcjtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXgtd2lkdGg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAgMCAkcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXJnaW4tYm90dG9tIDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSAzLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY291bnQge1xuICAgICAgICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1taW4td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjhyZW0gMCAwLjdyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWZpbGwtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZ3MtYXZlcmFnZXMge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIGJvcmRlci10b3A6ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuICAgICAgICBAaWYgKCRyZXZpZXdzLXJhdGluZ3MtYXZlcmFnZXNfaGlkZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMS40MztcblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHJldmlld3Mtc3VtbWFyeV9hdmVyYWdlc19tYXgtd2lkdGgtbW9iaWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXJldmlld3Mge1xuICBmbGV4OiAxIDEgMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1yZXZpZXdzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLmNzLXJldmlld3NfX3RpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX190aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtcmV2aWV3c19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3MtcmV2aWV3c19fbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtOyB9XG4gIC5jcy1yZXZpZXdzX19pdGVtIHtcbiAgICBwYWRkaW5nOiAwIDAgMi41cmVtO1xuICAgIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgLmNzLXJldmlld3NfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1yZXZpZXdzX19mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbWFyZ2luOiAyLjVyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICAgIHBhZGRpbmc6IDNyZW07IH0gfVxuICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNzLXJldmlld3NfX2Zvcm0gLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnIConOyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtcmV2aWV3c19faGVhZGxpbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDEuNGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjhyZW07IH1cbiAgLmNzLXJldmlld3NfX3Byb2R1Y3QtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAuY3MtcmV2aWV3c19fcmF0aW5nLWl0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gIC5jcy1yZXZpZXdzX19yYXRpbmdzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcmV2aWV3c19fZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fZmllbGRzZXQge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH0gfVxuICAuY3MtcmV2aWV3c19fc3VibWl0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fc3VibWl0IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b24sIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b24gKiwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ2MDk3OyB9XG4gICAgICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1yZXZpZXdzX19yYXRpbmctY29udHJvbCB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBoZWlnaHQ6IDEuMjc1ZW07XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXJldmlld3NfX3JhdGluZy1jb250cm9sIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgLmNzLXJldmlld3NfX3JhdGluZy1jb250cm9sIC5jcy1yZXZpZXdzX19yYXRlLXN0YXJzIHNwYW4ge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAuY3MtcmV2aWV3c19fcmF0ZS1zdGFycyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvcmRlcjogMDsgfVxuICAuY3MtcmV2aWV3c19fcmF0ZS1mZWVkYmFjayB7XG4gICAgb3JkZXI6IDE7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuOWVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXJldmlld3NfX3Jldmlldy1maWVsZCB7XG4gICAgbWluLWhlaWdodDogMTByZW07XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuICAuY3MtcmV2aWV3cyAuY3MtcGFnaW5hdGlvbl9fY29udGVudCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAyLjVyZW0gMDsgfVxuICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cbiAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDJyZW0gMCAwLjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uLCAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b246dmlzaXRlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc4YjBlMDsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gKiwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoIDEuNXJlbSArIDEuMnJlbSAtIDAuNHJlbSk7IH1cbiAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAxLjZyZW07IH1cbiAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjpob3ZlcjphZnRlciwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gc3BhbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5jb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gLmNvdW50OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJygnOyB9XG4gICAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbiAuY291bnQ6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5sb2FkaW5nLW1hc2sge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9zcGlubmVyLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIuNXJlbSAyLjVyZW07IH1cbiAgICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5sb2FkaW5nLW1hc2sgaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fY291bnQge1xuICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRyZXZpZXdzLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3BhY2luZzogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBSZXZpZXdzIGZvcm0gc3R5bGluZ1xuJHJldmlld3NfZm9ybS1wYWRkaW5nLWRlc2t0b3A6IDNyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3A6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLXNwYWNpbmc6ICRyZXZpZXdzX2Zvcm0tcGFkZGluZy1kZXNrdG9wICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1iYWNrZ3JvdW5kLWRlc2t0b3A6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcblxuJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ246IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbi1kZXNrdG9wOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWhlYWRsaW5lLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDIwMCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWNvbnRlbnQtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlciAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWZlZGJhY2stdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1mZWRiYWNrLWZvbnQtc2l6ZTogMC44NWVtICFkZWZhdWx0O1xuXG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJHJldmlld3NfbG9hZC1tb3JlLXNjZW5hcmlvLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLXBzZXVkb2ljb24tZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRyZXZpZXdzX2NvdW50LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXdzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZsZXg6IDEgMSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbjogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgbWFyZ2luOiAkcmV2aWV3cy1zcGFjaW5nIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHJldmlld3NfZm9ybS1iYWNrZ3JvdW5kLWRlc2t0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAkcmV2aWV3c19mb3JtLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0eWxlcyBvZiB2YXJpbmFudCBzZWxlY3QgZm9yIHJldmlldyAoZGlzcGxheWVkIGlmIGVuYWJsZWQgaW4gY29uZmlndXJhdGlvbilcbiAgICAgICAgLnN3YXRjaC1vcHQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjRlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3c19mb3JtLWhlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wcm9kdWN0LW5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogJHJldmlld3NfZm9ybS1wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fcmF0aW5nLWl0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG5cbiAgICAgICAgQGlmICgkcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtc3BhY2luZztcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdzLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZ3Mge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZHNldCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaWYgKCRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLXNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJtaXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRyZXZpZXdzX2Zvcm0tYnV0dG9uLWFsaWduLWRlc2t0b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJtaXQtYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzX2Zvcm0tc3VibWl0LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waG9uZUxnJykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRpbmctY29udHJvbCB7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBib3JkZXI6ICRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBwYWRkaW5nOiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLXBhZGRpbmc7XG4gICAgICAgIGhlaWdodDogJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1jb250ZW50LWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1iYWNrZ3JvdW5kO1xuICAgICAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbyddLFxuICAgICAgICAjeyRyb290fV9fcmF0ZS1zdGFycyBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcmF0ZS1zdGFycyB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG9yZGVyOiAwO1xuICAgIH1cblxuICAgICZfX3JhdGUtZmVlZGJhY2sge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3c19mb3JtLWZlZGJhY2stZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMC45ZW07XG4gICAgICAgIGNvbG9yOiAkcmV2aWV3c19mb3JtLWZlZGJhY2stdGV4dC1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19yZXZpZXctZmllbGQge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAuI3skbnN9cGFnaW5hdGlvbl9fY29udGVudCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46ICRyZXZpZXdzLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBAaWYgKCRyZXZpZXdzX2xvYWQtbW9yZS1zY2VuYXJpby1lbmFibGVkKSB7XG4gICAgICAgICYtLWxvYWQtbW9yZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzX2xvYWQtbW9yZS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgQGlmICgkcmV2aWV3c19sb2FkLW1vcmUtcHNldWRvaWNvbi1lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJ2Fycm93JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWZpbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAkd2lkdGg6IDFyZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAxcHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJ2Rvd24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAxLjZyZW1cbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJyZW0gMCAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzX2xvYWQtbW9yZS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY291bnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubG9hZGluZy1tYXNrIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9zcGlubmVyLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMi41cmVtIDIuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHJldmlld3NfY291bnQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXN0YWNrLW5hdl9fdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc3RhY2stbmF2X190cmlnZ2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3Mtc3RhY2stbmF2X190cmlnZ2VyLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgZmlsbDogIzg4ODtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cbiAgLmNzLXN0YWNrLW5hdl9fdHJpZ2dlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmNzLXN0YWNrLW5hdl9fdHJpZ2dlci1pY29uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1zdGFjay1uYXZfX2NvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3Mtc3RhY2stbmF2X19jb250ZW50IHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDcyLCA3MiwgNzIsIDAuMjgpO1xuICAgIHBhZGRpbmc6IDJyZW0gMDsgfSB9XG5cbi5jcy1zdGFjay1uYXZfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLXN0YWNrLW5hdl9fbGlzdCA+IHN2ZyxcbiAgLmNzLXN0YWNrLW5hdl9fbGlzdCA+IGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSB7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBhLFxuLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjFyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgYSxcbiAgICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcge1xuICAgICAgcGFkZGluZzogMC41cmVtIDEuOHJlbSAwLjVyZW0gMi41cmVtOyB9IH1cbiAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgYSBzdmcsXG4gIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGEgaW1nLFxuICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcgc3ZnLFxuICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcgaW1nIHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjFyZW0pOyB9XG5cbi5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjO1xuICBjb2xvcjogIzQ4NDg0ODsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfSB9XG5cbi5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM0ODQ4NDg7IH1cbiAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkuY3VycmVudCBzdHJvbmc6aG92ZXIge1xuICAgIGNvbG9yOiAjNDg0ODQ4OyB9XG4gIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNGRkVGNDU7IH1cblxuLmNzLXN0YWNrLW5hdl9fbmF2IC5pdGVtIC5kZWxpbWl0ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMXJlbSAxLjhyZW07IH1cblxuLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkuY3VycmVudCBhIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3Mtc3RhY2stbmF2X19uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHN0YWNrLW5hdl9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9ib3gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X21vYmlsZS10cmlnZ2VyLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9tb2JpbGUtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfaXRlbS1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1tb2JpbGUtaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfY3VycmVudC1pbmRpY2F0b3ItYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLXdpZHRoOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2luZGljYXRvci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuXG4kc3RhY2stbmF2X2RlbGltaXRlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfZGVsaW1pdGVyLWRpc2FibGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLiN7JG5zfXN0YWNrLW5hdiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIGZpbGw6ICM4ODg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddICN7JHJvb3R9X190cmlnZ2VyLWljb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGFjay1uYXZfbW9iaWxlLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzdGFjay1uYXZfYm94LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkc3RhY2stbmF2X2JveC1zaGFkb3c7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgID4gc3ZnLFxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmF2IHtcbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBhLFxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkc3RhY2stbmF2X2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFjay1uYXZfaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0tY29sb3I7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjFyZW07XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDEuOHJlbSAwLjVyZW0gMi41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcsXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS40cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMXJlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGFjay1uYXZfaXRlbS1tb2JpbGUtaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0taG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhY2stbmF2X2l0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkc3RhY2stbmF2X2l0ZW0tY3VycmVudC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0tY3VycmVudC1jb2xvcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzdGFjay1uYXZfaXRlbS1jdXJyZW50LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJHN0YWNrLW5hdl9pbmRpY2F0b3ItZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHN0YWNrLW5hdl9jdXJyZW50LWluZGljYXRvci13aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0gLmRlbGltaXRlciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc3RhY2stbmF2X2RlbGltaXRlci1ib3JkZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAxLjhyZW07XG5cbiAgICAgICAgICAgIEBpZiAkc3RhY2stbmF2X2RlbGltaXRlci1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlc2V0IHN0eWxlIGZvciBsaW5rIGlmIGl0IGlzIGEgY2hpbGQgb2YgY3VycmVudCBpdGVtXG4gICAgICAgICN7JHJvb3R9X19saXN0IGxpLmN1cnJlbnQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4uY3Mtc3RpY2t5LWJsb2NrIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1zdGlja3ktYmxvY2sge1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgdG9wOiAxZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zdGlja3ktYmxvY2stLXBkcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDE1cHggLSAwLjVyZW0pOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3Mtc3RpY2t5LWJsb2NrLS1wZHAge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1zdGlja3ktYmxvY2stLXBkcCB7XG4gICAgICB0b3A6IDNyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlIC5jcy1zdGlja3ktYmxvY2stLXBkcCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMzBweCkge1xuICAgIC5jcy1zdGlja3ktYmxvY2stLXBkcCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zdGlja3ktYmxvY2stLW5vLW1vYmlsZSB7XG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgdG9wOiA4LjVyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1zdGlja3ktYmxvY2stLW5vLW1vYmlsZSB7XG4gICAgICB0b3A6IDEuNXJlbTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreS1ibG9jay9taXhpbic7XG5cbi4jeyRuc31zdGlja3ktYmxvY2sge1xuICAgIEBpbmNsdWRlIHN0aWNreUJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLS1wZHAge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDE1cHggLSAwLjVyZW0pO1xuXG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB0b3A6IDNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMzBweCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbm8tbW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgIHRvcDogOC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHRvcDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIHN0aWNreUJsb2NrKCkge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIHRvcDogMWVtO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKiBTdHlsZXMgZm9ybSBfdGFibGVzLmxlc3Mgb2YgdGhlbWUgYmxhbmsgYXJlIG1vdmVkIGhlcmUuXG4gICAqIEZvciBzb21lIHRhYmxlcyB0aGVyZSBpcyBtb2JpbGUgbGF5b3V0IGFwcGxpZWQgYWxzbyBmb3IgdGFibGV0IHJlc29sdXRpb25zXG4gICAqIFZhcmlhYmxlcyBmb3IgdHlwb2dyYXB5LCBjb2xvcnMsIGJvcmRlciBldGMuIGFyZSBhZGRlZFxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4udGFibGUtd3JhcHBlciB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlciB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUtd3JhcHBlci5jYXJ0IHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7IH0gfVxuICAudGFibGUtd3JhcHBlci5ncm91cGVkIHRib2R5Omxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnRhYmxlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlID4gY2FwdGlvbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGQge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZzogMC44cmVtIDFyZW07IH1cbiAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0aGVhZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RjZGNkYztcbiAgICAgIGJhY2tncm91bmQ6ICM3OGIwZTA7IH1cbiAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSAucm93cyB7XG4gICAgICBoZWlnaHQ6IDcycHg7IH1cbiAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IC5yb3dzIC53YXJ0b3NjIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSAucm93cyAud2FydG9zYzphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyB6xYInOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQuYWN0aW9ucyB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH0gfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQuYWN0aW9ucyBhICsgYTpiZWZvcmUge1xuICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2RjZGNkYztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuYWNjb3VudCAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3Qge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IH0gfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgLm1hcmsge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgLmFtb3VudCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuICAudGFibGUgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gIC50YWJsZSAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgLnRhYmxlIC5pdGVtcy1xdHksXG4gIC50YWJsZSAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxNTUlOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC50YWJsZS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKTpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgcGFkZGluZzogMC4ycmVtOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQ6YmVmb3JlIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgXCI6IFwiO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQuYWN0aW9ucyB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQuYWN0aW9uczpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAvKiAxICovIH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdGgge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICB3aWR0aDogNzAlOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdGQge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDMwJTsgfVxuICAgICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHRyIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gICAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKS5hZGRpdGlvbmFsLWF0dHJpYnV0ZXMgdGJvZHkgdGgge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDAgMC41cmVtOyB9XG4gIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGgge1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0Ym9keSB0aCxcbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi50YWJsZS13cmFwcGVyLmNhcnQsXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUsXG4gIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZTpsYXN0LWNoaWxkLFxuICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07IH1cbiAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0aGVhZCxcbiAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGhlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkLFxuICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Ym9keSB0ZCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgcGFkZGluZzogMC4ycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZDpsYXN0LWNoaWxkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQ6YmVmb3JlLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkOmJlZm9yZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgXCI6IFwiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkLmFjdGlvbnMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQuYWN0aW9uczpiZWZvcmUsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQuYWN0aW9uczpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCB0aCxcbiAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0aCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRkIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRyLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gICAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkLFxuICAgICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gICAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH0gfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ucHJpY2UtYW5kLWNhcnQge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5wcmljZS1hbmQtY2FydCAjdmFsaWRhdGlvbi1tZXNzYWdlLWJveCB7XG4gICAgZmxleC1ncm93OiAyOyB9XG4gIC5wcmljZS1hbmQtY2FydCAudG90YWxpdHktcHJpY2Uge1xuICAgIGZsZXgtZ3JvdzogMTsgfVxuICAgIC5wcmljZS1hbmQtY2FydCAudG90YWxpdHktcHJpY2UgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDIycHg7IH1cbiAgICAgIC5wcmljZS1hbmQtY2FydCAudG90YWxpdHktcHJpY2UgcCBzcGFuOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIC5wcmljZS1hbmQtY2FydCAudG90YWxpdHktcHJpY2UgcCBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDsgfVxuICAgICAgLnByaWNlLWFuZC1jYXJ0IC50b3RhbGl0eS1wcmljZSBwOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50OyB9XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QxZDFkMTsgfVxuICAudGFibGUuZGF0YS5ncm91cGVkIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudGFibGUuZGF0YS5ncm91cGVkIC50Ym9keSAucHJvbW8ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLnRib2R5IC5jb2wuaXRlbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgIC50YWJsZS5kYXRhLmdyb3VwZWQgLnRib2R5IC5jb2wuaXRlbTo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAuY29sIHtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgcGFkZGluZzogMTVweCAwOyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLmNvbC1mdWxsLXdpZHRoOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgdGJvZHkgdGQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgICAudGFibGUuZGF0YS5ncm91cGVkIHRib2R5IHRkOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnRhYmxlLmRhdGEuZ3JvdXBlZCB0Ym9keSB0ZCB0ciB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAudGFibGUuZGF0YS5ncm91cGVkIHRib2R5IHRkIHRyIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7IH0gfVxuICAgIC50YWJsZS5kYXRhLmdyb3VwZWQgdGJvZHkgdGQgdGQge1xuICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgLnRhYmxlLmRhdGEuZ3JvdXBlZCB0Ym9keSB0ZCB0ZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweCAhaW1wb3J0YW50OyB9IH1cbiAgICAgIC50YWJsZS5kYXRhLmdyb3VwZWQgdGJvZHkgdGQgdGQ6Zmlyc3QtbGV0dGVyIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLnRhYmxlLmRhdGEuZ3JvdXBlZCB0Ym9keSB0ZCB0ZDpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAuY29sLWZ1bGwtd2lkdGggdHIgdGQge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLmNvbC1mdWxsLXdpZHRoICNjdXN0b21lcnMgZGl2IHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgICAudGFibGUuZGF0YS5ncm91cGVkIC5jb2wtZnVsbC13aWR0aCAjY3VzdG9tZXJzIGRpdiBzcGFuOmZpcnN0LWxldHRlciB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLmNvbC1mdWxsLXdpZHRoICNjdXN0b21lcnMgZGl2Om50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAudGFibGUuZGF0YS5ncm91cGVkIC5jb2wtZnVsbC13aWR0aCAudG93biB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAuY2xpY2stbWUgLmZhLWNoZXZyb24tZG93bi5hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpOyB9XG4gIC50YWJsZS5kYXRhLmdyb3VwZWQgLnN0b2NrLnVuYXZhaWxhYmxlIC5vdXQtb2Ytc3RvY2sge1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAudGFibGUuZGF0YS5ncm91cGVkIC5zdG9jay51bmF2YWlsYWJsZSBhIHtcbiAgICBmb250LXNpemU6IDQxcHg7IH1cbiAgLnRhYmxlLmRhdGEuZ3JvdXBlZCAuZmEtY2hldnJvbi1kb3duIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4OyB9XG5cbi5yb3dzIC5jb2wuaXRlbS5zenR1a2EuZWNvbW1lcmNlLXR1cGxleCAuYnJ1dHRvIHtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG5cbi5yb3dzIC5jb2wuaXRlbS5jZW5hIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiIsIi8qKiBTdHlsZXMgZm9ybSBfdGFibGVzLmxlc3Mgb2YgdGhlbWUgYmxhbmsgYXJlIG1vdmVkIGhlcmUuXG4gICAqIEZvciBzb21lIHRhYmxlcyB0aGVyZSBpcyBtb2JpbGUgbGF5b3V0IGFwcGxpZWQgYWxzbyBmb3IgdGFibGV0IHJlc29sdXRpb25zXG4gICAqIFZhcmlhYmxlcyBmb3IgdHlwb2dyYXB5LCBjb2xvcnMsIGJvcmRlciBldGMuIGFyZSBhZGRlZFxuKi9cblxuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlL21peGluJztcblxuJHRhYmxlX2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRhYmxlX2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJHRhYmxlX3Jvdy1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiR0YWJsZV9jb2x1bW4tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJHRhYmxlX2V2ZW4tcm93LWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4kdGFibGVfaGVhZC1ib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYmxlX2hlYWQtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTUgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJHRhYmxlX2hlYWRfZm9udC1zaXplLS1tb2JpbGU6IDEuNHJlbSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkX21vdmUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuXG4kdGFibGVfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYmxlX2l0ZW0tZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcbiR0YWJsZV9pdGVtLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kdGFibGVfaXRlbS1saW5lLWhlaWdodDogMTU1JTtcbiR0YWJsZV9pdGVtLXBhZGRpbmc6IDAuOHJlbSAxcmVtICFkZWZhdWx0O1xuJHRhYmxlX2FjdGlvbnMtbGlua3Mtc2VwYXJhdG9yOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLnRhYmxlLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmNhcnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAudGFibGUtd3JhcHBlci5jYXJ0ICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyb3VwZWQge1xuICAgICAgICB0Ym9keTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGFibGUge1xuICAgIC8vIGJvcmRlci1ib3R0b206ICR0YWJsZV9ib3JkZXItYm90dG9tO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGVfYmFja2dyb3VuZDtcblxuICAgICYgPiBjYXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0YWJsZV9pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfaGVhZC1ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2NlcnVsZWFuLWJsdWU7XG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkdGFibGVfaGVhZC1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgLy8gdGV4dC10cmFuc2Zvcm06ICR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkdGFibGVfaGVhZC1jb2xvcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1x0XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1x0XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgIC5yb3dzIHtcdFxuICAgICAgICAgICAgICAgIGhlaWdodDogNzJweDtcdFxuICAgICAgICAgICAgICAgIC53YXJ0b3NjIHtcdFxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1x0XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1x0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnIHrFgic7XHRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cdFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaXRlbS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgLy8gYm9yZGVyLWJvdHRvbTogJHRhYmxlX3Jvdy1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR0YWJsZV9jb2x1bW4tYm9yZGVyO1xuXG4gICAgICAgICAgICAgICAgJi5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfcm93LWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGFibGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0YWJsZV9hY3Rpb25zLWxpbmtzLXNlcGFyYXRvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICAgICAgLmFjY291bnQgJiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0YWJsZV9ldmVuLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hcmsge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAuYW1vdW50IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLml0ZW1zLXF0eSxcbiAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJsZV9pdGVtLWxpbmUtaGVpZ2h0O1xuICAgIH1cbn1cblxuLy8gIE1vYmlsZSBsYXlvdXRcbkBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAgICAgLnRhYmxlIHtcbiAgICAgICAgICAgICY6bm90KC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2NvbG9yOiAkdGFibGVfaGVhZC1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX21vdmUtb24tbW9iaWxlOiAkdGFibGVfaGVhZF9tb3ZlLW9uLW1vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkdGFibGVfaGVhZF9mb250LXNpemUtLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ym9keSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdGgsXG4gICAgICAgIHRib2R5IHRkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU29tZSB0YWJsZXMgZGlzcGxheSBtb2JpbGUgbGF5b3V0IGFsc28gb24gdGFibGV0IHJlc29sdXRpb25cbi50YWJsZS13cmFwcGVyLmNhcnQsXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAudGFibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4ucHJpY2UtYW5kLWNhcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgI3ZhbGlkYXRpb24tbWVzc2FnZS1ib3gge1xuICAgICAgICBmbGV4LWdyb3c6IDI7XG4gICAgfVxuICAgIC50b3RhbGl0eS1wcmljZSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gICBcbiAgICB9XG59XG5cbi50YWJsZS5kYXRhLmdyb3VwZWQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnRib2R5IHtcbiAgICAgICAgLnByb21vIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICB9XG4gICAgICAgIC5jb2wuaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jb2wge1xuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICB9XG4gICAgLmNvbC1mdWxsLXdpZHRoIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIHRib2R5IHRkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmZpcnN0LWxldHRlciB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbC1mdWxsLXdpZHRoIHtcbiAgICAgICAgdHIge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNjdXN0b21lcnMge1xuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgc3BhbjpmaXJzdC1sZXR0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpdjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9nYWxsZXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50b3duIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNsaWNrLW1lIHtcbiAgICAgICAgLmZhLWNoZXZyb24tZG93bi5hY3RpdmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN0b2NrLnVuYXZhaWxhYmxlIHtcbiAgICAgICAgLm91dC1vZi1zdG9jayB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDQxcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZhLWNoZXZyb24tZG93biB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxufVxuLnJvd3Mge1xuICAgIC5jb2wuaXRlbS5zenR1a2EuZWNvbW1lcmNlLXR1cGxleCB7XG4gICAgICAgIC5icnV0dG8ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jb2wuaXRlbS5jZW5hIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxufSIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gdGFibGUtbW9iaWxlLWxheW91dC1ob29rKCkge1xufVxuXG5AbWl4aW4gdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0LWhvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlL2hvb2snO1xuXG4kaGVhZF9jb2xvcjogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiRoZWFkX21vdmUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRfZm9udC1zaXplLS1tb2JpbGU6IDEuNHJlbSAhZGVmYXVsdDtcblxuQG1peGluIHRhYmxlLW1vYmlsZS1sYXlvdXQoXG4gICAgJGhlYWRfY29sb3I6ICRoZWFkX2NvbG9yLFxuICAgICRoZWFkX21vdmUtb24tbW9iaWxlOiAkaGVhZF9tb3ZlLW9uLW1vYmlsZSxcbiAgICAkaGVhZF9mb250LXNpemUtLW1vYmlsZTogJGhlYWRfZm9udC1zaXplLS1tb2JpbGVcbikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdGJvZHkgdGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGhlYWRfbW92ZS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAnOiAnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZF9jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9hbHRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc3R5bGVsaW50LWVuYWJsZVxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0YWJsZS1tb2JpbGUtbGF5b3V0LWhvb2soKTtcbn1cblxuQG1peGluIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dCgpIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIFRvIGhpZGUgdW5uZWNlc3NhcnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cbiAgICBAaW5jbHVkZSB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQtaG9vaygpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy10b29sYmFyIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXRvb2xiYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgICAuY3MtdG9vbGJhcl9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXRvb2xiYXJfX2l0ZW0tLXBhZ2luYXRpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfSB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtdG9vbGJhcl9faXRlbS0tb2ZmY2FudmFzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgIHotaW5kZXg6IDE7IH1cbiAgLmNzLXRvb2xiYXIgLmZpZWxkIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy10b29sYmFyIC5jcy1odG1sLXNlbGVjdCB7XG4gICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIC5jcy10b29sYmFyIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlciB7XG4gICAgbWluLWhlaWdodDogMy41cmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246OmJlZm9yZSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOjphZnRlciB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc4YjBlMDtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uICosIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogIzc4YjBlMDtcbiAgICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzM0NjA5NztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0NjA5NzsgfVxuICAgICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiBzdmcge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjRyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGxlZnQ6IDFlbTtcbiAgICAgIG1heC13aWR0aDogMi4zcmVtO1xuICAgICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiA0ZW07IH1cblxuLnRvb2xiYXItYW1vdW50IHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi5jcy1zb3J0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1zb3J0ZXJfX2xhYmVsIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3Mtc29ydGVyX19zZWxlY3Qge1xuICAgICAgbWF4LXdpZHRoOiAxOHJlbTsgfSB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1saW1pdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1saW1pdGVyX19sYWJlbCxcbiAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5jcy1saW1pdGVyX19sYWJlbC0tcHJlZml4LFxuICAgIC5maWVsZCAuY3MtbGltaXRlcl9fbGFiZWwtLXByZWZpeCB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW0gMCAxcmVtOyB9XG4gICAgLmNzLWxpbWl0ZXJfX2xhYmVsLS1zdWZmaXgsXG4gICAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbC0tc3VmZml4IHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cbiAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7IH1cbiAgICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7IH1cbiAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAzLjVyZW07XG4gICAgbWluLWhlaWdodDogMy41cmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4zZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXIsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmhvdmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6Zm9jdXMsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXIsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmhvdmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtLS1jdXJyZW50IC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpmb2N1cywgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtbGltaXRlciAuY3MtaHRtbC1zZWxlY3QsXG4gIC5jcy1saW1pdGVyIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlcixcbiAgLmNzLWxpbWl0ZXIgc2VsZWN0IHtcbiAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgbWluLWhlaWdodDogMy41cmVtOyB9XG5cbi5jcy1kYXNoYm9hcmQgLmxpbWl0ZXItbGFiZWwsXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLXRleHQge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmNzLWRhc2hib2FyZCAubGltaXRlci10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLW9wdGlvbnMge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXBhZ2luYXRpb24ge1xuICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqLyB9XG4gIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3ByZWZpeC1sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtaGVpZ2h0OiAzLjVyZW07XG4gICAgd2lkdGg6IDQuNWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuODVlbTsgfVxuICAuY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlci1sYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXBhZ2luYXRpb25fX2l0ZW1zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmNzLXBhZ2luYXRpb25fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyB9XG4gIC5jcy1wYWdpbmF0aW9uX19udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjNzhiMGUwO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtcGFnaW5hdGlvbl9fcHJldiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX25leHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24ge1xuICAgIHdpZHRoOiAxLjNyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgZmlsbDogIzc4YjBlMDtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24tLWRpc2FibGVkIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiB7XG4gICAgICBmaWxsOiAjZGNkY2RjOyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbjpub3QoLmNzLXBhZ2luYXRpb25fX2FjdGlvbi0tZGlzYWJsZWQpOmhvdmVyIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbixcbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uOm5vdCguY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCk6Zm9jdXMgLmNzLXBhZ2luYXRpb25fX2FjdGlvbi1pY29uLFxuICAgIC5jcy1wYWdpbmF0aW9uX19hY3Rpb246bm90KC5jcy1wYWdpbmF0aW9uX19hY3Rpb24tLWRpc2FibGVkKTphY3RpdmUgLmNzLXBhZ2luYXRpb25fX2FjdGlvbi1pY29uIHtcbiAgICAgIGZpbGw6ICMzNDYwOTc7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4gKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuICogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiAqIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX2xhYmVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtIDAgMDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZXMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfSB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAzLjVyZW07XG4gICAgbWluLWhlaWdodDogMy41cmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4zZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogMC43ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC43ZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmZvY3VzLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmFjdGl2ZSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246aG92ZXIsIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmZvY3VzLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgY29sb3I6ICM3OGIwZTA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbi0tZ3JpZCB7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjFyZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbi0tbGlzdCB7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjFyZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24ge1xuICAgICAgZmlsbDogIzc4YjBlMDsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uICsgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kdG9vbGJhcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LXdyYXA6IHdyYXAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2ZvbnQtd2VpZ2h0OiBpbmhlcml0ICFkZWZhdWx0O1xuJHRvb2xiYXJfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA6IDAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9lbGVtZW50cy1tYXJnaW46IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwOiAwIDAgMS41cmVtICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodDogMy41cmVtICFkZWZhdWx0O1xuJHRvb2xiYXJfaW5wdXQtbWF4LWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldDogMjByZW0gIWRlZmF1bHQ7IC8vIHNldCAnbm9uZScgdG8gZGlzYWJsZVxuXG4kdG9vbGJhcl9jb21wb25lbnRzLWFsaWdubWVudDogKFxuICAgIGFtb3VudDogbGVmdCxcbiAgICBzb3J0ZXI6IGxlZnQsXG4gICAgbGltaXRlcjogbGVmdCxcbiAgICB2aWV3bW9kZS1zd2l0Y2hlcjogbGVmdCxcbiAgICBwYWdpbmF0aW9uOiByaWdodCxcbikgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2Ftb3VudC1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3NvcnRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX2xpbWl0ZXItYWxpZ246IGxlZnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl92aWV3bW9kZS1zd2l0Y2hlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3BhZ2luYXRpb24tYWxpZ246IHJpZ2h0ICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zOiAnbGVmdCcgIWRlZmF1bHQ7XG5cbi4jeyRuc310b29sYmFyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZvbnQtc2l6ZTogJHRvb2xiYXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRvb2xiYXJfdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6ICR0b29sYmFyX2Rpc3BsYXk7XG5cbiAgICAgICAgQGlmICR0b29sYmFyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmbGV4LXdyYXA6ICR0b29sYmFyX2ZsZXgtd3JhcCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHRvb2xiYXJfZWxlbWVudHMtbWFyZ2luO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHRvb2xiYXJfZWxlbWVudHMtbWFyZ2luLXRhYmxldC11cDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0b29sYmFyX2VsZW1lbnRzLXBhZGRpbmctdGFibGV0LXVwO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRtb2RpZmllciwgJHZhbHVlIGluICR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50IHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPT0gcmlnaHQge1xuICAgICAgICAgICAgICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdG9vbGJhcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGltaXRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLiN7JG5zfWh0bWwtc2VsZWN0IHtcbiAgICAgICAgQGlmICR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldCAhPSBub25lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdHJpZ2dlciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpbHRlcnMtYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogMi4zcmVtO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMi4zcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycy1idXR0b24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL2Ftb3VudC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9zb3J0ZXIuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbGltaXRlci5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9wYWdpbmF0aW9uLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MnO1xuIiwiLnRvb2xiYXItYW1vdW50IHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRzb3J0ZXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRzb3J0ZXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuXG4kc29ydGVyX2xhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDAgIWRlZmF1bHQ7XG4kc29ydGVyX2xhYmVsLXdoaXRlLXNwYWNlOiBub3dyYXAgIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfc2VsZWN0LW1heC13aWR0aDogMThyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31zb3J0ZXIge1xuICAgIGRpc3BsYXk6ICRzb3J0ZXJfZGlzcGxheTtcblxuICAgIEBpZiAkc29ydGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkc29ydGVyX2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiAkc29ydGVyX2xhYmVsLXBhZGRpbmc7XG4gICAgICAgIHdoaXRlLXNwYWNlOiAkc29ydGVyX2xhYmVsLXdoaXRlLXNwYWNlO1xuICAgIH1cblxuICAgICZfX3NlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJHNvcnRlcl9zZWxlY3QtbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBwYWdpbmF0aW9uLWxpc3QtaG9vaygpIHtcbn1cblxuQG1peGluIHBhZ2luYXRpb24taXRlbS1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItaG9vaygpIHtcbn1cblxuQG1peGluIHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50LWhvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzJztcblxuJGxpbWl0ZXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRsaW1pdGVyX2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJGxpbWl0ZXJfbGFiZWxzLXdoaXRlLXNwYWNlOiBub3dyYXAgIWRlZmF1bHQ7XG4kbGltaXRlcl9tYXJnaW46IDAgMXJlbSAwIDA7XG4kbGltaXRlcl9wcmVmaXgtbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMXJlbSAhZGVmYXVsdDtcbiRsaW1pdGVyX3N1ZmZpeC1sYWJlbC1wYWRkaW5nOiAwIDAgMCAxcmVtICFkZWZhdWx0O1xuXG4kc29ydGVyX3NlbGVjdC1taW4taGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodCAhZGVmYXVsdDtcblxuLiN7JG5zfWxpbWl0ZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogJGxpbWl0ZXJfZGlzcGxheTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAkbGltaXRlcl9tYXJnaW47XG5cbiAgICBAaWYgJGxpbWl0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRsaW1pdGVyX2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgJixcbiAgICAgICAgLmZpZWxkICYge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6ICRsaW1pdGVyX2xhYmVscy13aGl0ZS1zcGFjZTtcblxuICAgICAgICAgICAgJi0tcHJlZml4IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGltaXRlcl9wcmVmaXgtbGFiZWwtcGFkZGluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3VmZml4IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGltaXRlcl9zdWZmaXgtbGFiZWwtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BhZ2luYXRpb24ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWxpc3QoKTtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0aW9uLWl0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0aW9uLW51bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9aHRtbC1zZWxlY3QsXG4gICAgLiN7JG5zfWh0bWwtc2VsZWN0X190cmlnZ2VyLFxuICAgIHNlbGVjdCB7XG4gICAgICAgIG1pbi13aWR0aDogM3JlbTtcbiAgICAgICAgbWluLWhlaWdodDogJHNvcnRlcl9zZWxlY3QtbWluLWhlaWdodDtcbiAgICB9XG59XG5cbi8vdXNlciBhcmVhIGxpbWl0ZXIgYWZ0ZXIgcmVmYWN0b3JcblxuLiN7JG5zfWRhc2hib2FyZCB7XG4gICAgLmxpbWl0ZXItbGFiZWwsXG4gICAgLmxpbWl0ZXItdGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAubGltaXRlci10ZXh0IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubGltaXRlci1vcHRpb25zIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL2hvb2tzLnNjc3MnO1xuXG4kcGFnaW5hdGlvbi1saXN0X2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saXN0X2ZsZXgtYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1saXN0IHtcbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgZGlzcGxheTogJHBhZ2luYXRpb24tbGlzdF9kaXNwbGF5O1xuXG4gICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkcGFnaW5hdGlvbi1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0LWhvb2soKTtcbn1cblxuJHBhZ2luYXRpb24taXRlbV9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3BhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9ib3JkZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzOiB0cnVlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2FzLWNpcmNsZTogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0ge1xuICAgIG1hcmdpbjogJHBhZ2luYXRpb24taXRlbV9tYXJnaW47XG4gICAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbV9wYWRkaW5nO1xuICAgIGJvcmRlcjogJHBhZ2luYXRpb24taXRlbV9ib3JkZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLWl0ZW1fbWFyZ2luID09XG4gICAgICAgIDAgYW5kXG4gICAgICAgICRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRoICE9XG4gICAgICAgIDAgYW5kXG4gICAgICAgICRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyICE9XG4gICAgICAgIG5vbmVcbiAgICB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcGFnaW5hdGlvbi1pdGVtX2JvcmRlci13aWR0aH07XG4gICAgfVxuXG4gICAgQGlmICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9hcy1jaXJjbGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWhvb2soKTtcbn1cblxuJHBhZ2luYXRpb24tbnVtYmVyX21pbi13aWR0aDogMy41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl90ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb246IGluaGVyaXQgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGg7XG4gICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ7XG4gICAgdHJhbnNpdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RyYW5zaXRpb247XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXJfY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RleHQtZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2NvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2JhY2tncm91bmQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb247XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50X2JhY2tncm91bmQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudC1ob29rKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9jb250ZW50LWZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LXdpZHRoOiA0LjVlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG5cbi8vIHByZXYvbmV4dCBhcnJvd3NcbiRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXdpZHRoOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ6IDIuNHJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb246IGZpbGwgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aW9uLS1ob3Zlcl9pY29uLWZpbGw6ICRjb2xvcl90b3JlYS1iYXkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDogJGNvbG9yX2FsdG8gIWRlZmF1bHQ7XG5cbi4jeyRuc31wYWdpbmF0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHBhZ2luYXRpb25fY29udGVudC1mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlZml4LWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gICAgJl9fcGFnZS1wcm92aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR0b29sYmFyX2lucHV0LW1heC1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL3Rvb2xiYXJcbiAgICAgICAgd2lkdGg6ICRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtd2lkdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqL1xuICAgICZfX2l0ZW1zIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX251bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJldiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb25fYWN0aW9uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi9taXhpbnNcbiAgICAgICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL21peGluc1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw7XG4gICAgICAgIHRyYW5zaXRpb246ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb247XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQgJiB7XG4gICAgICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb246bm90KCN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkKTpob3ZlciAmLFxuICAgICAgICAjeyRyb290fV9fYWN0aW9uOm5vdCgjeyRyb290fV9fYWN0aW9uLS1kaXNhYmxlZCk6Zm9jdXMgJixcbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbjpub3QoI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQpOmFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uLWFjdGlvbi0taG92ZXJfaWNvbi1maWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9taXhpbnMuc2Nzcyc7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi14LWF4aXMtcGFkZGluZzogMC43ZW0gIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1maWxsOiBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tLWN1cnJlbnQtZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtaGVpZ2h0OiAxLjFyZW0gIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtd2lkdGggIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLWhlaWdodCAhZGVmYXVsdDtcblxuLiN7JG5zfXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19tb2RlcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9fbW9kZSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX21vZGUtYWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXIoKTtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIHNldCBoZWlnaHQgZXhwbGljaXRseSBmb3IgSUVcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nO1xuXG4gICAgICAgICN7JHJvb3R9X19tb2RlLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21vZGUtaWNvbiB7XG4gICAgICAgIGZpbGw6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1maWxsO1xuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3QtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBmaWxsOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tLWN1cnJlbnQtZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICsgI3skcm9vdH1fX21vZGUtbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQ0VBO0FDRkE7OztBRE1BO0FESUE7QUFnQkE7O0FDaEJBO0FEVkE7O0FDYUE7QUNiQTs7O0FEaUJBO0FEUEE7QUFnQkE7O0FDTEE7QUVsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7QUFHQTtBQUNBO0FBRUE7QUNkQTtBRGdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQURBO0FBS0E7QUFDQTs7QUh6Q0E7O0FLRUE7QUhGQTs7O0FHTUE7QUxJQTtBQWdCQTs7QUtoQkE7QUxWQTs7QUthQTtBSGJBOzs7QUdpQkE7QUxQQTtBQWdCQTs7QUtMQTtBTHJCQTs7QUt3QkE7QUh4QkE7OztBRzRCQTtBTGxCQTtBQWdCQTs7QUtNQTtBQzlCQTs7QURpQ0E7QUM3QkE7OztBRGlDQTtBQ3hCQTs7O0FENEJBO0FDbEJBOztBRHFCQTtBRTFDQTtBRE9BO0FBQ0E7QUNKQTtBQUNBO0FBQ0E7QUFFQTtBRGlCQTtBQUNBO0FBQ0E7QUNqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUNvaEJBO0FEcmhCQTtBQUlBO0FDaWhCQTtBRHJoQkE7QUFRQTtBQzZnQkE7QURyaEJBO0FBWUE7QUFJQTtBQUNBO0FBQ0E7QUNtZ0JBO0FEcmdCQTtBQUtBO0FDZ2dCQTtBRHJnQkE7QUFTQTtBQzRmQTtBRHJnQkE7QUFhQTtBQUNBO0FDdWZBO0FEcGZBO0FBRUE7QUFLQTtBQUNBO0FDNGVBO0FEN2VBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FDaWVBO0FEbmVBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FQOUZBOztBS2dIQTtBSGhIQTs7O0FHb0hBO0FMMUdBO0FBZ0JBOztBSzhGQTtBSW5IQTs7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QURtaEJBO0FDcmhCQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FEa2dCQTtBQ3BnQkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBRDRmQTtBQ3BnQkE7QUFZQTtBQUNBO0FEdWZBO0FDbGZBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBSUE7QUFKQTtBQVFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QURxZEE7QUNsZEE7QUFFQTtBQUNBO0FEK2NBO0FDNWNBO0FBR0E7QUFIQTtBQU9BO0FBQ0E7QURvY0E7QUM1Y0E7QUFZQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEMGFBO0FDL2FBO0FBUUE7QUFSQTtBQVlBO0FBQ0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FEd1pBO0FDL1pBO0FBVUE7QUFWQTtBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUR5WUE7QUMvWkE7QUF5QkE7QUF6QkE7QUE2QkE7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBRHlYQTtBQzlYQTs7QUFRQTtBRHNYQTtBQzlYQTs7QUFZQTtBQVpBOzs7QUFpQkE7QUFDQTtBQUNBO0FEMldBO0FDOVhBOzs7QUFzQkE7QUFDQTtBQUNBO0FBQ0E7QURxV0E7QUM5WEE7OztBQTZCQTtBQTdCQTs7QUFrQ0E7QUQ0VkE7QUM5WEE7O0FBcUNBO0FEeVZBO0FDOVhBOztBQXlDQTtBQUNBO0FEb1ZBO0FDOVhBOztBQThDQTtBRGdWQTtBQzlYQTs7QUFvREE7QUQwVUE7QUNwVUE7QUFLQTtBQUNBOztBVC9PQTs7QVVFQTtBUkZBOzs7QVFNQTtBVklBO0FBZ0JBOztBVWhCQTtBVlZBOztBVWFBO0FSYkE7OztBUWlCQTtBVlBBO0FBZ0JBOztBVUxBO0FDckJBOzs7Ozs7Ozs7QUQrQkE7QUV4QkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBRDdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQ3FEQTtBQUtBO0FBQ0E7QUFJQTtBRHZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FDc0VBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBSnNjQTtBSWxjQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUpzYkE7QUlsYkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7QUFFQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUQ5SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7O0FYcEJBOztBYUVBO0FYRkE7OztBV01BO0FiSUE7QUFnQkE7O0FhaEJBO0FiVkE7O0FhYUE7QVhiQTs7O0FXaUJBO0FiUEE7QUFnQkE7O0FhTEE7QUNsQkE7QUFDQTtBQUVBO0FBSEE7QUNnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FEdkNBO0FDMkNBO0FBQ0E7QUQ1Q0E7QUNnREE7QURoREE7QUNzREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QWYvREE7O0FnQkVBO0FkRkE7OztBY01BO0FoQklBO0FBZ0JBOztBZ0JoQkE7QWhCVkE7O0FnQmFBO0FkYkE7OztBY2lCQTtBaEJQQTtBQWdCQTs7QWdCTEE7QUNsQkE7QUNjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQVpBO0FBZ0JBOztBbEJuREE7O0FtQkVBO0FqQkZBOzs7QWlCTUE7QW5CSUE7QUFnQkE7O0FtQmhCQTtBbkJWQTs7QW1CYUE7QWpCYkE7OztBaUJpQkE7QW5CUEE7QUFnQkE7O0FtQkxBO0FibkJBOztBYXNCQTtBYmxCQTs7O0Fhc0JBO0FiYkE7OztBYWlCQTtBYlBBOztBYVVBO0FDbkNBOzs7Ozs7OztBRDRDQTtBRTVDQTtBQVNBO0FyQlRBOztBbUJpREE7QWpCakRBOzs7QWlCcURBO0FuQjNDQTtBQWdCQTs7QW1CK0JBO0FHekJBO0FBeVhBO0FBK0NBO0FBcmFBO0FBRUE7QUFTQTtBQUNBO0FBQ0E7QUMwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUQ1REE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FFL0JBO0FGK0JBO0FFeEJBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUZpQkE7QUVQQTtBQUNBO0FBQ0E7QUFJQTtBRkNBO0FFcUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRjFCQTtBRWtDQTtBRmxDQTtBQ21JQTtBQUNBO0FBQ0E7QURySUE7QUMySUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBRHJKQTtBQ3dKQTtBQUNBO0FEekpBO0FDOE1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBRHROQTtBQ3lOQTtBQUNBO0FEMU5BO0FDMlFBO0FBQ0E7QUQ1UUE7QUFrQkE7QUFsQkE7QUEwQkE7QUExQkE7QUErQkE7QUEvQkE7QUFvQ0E7QUFwQ0E7QUF5Q0E7QUFNQTtBQ3VPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBY0E7QUR2UEE7QUFHQTtBQzRTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBRDdUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBRUE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBS0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBbkJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFLQTtBQUlBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FoQi9NQTtBQUNBO0FBQ0E7QWdCZ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFlQTtBQWZBO0FBb0JBO0FBT0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQVpBO0FBZ0JBO0FBSUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QWRzUUE7QWN6UUE7QUFNQTtBZG1RQTtBY3pRQTtBQVVBO0FBQ0E7QUFYQTtBQWVBO0FBQ0E7QUExQkE7QUErQkE7QUFDQTtBQUlBO0FBR0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFLQTtBQUVBO0FBRkE7QUFNQTtBQU5BO0FBU0E7QUFTQTtBQUVBO0FBRkE7QUFNQTtBQUNBO0FBSUE7QUFFQTtBQUZBO0FBTUE7QUFDQTtBQUlBOztBQUdBO0FBSEE7QUFPQTtBQVBBO0FBV0E7QUFYQTtBQWVBO0FBZkE7O0FBcUJBO0FBRUE7QUF2QkE7O0FBNEJBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQXJhQTtBQTJhQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBUEE7QUFVQTtBQVZBO0FBYUE7O0F0QjVkQTs7QXlCRUE7QXZCRkE7OztBdUJNQTtBekJJQTtBQWdCQTs7QXlCaEJBO0F6QlZBOztBeUJhQTtBdkJiQTs7O0F1QmlCQTtBekJQQTtBQWdCQTs7QXlCTEE7QXpCckJBOztBeUJ3QkE7QXZCeEJBOzs7QXVCNEJBO0F6QmxCQTtBQWdCQTs7QXlCTUE7QUNoQ0E7QUFZQTtBMUJaQTs7QXlCcUNBO0F2QnJDQTs7O0F1QnlDQTtBekIvQkE7QUFnQkE7O0F5Qm1CQTtBRWpDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5CMGhCQTtBbUJqaUJBO0FBVUE7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFRQTtBQUNBO0FBVEE7QUNNQTtBQUNBO0FEUEE7QUNlQTtBQUNBO0FEaEJBO0FBY0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7O0EzQjdEQTs7QTZCRUE7QTNCRkE7OztBMkJNQTtBN0JJQTtBQWdCQTs7QTZCaEJBO0E3QlZBOztBNkJhQTtBM0JiQTs7O0EyQmlCQTtBN0JQQTtBQWdCQTs7QTZCTEE7QTdCckJBOztBNkJ3QkE7QTNCeEJBOzs7QTJCNEJBO0E3QmxCQTtBQWdCQTs7QTZCTUE7QUNoQ0E7QUFTQTtBQ1RBOzs7O0FGdUNBO0FHVUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXhCMGRBO0F3QjVmQTtBQW9DQTtBQXBDQTtBQXlDQTtBQUNBO0FBMUNBO0FBOENBO0FBOUNBO0FBa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZEQTtBQTJEQTtBQUNBO0FBNURBO0FBZ0VBO0FBQ0E7QUFqRUE7QUFvRUE7QUFDQTtBQUNBO0FBQ0E7QUF2RUE7QUEyRUE7QUEzRUE7QUFnRkE7QUFDQTtBQWpGQTtBQXFGQTtBQUNBO0FBQ0E7QUF2RkE7QUEyRkE7QUEzRkE7QUFnR0E7QUFoR0E7QUFtR0E7QUFDQTtBQUNBO0FBQ0E7QUF0R0E7QUEyR0E7QUFDQTtBQUNBO0FBQ0E7QUE5R0E7QUFvSEE7QUFDQTtBQUNBO0FBdEhBO0FBMkhBO0FBM0hBO0FBZ0lBO0FBaElBO0FBbUlBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FDaEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEb0pBO0FBSUE7QUFHQTtBQ3JJQTtBQUNBO0FEb0lBO0FDcEdBO0FEb0dBO0FDakdBO0FEeUdBO0FDbEpBO0FBQ0E7QURpSkE7QUM1R0E7QUQ0R0E7QUN6R0E7QURrSEE7QUNySEE7QURxSEE7QUNsSEE7QXpCZ2NBO0F3QjlVQTtBQUlBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBTEE7QUFTQTtBQVRBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFwQkE7QUF3QkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBWUE7QUFaQTtBQWlCQTs7QUV2UkE7QWxDQUE7O0FrQ0dBO0FoQ0hBOzs7QWdDT0E7QWxDR0E7QUFnQkE7O0FrQ2ZBO0FsQ1hBOztBa0NjQTtBaENkQTs7O0FnQ2tCQTtBbENSQTtBQWdCQTs7QWtDSkE7QUN0QkE7O0FEeUJBO0FoQ3pCQTs7O0FnQzZCQTtBRUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QURoQ0E7QUFDQTtBQUNBO0FDa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFYQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBTkE7QUFVQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QTVCdWNBO0E0QjFjQTtBQU1BO0FBQ0E7O0FwQzFHQTs7QXFDRUE7QW5DRkE7OztBbUNNQTtBckNJQTtBQWdCQTs7QXFDaEJBO0FyQ1ZBOztBcUNhQTtBbkNiQTs7O0FtQ2lCQTtBckNQQTtBQWdCQTs7QXFDTEE7QXJDckJBOztBcUN3QkE7QW5DeEJBOzs7QW1DNEJBO0FyQ2xCQTtBQWdCQTs7QXFDTUE7QXJDaENBOztBcUNtQ0E7QW5DbkNBOzs7QW1DdUNBO0FyQzdCQTtBQWdCQTs7QXFDaUJBO0FqQjNDQTs7Ozs7Ozs7QWlCb0RBO0FoQnBEQTtBQVNBO0FpQkdBO0FmOEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FlOUZBO0FkR0E7QWNIQTtBZFVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QWNqQkE7QWQyQkE7QUFDQTtBQUNBO0FBSUE7QWNqQ0E7QWR1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FjNURBO0Fkb0VBO0FjcEVBO0FmcUtBO0FBQ0E7QUFDQTtBZXZLQTtBZjZLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FldkxBO0FmMExBO0FBQ0E7QWUzTEE7QWZnUEE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FleFBBO0FmMlBBO0FBQ0E7QWU1UEE7QWY2U0E7QUFDQTtBZXhTQTtBZmtUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBY0E7QWVsVUE7QWYwWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBZTVZQTtBZnlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBZ0JwR0E7QURrQ0E7QUFDQTtBQUNBO0FBVEE7QWRsQkE7QWNrQkE7QWRYQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FjSUE7QWRNQTtBQUNBO0FBQ0E7QUFJQTtBY1pBO0Fka0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBY3ZDQTtBZCtDQTtBYy9DQTtBZmdKQTtBQUNBO0FBQ0E7QWVsSkE7QWZ3SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBZWxLQTtBZnFLQTtBQUNBO0FldEtBO0FmMk5BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBZW5PQTtBZnNPQTtBQUNBO0Fldk9BO0Fmd1JBO0FBQ0E7QWZtUEE7QThCNWdCQTtBQ2pCQTtBQUtBO0FBQ0E7QURzQkE7QWZ3UkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQWNBO0FleFNBO0FmZ1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FlbFhBO0FBRUE7QUFGQTtBQUtBOztBdEMvREE7O0F3Q0VBO0F0Q0ZBOzs7QXNDTUE7QXhDSUE7QUFnQkE7O0F3Q2hCQTtBeENWQTs7QXdDYUE7QXRDYkE7OztBc0NpQkE7QXhDUEE7QUFnQkE7O0F3Q0xBO0F4Q3JCQTs7QXdDd0JBO0F0Q3hCQTs7O0FzQzRCQTtBeENsQkE7QUFnQkE7O0F3Q01BO0FsQzlCQTs7QWtDaUNBO0FsQzdCQTs7O0FrQ2lDQTtBbEN4QkE7OztBa0M0QkE7QWxDbEJBOztBa0NxQkE7QWpDMUNBO0FET0E7QUFDQTtBQ0pBO0FBQ0E7QUFDQTtBQUVBO0FEaUJBO0FBQ0E7QUFDQTtBQ2pCQTtBQUZBO0FBTUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQ29oQkE7QURyaEJBO0FBSUE7QUNpaEJBO0FEcmhCQTtBQVFBO0FDNmdCQTtBRHJoQkE7QUFZQTtBQUlBO0FBQ0E7QUFDQTtBQ21nQkE7QURyZ0JBO0FBS0E7QUNnZ0JBO0FEcmdCQTtBQVNBO0FDNGZBO0FEcmdCQTtBQWFBO0FBQ0E7QUN1ZkE7QURwZkE7QUFFQTtBQUtBO0FBQ0E7QUM0ZUE7QUQ3ZUE7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUNpZUE7QURuZUE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBOztBUDdGQTs7QXlDRUE7QXZDRkE7OztBdUNNQTtBekNJQTtBQWdCQTs7QXlDaEJBO0F6Q1ZBOztBeUNhQTtBdkNiQTs7O0F1Q2lCQTtBekNQQTtBQWdCQTs7QXlDTEE7QXJCckJBOzs7Ozs7OztBcUI4QkE7QXBCOUJBO0FBU0E7QXJCVEE7O0F5Q21DQTtBdkNuQ0E7OztBdUN1Q0E7QXpDN0JBO0FBZ0JBOztBeUNpQkE7QWYzQ0E7QUFZQTtBMUJaQTs7QXlDZ0RBO0F2Q2hEQTs7O0F1Q29EQTtBekMxQ0E7QUFnQkE7O0F5QzhCQTtBQ3RDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxDaWZBO0FrQ3ZmQTtBQVNBO0FBSUE7QUFDQTtBbEN5ZUE7QWtDMWVBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTs7QUFNQTtBQUNBO0FBUEE7QWRsQ0E7QUFDQTtBY2lDQTtBZHpCQTtBQUNBO0FjMENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsQzBjQTtBa0NoZEE7QUFTQTtBQUNBO0FBSUE7QW5CakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FtQk9BO0FBQ0E7QUFQQTtBbEI1RkE7QWtCNEZBO0FsQnJGQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FrQjhFQTtBbEJwRUE7QUFDQTtBQUNBO0FBSUE7QWtCOERBO0FsQnhDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWtCbUNBO0FsQjNCQTtBa0IyQkE7QW5Cc0VBO0FBQ0E7QUFDQTtBbUJ4RUE7QW5COEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QW1CeEZBO0FuQjJGQTtBQUNBO0FtQjVGQTtBbkJpSkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FtQnpKQTtBbkI0SkE7QUFDQTtBbUI3SkE7QW5COE1BO0FBQ0E7QWZtUEE7QWtDbGNBO0FBVUE7QUFDQTtBQUlBO0FuQjBNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBY0E7QW1CMU5BO0FuQmtSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBZUE7QUFDQTs7QXZCNWFBOztBMkNFQTtBekNGQTs7O0F5Q01BO0EzQ0lBO0FBZ0JBOztBMkNoQkE7QTNDVkE7O0EyQ2FBO0F6Q2JBOzs7QXlDaUJBO0EzQ1BBO0FBZ0JBOztBMkNMQTtBM0NyQkE7O0EyQ3dCQTtBekN4QkE7OztBeUM0QkE7QTNDbEJBO0FBZ0JBOztBMkNNQTtBQ3VDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEM0WEE7QW9DNVlBO0FBdUJBO0FBQ0E7QUF4QkE7QUE0QkE7QUE1QkE7QUFpQ0E7QUFqQ0E7QUF1Q0E7QUF2Q0E7QUEyREE7QUFDQTtBQUNBO0FBN0RBO0FBNENBO0FBNUNBO0FBZ0RBO0FBQ0E7QUFqREE7QUFxREE7QUFDQTtBQXREQTtBQWtFQTtBQWxFQTtBQXFFQTtBQXJFQTtBQTBFQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0E1Q3RQQTs7QTZDRUE7QTNDRkE7OztBMkNNQTtBN0NJQTtBQWdCQTs7QTZDaEJBO0E3Q1ZBOztBNkNhQTtBM0NiQTs7O0EyQ2lCQTtBN0NQQTtBQWdCQTs7QTZDTEE7QXJDd2hCQTtBc0N6aUJBO0FBRUE7QUFDQTtBdENzaUJBO0FzQ25pQkE7QUFFQTs7QTlDWkE7O0ErQ0VBO0E3Q0ZBOzs7QTZDTUE7QS9DSUE7QUFnQkE7O0ErQ2hCQTtBL0NWQTs7QStDYUE7QTdDYkE7OztBNkNpQkE7QS9DUEE7QUFnQkE7O0ErQ0xBO0FackJBOztBWXdCQTtBL0N4QkE7O0ErQzJCQTtBN0MzQkE7OztBNkMrQkE7QS9DckJBO0FBZ0JBOztBK0NTQTtBQ25DQTtBQU1BO0FDNENBO0FBR0E7QUFDQTtBQUNBO0F6Q3NmQTtBeUMzZkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpDdWVBO0F5Q25lQTtBQUdBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6Q3FkQTtBeUNuZEE7QUFFQTtBekNpZEE7QXlDM2ZBO0FBa0RBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDckVBO0FEZ0VBO0FDNURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFpQkE7QUR5QkE7QUNFQTtBQUNBO0FESEE7QUNrQkE7QUFDQTtBRG5CQTtBQ21FQTtBRG5FQTtBQytFQTtBMUNzWEE7QXlDcmNBO0FBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5RkE7QURnRUE7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBQWlCQTtBRHlCQTtBQ0VBO0FBQ0E7QURIQTtBQ2tCQTtBQUNBO0FEbkJBO0FDbUVBO0FEbkVBO0FDK0VBO0FEdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6Q3VZQTtBeUM3WUE7QUFTQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QWQvS0E7QUFDQTtBQUNBO0FjK0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekMrV0E7QXlDelhBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbEJBO0FBc0JBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QXpDK1VBO0F5Q3ZWQTtBQVlBO0FBQ0E7QXpDMFVBO0F5Q3ZWQTtBQWlCQTtBQUNBOztBakR4T0E7O0FtREVBO0FqREZBOzs7QWlETUE7QW5ESUE7QUFnQkE7O0FtRGhCQTtBL0JWQTs7Ozs7Ozs7QStCbUJBO0E5Qm5CQTtBQVNBO0ErQlRBO0FBbURBO0FDV0E7QUM1REE7QUFHQTs7QUQrRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbEdBOztBRG1JQTtBQy9IQTs7QUQ0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzdHQTs7QURvSEE7QUFDQTtBQ2hIQTs7O0FENkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeklBOzs7OztBRDhJQTtBQUNBO0FDL0lBO0FEb0pBO0FBQ0E7QUNySkE7OztBRG9KQTtBQUNBO0FDckpBOzs7QUR5SkE7QUN6SkE7Ozs7O0FEa0tBO0FDekpBOztBRHdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzNOQTs7O0FEZ09BO0FBQ0E7QUNqT0E7OztBRHVPQTtBQUNBO0FBQ0E7QUN6T0E7O0FEOE9BO0FDOU9BOztBRGtQQTtBQUNBO0FBQ0E7QUNoUEE7O0FEMlBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzlRQTs7O0FEbVJBO0FBQ0E7QUNwUkE7OztBRDBSQTtBQUNBO0FBQ0E7QUM1UkE7O0FEaVNBO0FDalNBOzs7O0FEc1NBO0FBQ0E7QUFDQTtBQ3hTQTs7Ozs7O0FEK1NBO0FDclNBOztBRGlQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUErQ0E7QUFDQTtBQ3BUQTs7O0FEeVFBO0FBQ0E7QUMxUUE7OztBRGdSQTtBQUNBO0FBQ0E7QUNsUkE7O0FEdVJBO0FDdlJBOzs7O0FENFJBO0FBQ0E7QUFDQTtBQzlSQTs7Ozs7O0FEcVNBO0FDclNBOztBRHVUQTtBQ3ZUQTs7O0FEMklBO0FDN0hBOztBRG9JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNySUE7O0FEK0lBO0FBQ0E7QUFDQTtBQUNBO0FDOUlBOztBRDJJQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUNsSkE7QUQ0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDcENBO0FBS0E7QUFMQTtBRHVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQ3RIQTtBQVRBO0FEcUVBO0FDckVBO0FEMkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDdkZBO0FENEZBO0FBQ0E7QUM3RkE7QURrR0E7QUFDQTtBQ25HQTtBRGtHQTtBQUNBO0FDbkdBO0FEdUdBO0FDdkdBO0FEa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN0REE7QUQ2REE7QUFDQTtBQzlEQTtBQXNDQTtBQXRDQTtBRDJFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3ZGQTtBRDRGQTtBQUNBO0FDN0ZBO0FEa0dBO0FBQ0E7QUNuR0E7QURrR0E7QUFDQTtBQ25HQTtBRHVHQTtBQ3ZHQTtBRGdIQTtBQ2hIQTtBQW9EQTtBQXBEQTtBRCtKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xMQTtBRHVMQTtBQUNBO0FDeExBO0FEOExBO0FBQ0E7QUFDQTtBQ2hNQTtBRHFNQTtBQ3JNQTtBRHlNQTtBQUNBO0FBQ0E7QUMzTUE7QURzTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBK0NBO0FBQ0E7QUN6UkE7QUQ4T0E7QUFDQTtBQy9PQTtBRHFQQTtBQUNBO0FBQ0E7QUN2UEE7QUQ0UEE7QUM1UEE7QURpUUE7QUFDQTtBQUNBO0FDblFBOzs7QUQwUUE7QUMxUUE7QUQ0UkE7QUM1UkE7QURnSEE7QUNoSEE7QURzTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDek9BO0FEOE9BO0FBQ0E7QUMvT0E7QURxUEE7QUFDQTtBQUNBO0FDdlBBO0FENFBBO0FDNVBBO0FEaVFBO0FBQ0E7QUFDQTtBQ25RQTs7O0FEMFFBO0FDMVFBO0FEK0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbExBO0FEdUxBO0FBQ0E7QUN4TEE7QUQ4TEE7QUFDQTtBQUNBO0FDaE1BO0FEcU1BO0FDck1BO0FEeU1BO0FBQ0E7QUFDQTtBQzNNQTtBRDJFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3ZGQTtBRDRGQTtBQUNBO0FDN0ZBO0FEa0dBO0FBQ0E7QUNuR0E7QURrR0E7QUFDQTtBQ25HQTtBRHVHQTtBQ3ZHQTtBRGdIQTtBQ2hIQTtBL0JrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QStCbENBO0EvQm1FQTtBK0JuRUE7QS9CeUdBO0FBQ0E7QUFDQTtBK0IzR0E7QS9CaUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QStCdElBO0EvQnlJQTtBQUNBO0ErQjFJQTtBL0JvTEE7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0ErQnZNQTtBL0IwTUE7QUFDQTtBK0IzTUE7QS9CaVBBO0FBQ0E7QStCbFBBO0EvQjRQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBY0E7QStCblJBOzs7QURnSEE7QUNoSEE7QUFtR0E7QUFDQTtBQXBHQTtBQXdHQTtBQXhHQTs7QUE0R0E7QUE1R0E7QUFnSEE7QUFDQTtBQUNBO0FEb0JBO0FBQ0E7QUFDQTtBQUNBO0FDeklBO0FBd0hBO0FBeEhBO0FEc0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNSQTs7QURJQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUNYQTs7QUMvTUE7OztBQ0dBO0F4REhBOztBd0RNQTtBdEROQTs7O0FzRFVBO0F4REFBO0FBZ0JBOztBd0RaQTtBeERkQTs7QXdEaUJBO0F0RGpCQTs7O0FzRHFCQTtBeERYQTtBQWdCQTs7QXdEREE7QTdDekJBOzs7Ozs7Ozs7QTZDbUNBO0F4RG5DQTs7QXdEc0NBO0F0RHRDQTs7O0FzRDBDQTtBeERoQ0E7QUFnQkE7O0F3RG9CQTtBUjlDQTtBQU1BO0FoRE5BOztBd0RtREE7QXREbkRBOzs7QXNEdURBO0F4RDdDQTtBQWdCQTs7QXdEaUNBO0E5QjNEQTtBQVlBO0ExQlpBOztBd0RnRUE7QXREaEVBOzs7QXNEb0VBO0F4RDFEQTtBQWdCQTs7QXdEOENBO0FENUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0MyZ0JBO0ErQ2poQkE7QUFTQTtBQUdBO0FBQ0E7QS9Db2dCQTtBK0NyZ0JBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QS9DOGZBO0ErQ3JnQkE7QUFXQTtBL0MwZkE7QStDdGZBO0FBRUE7QUFHQTtBQU9BO0EvQzBlQTtBK0NqZkE7QUFHQTtBL0M4ZUE7QStDamZBO0FBVUE7QS9DdWVBO0ErQ2pmQTtBQWNBO0FBQ0E7QS9Da2VBO0ErQzlkQTtBQUVBO0FBQ0E7QUFDQTtBL0MwZEE7QStDOWRBO0FBUUE7QS9Dc2RBO0ErQzlkQTtBQVlBO0FBQ0E7QS9DaWRBO0ErQzdjQTtBQUVBO0FBQ0E7QS9DMGNBO0ErQzdjQTtBQU9BO0FBRUE7QUFDQTtBL0NtY0E7QStDOWJBO0FBRUE7QUFGQTtBQUtBO0EvQ3liQTtBK0NyYkE7QUFFQTtBL0NtYkE7QStDL2FBO0FBRUE7QS9DNmFBO0ErQ3phQTtBQUVBO0FBQ0E7QUFLQTs7QW5EeElBO0F3Qm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTJCc0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0NtWkE7QStDamFBOztBQWlCQTtBQUNBO0EvQytZQTtBK0MxWUE7Ozs7O0FBRUE7QUw3SEE7QUsySEE7Ozs7Ozs7OztBTHZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQVVBO0FLb0ZBOzs7Ozs7Ozs7QUxpRkE7QUFDQTtBS2xGQTs7Ozs7QUxzRkE7QUt0RkE7Ozs7O0FMMkZBO0FBQ0E7QUs1RkE7Ozs7O0FMZ0dBO0FLdkZBOztBNUNoS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUh5aEJBO0ErQ2phQTs7QUFzQ0E7QUFDQTtBL0MwWEE7QStDamFBOztBQTJDQTtBQUNBO0FBSUE7O0FBRUE7QUFDQTtBL0M4V0E7QStDMVdBOzs7OztBQUVBO0EvQ3dXQTtBK0NqWEE7O0FBY0E7QS9DbVdBO0ErQ2pYQTs7QUFrQkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFQQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBL0M2U0E7QStDOVNBO0FBR0E7QUFIQTtBQU1BO0EvQ3dTQTtBK0M5U0E7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUpBO0FBU0E7QUFUQTtBQWNBO0FBQ0E7QUFmQTtBQWtCQTtBQUNBO0EvQzhRQTtBK0M1UUE7QUFHQTs7QXZEcFNBOztBeURFQTtBdkRGQTs7O0F1RE1BO0F6RElBO0FBZ0JBOztBeURoQkE7QXpEVkE7O0F5RGFBO0F2RGJBOzs7QXVEaUJBO0F6RFBBO0FBZ0JBOztBeURMQTtBdEJyQkE7O0FzQndCQTtBekR4QkE7O0F5RDJCQTtBdkQzQkE7OztBdUQrQkE7QXpEckJBO0FBZ0JBOztBeURTQTtBL0JuQ0E7QUFZQTtBMUJaQTs7QXlEd0NBO0F2RHhDQTs7O0F1RDRDQTtBekRsQ0E7QUFnQkE7O0F5RHNCQTtBQ2pDQTtBdkJWQTtBQUNBO0FBQ0E7QXVCYUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQVRBO0E5QjBCQTtBQUNBO0E4QjNCQTtBOUJtQ0E7QUFDQTtBOEJwQ0E7QUF1QkE7QUFDQTtBQUNBO0FsRHFnQkE7QWtEOWhCQTtBQTRCQTtBQUNBOztBMUQ1Q0E7O0EyREVBO0F6REZBOzs7QXlETUE7QTNESUE7QUFnQkE7O0EyRGhCQTtBM0RWQTs7QTJEYUE7QXpEYkE7OztBeURpQkE7QTNEUEE7QUFnQkE7O0EyRExBO0FqQ3JCQTtBQVlBO0ExQlpBOztBMkQwQkE7QXpEMUJBOzs7QXlEOEJBO0EzRHBCQTtBQWdCQTs7QTJEUUE7QUNaQTtBQUdBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBaENHQTtBQUNBO0FnQ0pBO0FoQ1lBO0FBQ0E7QWdDR0E7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBaENiQTtBQUNBO0FnQ1lBO0FoQ0pBO0FBQ0E7QWdDd0JBO0FBQ0E7QUFHQTtBQUVBOztBQ2pGQTs7O0FDR0E7QTlESEE7O0E4RE1BO0E1RE5BOzs7QTREVUE7QTlEQUE7QUFnQkE7O0E4RFpBO0E5RGRBOztBOERpQkE7QTVEakJBOzs7QTREcUJBO0E5RFhBO0FBZ0JBOztBOEREQTtBOUR6QkE7O0E4RDRCQTtBNUQ1QkE7OztBNERnQ0E7QTlEdEJBO0FBZ0JBOztBOERVQTtBQ3BDQTs7Ozs7Ozs7OztBRCtDQTtBRS9DQTs7Ozs7Ozs7Ozs7O0FGNERBO0E1RDVEQTs7O0E0RGdFQTtBMUNoRUE7Ozs7Ozs7O0EwQ3lFQTtBekN6RUE7QUFTQTtBd0NpR0E7QUFHQTtBQUVBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FHckdBO0FBQ0E7QUFDQTtBSDJHQTtBQUNBO0FFcEVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUZpRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSTFLQTtBQUlBO0FKa0tBO0FJaktBO0FBVUE7QUp1SkE7QUl0SkE7QUpnS0E7QUFDQTtBSWpMQTtBQUlBO0FKNEtBO0FJM0tBO0FBVUE7QUppS0E7QUloS0E7QUp3S0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSWxNQTtBQUlBO0FKeUxBO0FJeExBO0FBVUE7QUo4S0E7QUk3S0E7QUp3TEE7QUFDQTtBSXpNQTtBQUlBO0FKb01BO0FJbk1BO0FBVUE7QUp5TEE7QUl4TEE7QUpnTUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUl6TkE7QUFJQTtBSmlOQTtBSWhOQTtBQVVBO0FKc01BO0FJck1BO0FKK01BO0FBQ0E7QUloT0E7QUFJQTtBSjJOQTtBSTFOQTtBQVVBO0FKZ05BO0FJL01BO0FKdU5BO0FBQ0E7QUFLQTtBdEMxS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXNDMEpBO0FyQ3JQQTtBcUNxUEE7QXJDOU9BO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QXFDdU9BO0FyQzdOQTtBQUNBO0FBQ0E7QUFJQTtBcUN1TkE7QXJDak1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcUM0TEE7QXJDcExBO0FxQ29MQTtBdENuRkE7QUFDQTtBQUNBO0FzQ2lGQTtBdEMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBc0NpRUE7QXRDOURBO0FBQ0E7QXNDNkRBO0F0Q1JBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBc0NBQTtBdENHQTtBQUNBO0FzQ0pBO0F0Q3FEQTtBQUNBO0FzQ2hEQTtBdEMwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQWNBO0FzQzFFQTtBdENrSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QXNDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUU5UUE7QUYwUUE7QUV2UUE7QUFDQTtBQUNBO0FBQ0E7QUZvUUE7QUVoUUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBdkQ0Z0JBO0FxRGxSQTtBQWNBO0FBR0E7QUFDQTtBckRnUUE7QXFEbFJBO0FBY0E7QUFHQTtBQUNBO0FyRGdRQTtBcURsUkE7QUFjQTtBQUdBO0FBQ0E7QXJEZ1FBO0FxRGxSQTtBQWNBO0FBR0E7QUFDQTtBckRnUUE7QXFEbFJBO0FBY0E7QUFHQTtBQUNBO0FyRGdRQTtBcURsUkE7QUFjQTtBQUdBO0FBQ0E7QXJEZ1FBO0FxRGxSQTtBQWNBO0FBR0E7QUFDQTtBQU1BO0FFN09BO0F2RHVlQTtBcUQxUEE7QUFTQTtBQU1BO0FBRUE7QUFGQTtBRTVQQTtBdkR1ZUE7QXFEM09BO0FBZUE7QUFNQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QXJENk1BO0FxRDlNQTtBQUtBO0FBSUE7QUFDQTtBckRvTUE7QXFEL0xBO0FBTUE7QUFOQTtBQVVBO0FyRHFMQTtBcUQvTEE7QUFNQTtBQU5BO0FBVUE7QXJEcUxBO0FxRC9MQTtBQU1BO0FBTkE7QUFVQTtBckRxTEE7QXFEL0xBO0FBTUE7QUFOQTtBQVVBO0FyRHFMQTtBcUQvTEE7QUFNQTtBQU5BO0FBVUE7QXJEcUxBO0FxRC9MQTtBQU1BO0FBTkE7QUFVQTtBckRxTEE7QXFEL0xBO0FBTUE7QUFOQTtBQVVBO0FBOVFBO0FBMFJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaFNBO0FBcVNBO0FBclNBO0FBd1NBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckRrSkE7QXFEckpBO0FBT0E7QXJEOElBO0FxRHJKQTtBQU9BO0FyRDhJQTtBcURySkE7QUFPQTtBckQ4SUE7QXFEckpBO0FBT0E7QXJEOElBO0FxRHJKQTtBQU9BO0FyRDhJQTtBcURySkE7QUFPQTtBckQ4SUE7QXFEckpBO0FBT0E7QXJEOElBO0FxRHZJQTtBQUtBO0FyRGtJQTtBcUR2SUE7QUFLQTtBckRrSUE7QXFEdklBO0FBS0E7QXJEa0lBO0FxRHZJQTtBQUtBO0FyRGtJQTtBcUR2SUE7QUFLQTtBckRrSUE7QXFEdklBO0FBS0E7QXJEa0lBO0FxRHZJQTtBQUtBO0FBbkJBO0FBNEJBO0FBSUE7QUVqWkE7QUZpWkE7QUU5WUE7QUY4WUE7QUUxWUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBdkR5ZkE7QXFEaEdBO0FBQ0E7QUFHQTtBQUNBO0FyRDJGQTtBcURoR0E7QUFDQTtBQUdBO0FBQ0E7QXJEMkZBO0FxRGhHQTtBQUNBO0FBR0E7QUFDQTtBckQyRkE7QXFEaEdBO0FBQ0E7QUFHQTtBQUNBO0FyRDJGQTtBcURoR0E7QUFDQTtBQUdBO0FBQ0E7QXJEMkZBO0FxRGhHQTtBQUNBO0FBR0E7QUFDQTtBckQyRkE7QXFEaEdBO0FBQ0E7QUFHQTtBQUNBO0FyRDJGQTtBcURyRkE7QUFNQTtBckQrRUE7QXFEckZBO0FBTUE7QXJEK0VBO0FxRHJGQTtBQU1BO0FBTkE7QUFjQTtBckR1RUE7QXFEckZBO0FBTUE7QUFOQTtBQWNBO0FyRHVFQTtBcURyRkE7QUFNQTtBQU5BO0FBY0E7QXJEdUVBO0FxRHJGQTtBQU1BO0FBTkE7QUFjQTtBckR1RUE7QXFEckZBO0FBTUE7QUFOQTtBQWNBO0FBUUE7QUVsYUE7QUZzYUE7QUV0YUE7QUY0V0E7QUFrRUE7QUFDQTtBckRrREE7QXFEL0NBO0FBR0E7QUFLQTtBQUNBO0FyRHNDQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBckRlQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBckRlQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBckRlQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBQW5CQTtBQTJCQTtBckRPQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBQW5CQTtBQTJCQTtBckRPQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBQW5CQTtBQTJCQTtBckRPQTtBcURsQ0E7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQW1CQTtBQW5CQTtBQTJCQTtBQUNBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBN0Rwa0JBOztBa0VFQTtBaEVGQTs7O0FnRU1BO0FsRUlBO0FBZ0JBOztBa0VoQkE7QWxFVkE7O0FrRWFBO0FoRWJBOzs7QWdFaUJBO0FsRVBBO0FBZ0JBOztBa0VMQTtBbEVyQkE7O0FrRXdCQTtBaEV4QkE7OztBZ0U0QkE7QWxFbEJBO0FBZ0JBOztBa0VNQTtBNUQ5QkE7O0E0RGlDQTtBNUQ3QkE7OztBNERpQ0E7QTVEeEJBOzs7QTRENEJBO0E1RGxCQTs7QTREcUJBO0FoRTlDQTs7O0FnRWtEQTtBQ3JCQTs7OztBRDBCQTtBMURzZkE7QTJEdmdCQTtBQUVBO0FBQ0E7QUFDQTtBQU9BOzs7QURlQTtBMUQ2ZUE7QTJEeGZBO0FBRUE7QUFDQTtBM0RxZkE7QTJEeGZBO0FBTUE7QUFDQTtBM0RpZkE7QTJEN2VBO0FBRUE7QUFDQTtBQUNBO0FBRUE7OztBRFdBO0FDUEE7O0FBRUE7QUFDQTtBM0RnZUE7QTJEN2VBO0FBaUJBO0FBQ0E7QUFLQTtBQUdBO0FBTUE7QTNENmNBO0EyRHRkQTtBQWFBO0EzRHljQTtBMkR0ZEE7QUFrQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0R3YkE7QTJEamNBO0FBcUJBO0EzRDRhQTtBMkRqY0E7QUF5QkE7QUFDQTtBM0R1YUE7QTJEamNBO0FBOEJBO0FBSUE7QUFDQTtBQUNBO0EzRDZaQTtBMkQvWkE7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0Q2WUE7QTJEbFpBO0FBUUE7QTNEMFlBO0EyRGxaQTtBQVlBO0FBQ0E7QUFHQTtBN0Q5SUE7QUFDQTtBQUNBO0E2RDhJQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0EzRGtXQTtBMkRwWEE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFDQTtBM0QyVUE7QTJEcFhBO0FBbURBO0EzRGlVQTtBMkRwWEE7QUEwREE7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QTNEdVJBO0EyRDFSQTtBQVlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM0RpUUE7QTJEeFFBO0FBVUE7QTNEOFBBO0EyRHhRQTtBQWNBO0FBSUE7QUFDQTtBQUNBO0EzRG9QQTtBMkR0UEE7QUFLQTs7QW5FNVRBOztBb0VFQTtBbEVGQTs7O0FrRU1BO0FwRUlBO0FBZ0JBOztBb0VoQkE7QXBFVkE7O0FvRWFBO0FsRWJBOzs7QWtFaUJBO0FwRVBBO0FBZ0JBOztBb0VMQTtBekRyQkE7Ozs7Ozs7OztBeUQrQkE7QXBFL0JBOztBb0VrQ0E7QWxFbENBOzs7QWtFc0NBO0FwRTVCQTtBQWdCQTs7QW9FZ0JBO0FoRDFDQTs7Ozs7Ozs7QWdEbURBO0EvQ25EQTtBQVNBO0ErQlRBO0FBbURBO0FDV0E7QWpDOURBOzs7Ozs7OztBZ0RpRUE7QS9DakVBO0FBU0E7QWdEMkJBO0FBR0E7QTdEc2dCQTtBNkR6Z0JBO0FBT0E7QUFJQTtBQUNBO0FBR0E7QTFEdkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0EwRG1DQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcEJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUdBO0FBTUE7QWhCbURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnQjVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QWhCb0VBO0FBQ0E7QWdCckVBO0FoQjBFQTtBQUNBO0FnQjNFQTtBaEIwRUE7QUFDQTtBZ0IzRUE7QWhCK0VBO0E3QzhYQTtBNkQ3Y0E7QUFVQTtBQUtBO0FBRUE7QUFDQTtBQUhBO0FBT0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0E3RHVaQTtBNkRqYUE7QUFvQkE7QUFwQkE7QUEwQkE7QUFJQTtBMUQ5SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTBEMEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBOUN4R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QThDOEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QTlDakJBO0FBQ0E7QUFDQTtBOENlQTtBOUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E4Q0RBO0E5Q0lBO0FBQ0E7QThDTEE7QTlDMERBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBOENsRUE7QTlDcUVBO0FBQ0E7QThDdEVBO0E5Q3VIQTtBQUNBO0E4Q3hIQTtBQWVBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0ExRDVOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBMER3TkE7QUFDQTtBQUNBO0FBQ0E7QTdEOFRBO0E2RGpVQTtBQU1BO0FBSUE7QTdEdVRBO0E2RGpVQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXJFaFFBOztBc0VFQTtBcEVGQTs7O0FvRU1BO0F0RUlBO0FBZ0JBOztBc0VoQkE7QXRFVkE7O0FzRWFBO0FwRWJBOzs7QW9FaUJBO0F0RVBBO0FBZ0JBOztBc0VMQTtBM0RyQkE7Ozs7Ozs7OztBMkQrQkE7QXRFL0JBOztBc0VrQ0E7QXBFbENBOzs7QW9Fc0NBO0F0RTVCQTtBQWdCQTs7QXNFZ0JBO0FDMUNBO0FBU0E7QUN5QkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBaEVxZ0JBO0FnRTNnQkE7QUFTQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QWhFOGVBO0FnRS9mQTtBQW9CQTtBaEUyZUE7QWdFdmVBO0FBUUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQVZBO0FBY0E7QUFkQTtBQW1CQTtBQUlBO0FBRUE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0Q1SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUh5aEJBO0FnRTNhQTtBN0QxR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNkQ0SEE7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBRHlIQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FoRTZYQTtBZ0VsWkE7QUFVQTtBQWNBO0FDdklBO0FBQ0E7QUQwSUE7QUN0SUE7QUFDQTtBRHlJQTtBQ3JJQTtBQUNBO0FEd0lBO0FBQ0E7QUF3QkE7QUMxSkE7O0F6RTlEQTs7QTBFRUE7QXhFRkE7OztBd0VNQTtBMUVJQTtBQWdCQTs7QTBFaEJBO0ExRVZBOztBMEVhQTtBeEViQTs7O0F3RWlCQTtBMUVQQTtBQWdCQTs7QTBFTEE7QTFFckJBOztBMEV3QkE7QXhFeEJBOzs7QXdFNEJBO0ExRWxCQTtBQWdCQTs7QTBFTUE7QTFFaENBOztBMEVtQ0E7QXhFbkNBOzs7QXdFdUNBO0ExRTdCQTtBQWdCQTs7QTBFaUJBO0ExRTNDQTs7QTBFOENBO0F4RTlDQTs7O0F3RWtEQTtBMUV4Q0E7QUFnQkE7O0EwRTRCQTtBMUV0REE7O0EwRXlEQTtBeEV6REE7OztBd0U2REE7QTFFbkRBO0FBZ0JBOztBMEV1Q0E7QTFFakVBOztBMEVvRUE7QXhFcEVBOzs7QXdFd0VBO0ExRTlEQTtBQWdCQTs7QTBFa0RBO0FDNUVBO0FBU0E7QUNKQTtBQ2FBO0FBQ0E7QUFDQTtBQUNBO0FEYkE7QUFDQTtBQUNBO0FyQ0pBO0EvQnVpQkE7QW9FeGlCQTtBckNXQTtBQUtBO0FBQ0E7QXFDUkE7QUNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRTRnQkE7QW9FL2hCQTtBQ3NCQTtBRHRCQTtBQzZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRThmQTtBb0UvaEJBO0FDb0NBO0FEcENBO0FDeUNBO0FEekNBO0FDNkNBO0FEekNBO0FDa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRW1lQTtBb0UzaEJBO0FDMkRBOztBQzdFQTs7O0FBSUE7QUFDQTtBQUVBOztBQUVBO0FBQ0E7O0E5RVZBOztBK0VFQTtBN0VGQTs7O0E2RU1BO0EvRUlBO0FBZ0JBOztBK0VoQkE7QUNBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFKQTtBQVFBO0FBUkE7QUFXQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBR0E7QUFFQTtBQUlBO0FBRUE7O0FoRi9FQTs7QWlGRUE7QS9FRkE7OztBK0VNQTtBakZJQTtBQWdCQTs7QWlGaEJBO0FqRlZBOztBaUZhQTtBL0ViQTs7O0ErRWlCQTtBakZQQTtBQWdCQTs7QWlGTEE7QUNsQkE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBMUVnaUJBO0EwRXBpQkE7QUFRQTtBQUlBO0FBQ0E7QTFFdWhCQTtBMEV4aEJBO0FBSUE7QUFHQTtBQUNBOztBbEY3QkE7O0FtRkVBO0FqRkZBOzs7QWlGTUE7QW5GSUE7QUFnQkE7O0FtRmhCQTtBbkZWQTs7QW1GYUE7QWpGYkE7OztBaUZpQkE7QW5GUEE7QUFnQkE7O0FtRkxBO0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFDQTs7QXBGMUVBOztBcUZFQTtBbkZGQTs7O0FtRk1BO0FyRklBO0FBZ0JBOztBcUZoQkE7QXJGVkE7O0FxRmFBO0FuRmJBOzs7QW1GaUJBO0FyRlBBO0FBZ0JBOztBcUZMQTtBakVyQkE7Ozs7Ozs7O0FpRThCQTtBaEU5QkE7QUFTQTtBckJUQTs7QXFGbUNBO0FuRm5DQTs7O0FtRnVDQTtBckY3QkE7QUFnQkE7O0FxRmlCQTtBakUzQ0E7Ozs7Ozs7O0FpRW9EQTtBaEVwREE7QUFTQTtBK0JUQTtBQW1EQTtBQ1dBO0ExQzlEQTs7Ozs7Ozs7O0EwRW1FQTtBbkZuRUE7OztBbUZ1RUE7QUNmQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0E5RWtjQTtBOEU3Y0E7QUFPQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBakJBO0FBV0E7QUFDQTtBQVNBO0FBRUE7QUFJQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBTkE7QUFZQTtBQWFBO0FBRUE7QUFDQTtBQUNBO0FBSkE7O0FBVUE7QUFWQTtBQWNBO0FBS0E7QUFFQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBV0E7QUFDQTtBQWxCQTtBQVVBO0FBQ0E7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBS0E7QUFDQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQVNBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QWpDNUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpQ21LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QWpDM0pBO0FBQ0E7QWlDMEpBO0FqQ3JKQTtBQUNBO0FpQ29KQTtBakNySkE7QUFDQTtBaUNvSkE7QWpDaEpBO0FpQzZKQTtBL0RsUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QStEd09BO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QS9EM0pBO0FBQ0E7QUFDQTtBK0R5SkE7QS9EbkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStEeUlBO0EvRHRJQTtBQUNBO0ErRHFJQTtBL0RoRkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0ErRHdFQTtBL0RyRUE7QUFDQTtBK0RvRUE7QS9EbkJBO0FBQ0E7QStEOEJBO0EvRHBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQStEQTtBK0QxQ0E7QS9Eb0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0ErRHJEQTs7O0FBTUE7QUFNQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFHQTtBQUlBO0EzRTdYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBMkUwWEE7QUFJQTtBQU1BO0FBRUE7O0F0RjFaQTs7QXVGRUE7QXJGRkE7OztBcUZNQTtBdkZJQTtBQWdCQTs7QXVGaEJBO0F2RlZBOztBdUZhQTtBckZiQTs7O0FxRmlCQTtBdkZQQTtBQWdCQTs7QXVGTEE7QW5FckJBOzs7Ozs7OztBbUU4QkE7QWxFOUJBO0FBU0E7QW5CVEE7OztBcUZvQ0E7QXZGcENBOztBdUZ1Q0E7QXJGdkNBOzs7QXFGMkNBO0F2RmpDQTtBQWdCQTs7QXVGcUJBO0F2Qy9DQTtBQU1BO0FoRE5BOztBdUZvREE7QXJGcERBOzs7QXFGd0RBO0F2RjlDQTtBQWdCQTs7QXVGa0NBO0FwRDVEQTs7QW9EK0RBO0FDL0RBOztBRGtFQTtBdkZsRUE7O0F1RnFFQTtBckZyRUE7OztBcUZ5RUE7QXZGL0RBO0FBZ0JBOztBdUZtREE7QTdEN0VBO0FBWUE7QTFCWkE7O0F1RmtGQTtBckZsRkE7OztBcUZzRkE7QXZGNUVBO0FBZ0JBOztBdUZnRUE7QUVwREE7QUE4REE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QUE3QkE7QUF1QkE7QUFDQTtBQUNBO0FBUUE7QXZDeEhBO0F1Q21JQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0F2Q3BIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW1CQTtBQVVBO0F1Q2lGQTtBdkMxRUE7QXVDMEVBO0F2Q2pFQTtBdUNpRUE7QXZDb0ZBO0FBQ0E7QXVDckZBO0F2Q3lGQTtBdUN6RkE7QXZDOEZBO0FBQ0E7QXVDL0ZBO0F2Q21HQTtBdUNsRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBbUJBO0FBQ0E7QUFyQkE7QUFLQTtBQUxBO0FBU0E7QUFJQTtBQUVBO0FBVUE7QUFDQTtBQURBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQVZBO0FBTUE7QUFRQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQUtBO0FBQ0E7QUFEQTtBQUlBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFHQTtBQUtBO0FsRWpQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBa0V1T0E7QUFOQTtBakU1VEE7QWlFNFRBO0FqRXJUQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FpRThTQTtBakVwU0E7QUFDQTtBQUNBO0FBSUE7QWlFOFJBO0FqRXhRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWlFbVFBO0FqRTNQQTtBaUUyUEE7QWxFMUpBO0FBQ0E7QUFDQTtBa0V3SkE7QWxFbEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtFd0lBO0FsRXJJQTtBQUNBO0FrRW9JQTtBbEUvRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrRXVFQTtBbEVwRUE7QUFDQTtBa0VtRUE7QWxFbEJBO0FBQ0E7QWtFeUJBO0FsRWZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBa0VIQTtBQUdBO0FsRXdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBa0U1RUE7QUFJQTtBbEUxUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWtFZ1FBO0FBTkE7QWxFek5BO0FrRXlOQTtBbEVuTEE7QUFDQTtBQUNBO0FrRWlMQTtBbEUzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBa0VzSkE7QWxFbkpBO0FBQ0E7QWtFa0pBO0FsRXhHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QWtFcUZBO0FsRWxGQTtBQUNBO0FrRWlGQTtBbEUzQ0E7QUFDQTtBa0VrREE7QWxFeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBa0VzQkE7QUFHQTtBbEUrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QWtFbkRBO0FBSUE7QWxFblNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FrRW9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBbEVsUEE7QWtFa1BBO0FsRTVNQTtBQUNBO0FBQ0E7QWtFME1BO0FsRXBNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FrRStLQTtBbEU1S0E7QUFDQTtBa0UyS0E7QWxFaklBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBa0U4R0E7QWxFM0dBO0FBQ0E7QWtFMEdBO0FsRXBFQTtBQUNBO0FrRXVGQTtBbEU3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQWNBO0FrRTJEQTtBQUdBO0FsRU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FrRWRBO0FBSUE7QUFDQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBUEE7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBakZ5RUE7QWlGdEVBO0FBSUE7QWpGa0VBO0FpRjdGQTtBQWdDQTtBQUNBO0FBakNBO0FBOENBO0FBQ0E7QUEvQ0E7QXJGNWNBO0F3Qm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTZEMmVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBM0ZBO0FDaFNBO0FBQ0E7QUE4QkE7QUFNQTs7O0FIaVhBO0FHelZBOzs7Ozs7QUFBQTtBQW9CQTtBRHlUQTtBQUNBO0FDeFlBO0FENlJBO0FDM1JBO0FEMlJBO0FDdlJBO0FBRUE7QURxUkE7QUNsUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBRHVRQTtBQ3JRQTtBbEZ5WEE7QWlGcEhBO0FDOVBBO0FsRmtYQTtBaUZwSEE7QUN4TkE7Ozs7QUFBQTtBbEY0VUE7QWlGcEhBO0FDeE5BOzs7O0FBQUE7QWxGNFVBO0FpRnBIQTtBQ3hOQTs7OztBQUFBO0FsRjRVQTtBaUZwSEE7QUN4TkE7Ozs7QUFBQTtBbEY0VUE7QWlGcEhBO0FDeE5BOzs7O0FBQUE7QWxGNFVBO0FpRnBIQTtBQ3hOQTs7OztBQUFBO0FsRjRVQTtBaUZwSEE7QUN4TkE7Ozs7QUFBQTtBQVVBO0FEOE1BO0FDM01BO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QURtTUE7QUNqTUE7QURpTUE7QUNwVkE7QURvVkE7QXREcGJBO0FBQ0E7QUFDQTtBdURvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FEcVVBO0FDcFVBO0FsRndiQTtBaUZwSEE7QURwYkE7QUFDQTtBQ21iQTtBRGhiQTtBQUNBO0FBQ0E7QUFDQTtBQzZhQTtBRHphQTtBQUNBO0FBQ0E7QUN1YUE7QXREcGJBO0FBQ0E7QUFDQTtBdUR5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHFUQTtBQ2xUQTtBRGtUQTtBQzdTQTtBQUNBO0FEZ2VBO0FBRUE7O0F6Ri9tQkE7O0EyRkVBO0F6RkZBOzs7QXlGTUE7QTNGSUE7QUFnQkE7O0EyRmhCQTtBM0ZWQTs7QTJGYUE7QXpGYkE7OztBeUZpQkE7QTNGUEE7QUFnQkE7O0EyRkxBO0FqRXJCQTtBQVlBO0ExQlpBOztBMkYwQkE7QXpGMUJBOzs7QXlGOEJBO0EzRnBCQTtBQWdCQTs7QTJGUUE7QXZFbENBOzs7Ozs7OztBdUUyQ0E7QXRFM0NBO0FBU0E7QVZUQTs7Ozs7Ozs7O0FnRnVEQTtBM0Z2REE7O0EyRjBEQTtBekYxREE7OztBeUY4REE7QTNGcERBO0FBZ0JBOztBMkZ3Q0E7QUM3Q0E7QUFFQTs7O0FBS0E7QUFDQTtBQU5BOzs7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7OztBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQXBCQTs7O0FBdUJBO0FBQ0E7QUFDQTtBQXpCQTs7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZDQTs7O0FqRlhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FpRkdBOzs7QUE4Q0E7QUFDQTtBQS9DQTs7O0FBbURBO0FBQ0E7QUFDQTtBQUNBO0FwRmdlQTtBb0Z0aEJBOzs7QUF5REE7QUF6REE7Ozs7OztBckVtRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXFFakJBO0FBbEVBOzs7Ozs7QXJFMEpBO0FBQ0E7QUFDQTtBcUU1SkE7Ozs7Ozs7Ozs7O0FyRWtLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRTVLQTs7Ozs7Ozs7Ozs7QXJFK0tBO0FBQ0E7QXFFaExBOzs7Ozs7Ozs7Ozs7Ozs7O0FyRXFPQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFFN09BOzs7Ozs7Ozs7Ozs7Ozs7O0FyRWdQQTtBQUNBO0FxRWpQQTs7Ozs7O0FyRWtTQTtBQUNBO0FmbVBBO0FvRnRoQkE7Ozs7OztBQXFFQTtBQXJFQTs7Ozs7O0FyRTZTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcUVuVEE7Ozs7OztBckVtRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXFFR0E7QUF0RkE7Ozs7OztBckUwSkE7QUFDQTtBQUNBO0FxRTVKQTs7Ozs7Ozs7Ozs7QXJFa0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QXFFdkxBOzs7Ozs7Ozs7OztBckUwTEE7QUFDQTtBcUUzTEE7Ozs7Ozs7Ozs7Ozs7Ozs7QXJFcU9BO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBcUV4UEE7Ozs7Ozs7Ozs7Ozs7Ozs7QXJFMlBBO0FBQ0E7QXFFNVBBOzs7Ozs7QXJFa1NBO0FBQ0E7QWZtUEE7QW9GdGhCQTs7Ozs7O0FBeUZBO0FBQ0E7QUExRkE7Ozs7OztBckU2U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFFOU1BOzs7Ozs7QXJFbENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FxRXVCQTtBQUxBOzs7Ozs7QXJFcURBO0FBQ0E7QUFDQTtBcUV2REE7Ozs7Ozs7Ozs7O0FyRTZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FxRWxGQTs7Ozs7Ozs7Ozs7QXJFcUZBO0FBQ0E7QXFFdEZBOzs7Ozs7Ozs7Ozs7Ozs7O0FyRWdJQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QXFFbkpBOzs7Ozs7Ozs7Ozs7Ozs7O0FyRXNKQTtBQUNBO0FxRXZKQTs7Ozs7O0FyRTZMQTtBQUNBO0FxRTlMQTs7Ozs7O0FyRXdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcUVuVEE7OztBckVtRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXFFdUNBO0FBMUhBOzs7QXJFMEpBO0FBQ0E7QUFDQTtBcUU1SkE7Ozs7O0FyRWtLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FxRTVLQTs7Ozs7QXJFK0tBO0FBQ0E7QXFFaExBOzs7Ozs7O0FyRXFPQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFFN09BOzs7Ozs7O0FyRWdQQTtBQUNBO0FxRWpQQTs7O0FyRWtTQTtBQUNBO0FxRW5TQTs7O0FyRTZTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FxRXBUQTs7O0F4Rm5CQTtBd0JtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnRWtJQTtBQUNBO0FBQ0E7QUFDQTtBcEY0WUE7QW9GellBO0FBR0E7QUFDQTtBcEZxWUE7QW9GallBO0FBR0E7QUFDQTtBcEY2WEE7QW9GallBOztBQVNBO0FBQ0E7QXBGdVhBO0FvRmpZQTs7QUFnQkE7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUNBO0FwRnVXQTtBb0YxV0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7O0E1RnROQTs7QTZGRUE7QTNGRkE7OztBMkZNQTtBN0ZJQTtBQWdCQTs7QTZGaEJBO0E3RlZBOztBNkZhQTtBM0ZiQTs7O0EyRmlCQTtBN0ZQQTtBQWdCQTs7QTZGTEE7QXpFckJBOzs7Ozs7OztBeUU4QkE7QXhFOUJBO0FBU0E7QXlFQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRGa2dCQTtBc0Z2Z0JBO0FBUUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F0RnFmQTtBc0YxZkE7QUFRQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRGd2VBO0FzRjdlQTtBQVFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBdkVVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBdUUxQkE7QXRFakVBO0FzRWlFQTtBdEUxREE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBc0VtREE7QXRFekNBO0FBQ0E7QUFDQTtBQUlBO0FzRW1DQTtBdEViQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXNFUUE7QXRFQUE7QXNFQUE7QXZFaUdBO0FBQ0E7QUFDQTtBdUVuR0E7QXZFeUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXVFbkhBO0F2RXNIQTtBQUNBO0F1RXZIQTtBdkU0S0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F1RXBMQTtBdkV1TEE7QUFDQTtBdUV4TEE7QXZFeU9BO0FBQ0E7QUFDQTtBdUVwT0E7QXZFNk9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBQUNBO0F1RTlQQTtBdkVxVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7O0F2QjVhQTs7QWFFQTtBWEZBOzs7QVdNQTtBYklBO0FBZ0JBOztBYWhCQTtBa0RWQTs7Ozs7Ozs7OztBbERxQkE7QWJyQkE7O0Fhd0JBO0FYeEJBOzs7QVc0QkE7QWJsQkE7QUFnQkE7O0FhTUE7QWtGbEJBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBSUE7QUF2Q0E7QUE2Q0E7QUE3Q0E7QUFpREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBSUE7QUFKQTtBQU9BO0FBZEE7QUF1QkE7QUF2QkE7QUEwQkE7QUFzQkE7QUFDQTtBQUNBO0F2RmtiQTtBdUZwYkE7QUFLQTtBQUxBO0FBVUE7QUFWQTtBQWdCQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVVBO0FBVkE7QUFjQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUVBO0FBRkE7QUFNQTtBQWpPQTtBQXVPQTtBQXZPQTtBQTJPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBSUE7QUFuQkE7QUFvQkE7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQVJBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBaEN0VEE7QWdDc1RBO0FoQ25UQTtBQUNBO0FBQ0E7QUFDQTtBZ0NnVEE7QWhDNVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWdDMFNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBaENqVUE7QWdDaVVBO0FoQzlUQTtBZ0M4VEE7QWhDMVRBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBZ0MwVEE7QUFDQTtBdkY2TEE7QXVGOUxBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQVJBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFqQkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFkQTtBQW9CQTtBQUNBO0FBQ0E7QUF0QkE7QUEwQkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBVUE7QUFDQTtBQUNBO0FBWkE7QUFnQkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0EvRnBpQkE7O0FnR0VBO0E5RkZBOzs7QThGTUE7QWhHSUE7QUFnQkE7O0FnR2hCQTtBaEdWQTs7QWdHYUE7QTlGYkE7OztBOEZpQkE7QWhHUEE7QUFnQkE7O0FnR0xBO0FyRnJCQTs7Ozs7Ozs7O0FxRitCQTtBaEcvQkE7O0FnR2tDQTtBOUZsQ0E7OztBOEZzQ0E7QWhHNUJBO0FBZ0JBOztBZ0dnQkE7QTVFMUNBOzs7Ozs7OztBNEVtREE7QTNFbkRBO0FBU0E7QStCVEE7QUFtREE7QUNXQTtBakM5REE7Ozs7Ozs7O0E0RWlFQTtBM0VqRUE7QUFTQTtBNEVhQTtBQUNBO0FBQ0E7QXpGcWhCQTtBeUZ2aEJBO0FBS0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6RjJnQkE7QXlGL2dCQTtBQU9BO0F6RndnQkE7QXlGL2dCQTtBQVdBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QXRGaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FzRjRDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0ExRW9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBMEU5QkE7QUFDQTtBQVBBO0ExRTJHQTtBQUNBO0FBQ0E7QTBFN0dBO0ExRW1IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0EwRTdIQTtBMUVnSUE7QUFDQTtBMEVqSUE7QTFFc0xBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBMEU5TEE7QTFFaU1BO0FBQ0E7QTBFbE1BO0ExRW1QQTtBQUNBO0EwRTFPQTtBMUVtVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QTBFM1VBO0FBQ0E7QUFDQTs7QWpHeEZBOztBa0dFQTtBaEdGQTs7O0FnR01BO0FsR0lBO0FBZ0JBOztBa0doQkE7QWxHVkE7O0FrR2FBO0FoR2JBOzs7QWdHaUJBO0FsR1BBO0FBZ0JBOztBa0dMQTtBOUVyQkE7Ozs7Ozs7O0E4RThCQTtBbEc5QkE7O0FrR2lDQTtBaEdqQ0E7OztBZ0dxQ0E7QWxHM0JBO0FBZ0JBOztBa0dlQTtBbER6Q0E7QUFNQTtBOUNOQTs7O0FnRytDQTtBQ0NBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUdBO0FBRUE7QUFHQTtBQUdBO0FBNUJBO0FBa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0Q0E7QUE4Q0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBUEE7QUFXQTtBQUdBO0FBRUE7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFhQTtBQWJBO0FBaUJBO0FBV0E7QUFFQTtBQUZBO0FBTUE7QUFOQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBb0JBO0FBQ0E7QUFDQTtBQXRCQTtBQTRCQTtBQUtBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUlBO0FBT0E7QUFDQTtBQURBO0FBSUE7QUFRQTtBakQxTEE7QWlEMExBO0FqRHRMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTZCQTtBaURtSkE7QWpEbklBO0FpRG1JQTtBakQzSEE7QUFDQTtBaUQwSEE7QWpEM0dBO0FBQ0E7QWlEMEdBO0FqRHpGQTtBQUNBO0FpRHdGQTtBakQ1RUE7QUFDQTtBaUQ2RkE7QWpENU1BO0FpRDRNQTtBakR4TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QWlEcUtBO0FqRHJKQTtBaURxSkE7QWpEdklBO0FBQ0E7QWlEc0lBO0FqRHZIQTtBQUNBO0FpRHNIQTtBakRsREE7QUFDQTtBaURpREE7QWpEckNBO0FBQ0E7QWlEb0NBO0FBZUE7QUFuTkE7QUE4TkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QW5HdlNBOztBb0dFQTtBbEdGQTs7O0FrR01BO0FwR0lBO0FBZ0JBOztBb0doQkE7QXBHVkE7O0FvR2FBO0FsR2JBOzs7QWtHaUJBO0FwR1BBO0FBZ0JBOztBb0dMQTtBcEdyQkE7O0FvR3dCQTtBbEd4QkE7OztBa0c0QkE7QXBHbEJBO0FBZ0JBOztBb0dNQTtBcEdoQ0E7O0FvR21DQTtBbEduQ0E7OztBa0d1Q0E7QXBHN0JBO0FBZ0JBOztBb0dpQkE7QXpGM0NBOzs7Ozs7Ozs7QXlGcURBO0FwR3JEQTs7QW9Hd0RBO0FsR3hEQTs7O0FrRzREQTtBcEdsREE7QUFnQkE7O0FvR3NDQTtBN0JoRUE7QUFTQTtBQ3lCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FoRXFnQkE7QWdFM2dCQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFXQTtBaEU4ZUE7QWdFL2ZBO0FBb0JBO0FoRTJlQTtBZ0V2ZUE7QUFRQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBbUJBO0FBSUE7QUFFQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RDVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBSHloQkE7QWdFM2FBO0E3RDFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E2RDRIQTtBQ3BJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FEeUhBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QWhFNlhBO0FnRWxaQTtBQVVBO0FBY0E7QUN2SUE7QUFDQTtBRDBJQTtBQ3RJQTtBQUNBO0FEeUlBO0FDcklBO0FBQ0E7QUR3SUE7QUFDQTtBQXdCQTtBQzFKQTtBQUNBO0E0QmpEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBOUJBO0FBa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBSUE7QUFLQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBYkE7QUFrQkE7QUFsQkE7QUF1QkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQWlCQTtBQUNBO0FBQ0E7QUFuQkE7QUF1QkE7QUFDQTtBQXhCQTtBQTRCQTtBQUNBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBN0ZvWkE7QTZGaGFBO0FBZ0JBOztBckc3SkE7O0FzR0VBO0FwR0ZBOzs7QW9HTUE7QXRHSUE7QUFnQkE7O0FzR2hCQTtBdEdWQTs7QXNHYUE7QXBHYkE7OztBb0dpQkE7QXRHUEE7QUFnQkE7O0FzR0xBO0FDUkE7QUFHQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0EvRmdoQkE7QStGMWhCQTtBQWNBO0FBQ0E7QS9GMmdCQTtBK0YxaEJBO0FBbUJBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QS9Gc2ZBO0ErRjlmQTtBQVdBO0FBR0E7QUFDQTtBQWpEQTtBQXVEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFoR0E7QUF1R0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXZHOUhBOztBd0dFQTtBdEdGQTs7O0FzR01BO0F4R0lBO0FBZ0JBOztBd0doQkE7QXhHVkE7O0F3R2FBO0F0R2JBOzs7QXNHaUJBO0F4R1BBO0FBZ0JBOztBd0dMQTtBQ2ZBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBakdnaUJBO0FpR3ZpQkE7QUFVQTtBQUNBO0FqRzRoQkE7QWlHdmlCQTtBQWVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWpHbWZBO0FpR3hmQTtBQVFBO0FBQ0E7QWpHK2VBO0FpR3hmQTtBQWFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWpHcWVBO0FpR3ZlQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFXQTtBakc0ZEE7QWlHdmVBO0FBZ0JBO0FBQ0E7QUFqQkE7QUFvQkE7QUFLQTtBQUNBO0FqRzZjQTtBaUc5Y0E7QUFJQTtBQUNBO0FBQ0E7QWpHd2NBO0FpRzljQTtBQVVBO0FBQ0E7QUFJQTtBQUNBO0FqRzhiQTtBaUcvYkE7QUFLQTtBQUNBO0FqR3liQTtBaUcvYkE7QUFVQTtBakdxYkE7QWlHL2JBO0FBY0E7QWpHaWJBO0FpRzdhQTtBQUdBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBakdzWkE7QWlHelpBO0FBTUE7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBckVBO0FBeUVBO0FBQ0E7QUFLQTtBQUNBOztBQ3BPQTtBMUdBQTs7QTBHR0E7QXhHSEE7OztBd0dPQTtBMUdHQTtBQWdCQTs7QTBHZkE7QXZFWEE7O0F1RWNBO0ExR2RBOztBMEdpQkE7QXhHakJBOzs7QXdHcUJBO0ExR1hBO0FBZ0JBOztBMEdEQTtBMUd6QkE7O0EwRzRCQTtBeEc1QkE7OztBd0dnQ0E7QTFHdEJBO0FBZ0JBOztBMEdVQTtBMUdwQ0E7O0EwR3VDQTtBeEd2Q0E7OztBd0cyQ0E7QTFHakNBO0FBZ0JBOztBMEdxQkE7QWhGL0NBO0FBWUE7QTFCWkE7O0EwR29EQTtBeEdwREE7OztBd0d3REE7QTFHOUNBO0FBZ0JBOztBMEdrQ0E7QUNoREE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxCQTtBQW1CQTtBQUNBO0FBS0E7QXZHakNBO0F3Qm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QStFV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaEJBO0FBaUJBO0FBQ0E7QUFLQTs7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRythQTtBbUdsY0E7QUFxQkE7QUFyQkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QTNHL0lBOztBNEdFQTtBMUdGQTs7O0EwR01BO0E1R0lBO0FBZ0JBOztBNEdoQkE7QTdFVkE7Ozs7QTZFZUE7QWpHZkE7Ozs7Ozs7OztBaUd5QkE7QUNoQkE7QUNIQTtBREdBO0FDQUE7QUFDQTtBRERBO0FDSUE7QURKQTtBQ1VBO0FBQ0E7QURYQTtBQ2dCQTtBRGhCQTtBQ3FCQTtBRHJCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFJQTs7O0FsR3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBa0dYQTtBQXlDQTtBQXpDQTs7QUE4Q0E7QUFDQTtBQUNBO0FBaERBOztBQW1EQTtBQW5EQTs7QUF1REE7QUFDQTtBQXhEQTtBQThEQTtBQUNBO0FBQ0E7QUFDQTtBQWpFQTtBQXVFQTtBQUNBO0FBQ0E7QUFDQTtBQTFFQTtBQStFQTtBQS9FQTtBQXFGQTtBQUdBO0FBRUE7QUExRkE7QUFnR0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0E3Ry9IQTs7QStHRUE7QTdHRkE7OztBNkdNQTtBL0dJQTtBQWdCQTs7QStHaEJBO0EvR1ZBOztBK0dhQTtBN0diQTs7O0E2R2lCQTtBL0dQQTtBQWdCQTs7QStHTEE7QS9HckJBOztBK0d3QkE7QTdHeEJBOzs7QTZHNEJBO0EvR2xCQTtBQWdCQTs7QStHTUE7QWpGaENBO0FBU0E7QUNUQTs7OztBZ0Z1Q0E7QTdHdkNBOzs7QTZHMkNBO0FoRDNDQTs7Ozs7Ozs7OztBZ0RzREE7QUN0REE7Ozs7OztBRDZEQTtBNUU3REE7O0E0RWdFQTtBcEdoRUE7Ozs7Ozs7OztBb0cwRUE7QUUySUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6R2lWQTtBeUd4VkE7QUFXQTtBQUlBO0FBRUE7QUFJQTs7QUFJQTtBQWlCQTtBQUlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXpHd1JBO0F5RzFSQTtBQUtBO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QXpHaVFBO0F5R3BRQTtBQU1BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QXpHOE9BO0F5R2pQQTtBQU1BO0FBSUE7QUFDQTtBekdzT0E7QXlHdk9BO0FBSUE7QUF2QkE7QUErQkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsRGhWQTtBa0Q0VUE7QWxEelVBO0FBQ0E7QUFDQTtBQUNBO0FrRHNVQTtBbERsVUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBa0Q4VUE7QUFDQTtBQUNBO0FBQ0E7QXpHMkxBO0F5RzlMQTtBQU1BO0FBTkE7QUFVQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBOUUxWkE7QUFDQTtBQUNBO0E4RTJaQTtBQUNBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFJQTtBQUNBO0FBV0E7QUFTQTtBaEYzYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekJ5ZkE7QXlHM0ZBO0FBSUE7QUFHQTtBaEYzWUE7QUFDQTtBZ0YwWUE7QWhGL1dBO0FnRitXQTtBaEY1V0E7QWdGb1hBO0FoRnZhQTtBQUNBO0FnRnNhQTtBaEZ2WEE7QWdGdVhBO0FoRnBYQTtBZ0Y0WEE7QWhGcmFBO0FBQ0E7QWdGb2FBO0FoRi9YQTtBZ0YrWEE7QWhGNVhBO0FnRm9ZQTtBaEZ4YUE7QUFDQTtBZ0Z1YUE7QWhGdllBO0FnRnVZQTtBaEZwWUE7QWdGNFlBO0FoRmphQTtBQUNBO0FnRmdhQTtBaEYvWUE7QWdGK1lBO0FoRjVZQTtBZ0ZxWkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFUQTtBQWFBO0FBSUE7QWhGemFBO0FnRnlhQTtBaEZ0YUE7QWdGMmFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F6R0dBO0F5R05BO0FBTUE7QUFJQTtBQUNBO0F6R0xBO0F5R0lBO0FBSUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6R25DQTtBeUcyQkE7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6R25EQTtBeUc4Q0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QXpHeEVBO0F5RzRFQTtBQUVBO0FBR0E7QUFDQTtBQUtBO0FBWEE7QUFZQTtBQUNBO0FBYkE7O0FBbUJBO0FBS0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0F6R3hJQTtBeUd1SUE7QUFJQTtBQUlBO0FBQ0E7QXpHaEpBO0F5RytJQTtBQUlBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0F6R3RMQTtBeUdxTEE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QXpHeE1BO0F5R3FNQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQU9BO0FBQ0E7QUE5Q0E7QUFtREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFNQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTkE7QUFVQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBekc1U0E7QXlHMFNBO0FBS0E7QUFJQTtBQUNBO0F6R3BUQTtBeUdtVEE7QUFJQTtBQU9BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7O0FBZUE7QUFLQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBTEE7O0FBV0E7QUFhQTtBQUVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWtCQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXpHbmVBO0F5RzBiQTtBQU9BO0F6R2pjQTtBeUcwYkE7QUFXQTtBQUNBO0F6R3RjQTtBeUcwYkE7QUFnQkE7QUFDQTtBQWpCQTtBQTJDQTtBQTNDQTtBQStDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWJBO0FBaUJBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6R3pnQkE7QXlHb2dCQTtBQVFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBekdwaEJBO0F5R2toQkE7QUFLQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBbEJBO0FBc0JBO0FBR0E7O0FBRUE7QUEzQkE7QUErQkE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQVZBO0FBV0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0F0R3ZvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QXNHb29DQTtBdEc1b0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FzR3lvQ0E7QUFDQTtBQUNBO0FBR0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFYQTtBQWdCQTtBQWhCQTtBQW1CQTtBQUNBO0FBQ0E7QUFyQkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUE3QkE7QUFtQ0E7QUFDQTtBQUNBO0FBckNBO0FBMENBO0FBQ0E7QUFHQTtBQUNBO0FBaUNBO0FBdUNBO0FBekVBO0FBS0E7QUFMQTtBQXFDQTtBQXJDQTtBQTJDQTtBQW1DQTtBQUNBO0FBQ0E7QUFDQTtBQWFBO0FBaEJBO0FBTUE7QUFOQTtBQVdBO0FBWEE7QUFtQkE7QUFuQkE7QUF1QkE7QUFzRUE7QUFFQTtBQUZBO0FBTUE7QUFDQTtBQVNBOztBQUlBO0FBQ0E7QUFMQTs7Ozs7O0FBYUE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQVBBO0FBVUE7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBekc3NUJBO0F5R201QkE7QUFhQTtBQUNBO0F6R2o2QkE7QXlHbTVCQTtBQWtCQTtBQWxCQTtBQXNCQTtBQUNBO0FBdkJBO0FBMkJBO0FBM0JBO0FBOEJBO0FBOUJBO0FBaUNBO0FBQ0E7QUFsQ0E7QUF1Q0E7QUFDQTtBQXhDQTtBQTJDQTtBQUNBO0FBNUNBOztBQWdEQTtBQUNBO0FBakRBO0FBcURBOztBakhyL0NBOztBa0hFQTtBaEhGQTs7O0FnSE1BO0FsSElBO0FBZ0JBOztBa0hoQkE7QS9FVkE7O0ErRWFBO0FsSGJBOztBa0hnQkE7QWhIaEJBOzs7QWdIb0JBO0FsSFZBO0FBZ0JBOztBa0hGQTtBQ2hCQTtBaEZIQTtBQUNBO0FBQ0E7QWdGTUE7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQWFBO0FBYkE7QUFpQkE7QTNHb2hCQTtBMkcvZ0JBO0FBR0E7QUFDQTtBQUpBO0FBT0E7O0FuSHJDQTs7QW9IRUE7QWxIRkE7OztBa0hNQTtBcEhJQTtBQWdCQTs7QW9IaEJBO0FwSFZBOztBb0hhQTtBbEhiQTs7O0FrSGlCQTtBcEhQQTtBQWdCQTs7QW9ITEE7QXBIckJBOztBb0h3QkE7QWxIeEJBOzs7QWtINEJBO0FwSGxCQTtBQWdCQTs7QW9ITUE7QWhHaENBOzs7Ozs7OztBZ0d5Q0E7QS9GekNBO0FBU0E7QStCVEE7QUFtREE7QUNXQTtBMUM5REE7Ozs7Ozs7OztBeUd3REE7QUN4QkE7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBMUc1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTBHeUJBO0ExR2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBMEc2QkE7QWhFa0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnRTVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FoRW1IQTtBQUNBO0FnRXBIQTtBaEV5SEE7QUFDQTtBZ0UxSEE7QWhFeUhBO0FBQ0E7QWdFMUhBO0FoRThIQTtBZ0U5SEE7QUFnQkE7QUFDQTtBQUNBO0FBbEJBO0FBc0JBO0FBdEJBO0FBeUJBO0FBekJBO0FBOEJBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWVBO0FBQ0E7QUFoQkE7QUFtQkE7QUFuQkE7QUF5QkE7QUFDQTtBQUNBO0FBM0JBO0FBOEJBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQU9BO0FBQ0E7QUFDQTtBQVRBO0FBWUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBOztBckhqS0E7O0FzSEVBO0FwSEZBOzs7QW9ITUE7QXRISUE7QUFnQkE7O0FzSGhCQTtBbEdWQTs7Ozs7Ozs7QWtHbUJBO0FqR25CQTtBQVNBO0ErQlRBO0FBbURBO0FDV0E7QWtFNURBO0FsRXFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBa0V4UEE7QWxFNlBBO0FBQ0E7QWtFOVBBO0FsRW9RQTtBQUNBO0FBQ0E7QWtFdFFBO0FsRTJRQTtBa0UzUUE7QWxFK1FBO0FBQ0E7QUFDQTs7QXJEblJBOztBd0hFQTtBdEhGQTs7O0FzSE1BO0F4SElBO0FBZ0JBOztBd0hoQkE7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQXFCQTtBQUNBOztBekg5QkE7O0EwSEVBO0F4SEZBOzs7QXdITUE7QTFISUE7QUFnQkE7O0EwSGhCQTtBMUhWQTs7QTBIYUE7QXhIYkE7OztBd0hpQkE7QTFIUEE7QUFnQkE7O0EwSExBO0F2RnJCQTs7QXVGd0JBO0FDVUE7QXhGN0JBO0FBQ0E7QUFDQTtBd0ZnQ0E7QUFDQTtBQU9BO0FBQ0E7QW5INmZBO0FtSDNnQkE7QUFpQkE7QW5IMGZBO0FtSDNnQkE7QUFzQkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFlQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0EzSHpIQTs7QTRIRUE7QTFIRkE7OztBMEhNQTtBNUhJQTtBQWdCQTs7QTRIaEJBO0E1SFZBOztBNEhhQTtBMUhiQTs7O0EwSGlCQTtBNUhQQTtBQWdCQTs7QTRITEE7QWpIckJBOzs7Ozs7Ozs7QWlIK0JBO0FDU0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUZBO0FBTUE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQXpCQTtBQTZCQTtBQUNBO0FBcERBO0FBeURBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFOQTtBQVVBO0FBQ0E7QUFYQTtBQWVBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRkE7QUFNQTtBQWdCQTtBQUNBO0FBSUE7QUFDQTtBQWFBO0FBSkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQWNBO0FBZEE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FySG9WQTtBcUg1V0E7QUEyQkE7QUFFQTtBQTdCQTtBQWlDQTtBQUNBO0FBbENBO0FsSHpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBWC9CQTs7QThIRUE7QTVIRkE7OztBNEhNQTtBOUhJQTtBQWdCQTs7QThIaEJBO0FuSFZBOzs7Ozs7Ozs7QW1Ib0JBO0E5SHBCQTs7QThIdUJBO0E1SHZCQTs7O0E0SDJCQTtBOUhqQkE7QUFnQkE7O0E4SEtBO0E1SC9CQTs7O0E0SG1DQTtBMUduQ0E7Ozs7Ozs7O0EwRzRDQTtBekc1Q0E7QUFTQTtBRFRBOzs7Ozs7OztBMEd1REE7QUFDQTtBQzREQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEMURBO0FDbUVBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QXZIZ2FBO0F1SHZhQTtBQWNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVNBO0FBVEE7QUFhQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QXZIcVhBO0F1SDdYQTtBQWVBO0FBZkE7QUF1QkE7QUFDQTtBQUNBO0FBTUE7QXBIbk1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QW9IOExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F2SDJVQTtBdUg5VUE7QUFZQTtBQUNBO0FBV0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBdEJBO0FBMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxDQTtBQXNDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsREE7QUF1REE7QUFDQTtBQXhEQTtBQTJEQTtBQTNEQTtBQWlFQTtBQWpFQTtBQW9FQTtBQUNBO0FBQ0E7QUF0RUE7QUF5RUE7QUF6RUE7QUFnRkE7QUFoRkE7QUF1RkE7QUFDQTtBQXhGQTtBQTRGQTtBQTVGQTtBQStGQTtBQUNBO0FBQ0E7QUFDQTtBQWxHQTtBQTBHQTtBQUNBO0FBM0dBO0FBOEdBO0FBQ0E7QUFLQTtBcEh2V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QW9Ib1dBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFyQkE7O0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBOUJBOztBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFZQTtBQUdBO0FBSUE7QUFDQTtBQWNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFMQTtBQVNBO0FBQ0E7QUFLQTtBQUZBO0FBR0E7O0EvSHRlQTs7QWdJRUE7QTlIRkE7OztBOEhNQTtBaElJQTtBQWdCQTs7QWdJaEJBO0FoSVZBOztBZ0lhQTtBOUhiQTs7O0E4SGlCQTtBaElQQTtBQWdCQTs7QWdJTEE7QWhJckJBOztBZ0l3QkE7QTlIeEJBOzs7QThINEJBO0FoSWxCQTtBQWdCQTs7QWdJTUE7QXRHaENBO0FBWUE7QTFCWkE7O0FnSXFDQTtBOUhyQ0E7OztBOEh5Q0E7QWhJL0JBO0FBZ0JBOztBZ0ltQkE7QTdGN0NBOztBNkZnREE7QUMzQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBekhraEJBO0F5SHhoQkE7QUFTQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6SHNnQkE7QXlIM2dCQTtBQVFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0F6SHNmQTtBeUh4ZkE7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBOztBOUZwRUE7QUFDQTtBQUNBO0E4RnNFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBUkE7QUFhQTtBQWJBO0FBZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFHQTtBQVFBO0FBUkE7QXJHeEVBO0FBQ0E7QXFHdUVBO0FyRy9EQTtBQUNBO0FxR3lFQTtBQUNBO0FBQ0E7QUFHQTtBQU1BO0FBQ0E7QUFQQTtBckd4RkE7QUFDQTtBcUd1RkE7QXJHL0VBO0FBQ0E7QUFDQTtBcUd5RkE7QUFDQTtBQUNBOztBakkvSUE7O0FrSUVBO0FoSUZBOzs7QWdJTUE7QWxJSUE7QUFnQkE7O0FrSWhCQTtBbElWQTs7QWtJYUE7QWhJYkE7OztBZ0lpQkE7QWxJUEE7QUFnQkE7O0FrSUxBO0F4R3JCQTtBQVlBO0ExQlpBOztBa0kwQkE7QWhJMUJBOzs7QWdJOEJBO0FsSXBCQTtBQWdCQTs7QWtJUUE7QUMvQkE7QS9IQ0E7QXdCbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F1R3RCQTtBL0hIQTtBd0JtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVHbEJBO0EvSFBBO0F3Qm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdUdkQTtBL0hYQTtBd0JtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVHVkE7QS9IZkE7QXdCbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F1R05BO0EvSG5CQTtBd0JtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVHRkE7QXZHY0E7QUFDQTtBQUNBO0F1R2hCQTtBdkd1QkE7QUFDQTtBQUNBO0F1R3JCQTs7QXZHMkJBO0FBQ0E7QXVHNUJBOztBdkdrQ0E7O0E1QmpFQTs7QW9JRUE7QWxJRkE7OztBa0lNQTtBcElJQTtBQWdCQTs7QW9JaEJBO0FDSEE7QUFFQTtBQUNBO0FBSEE7Ozs7QUFXQTtBQUNBO0FBZkE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQkE7QUE4QkE7QUFDQTtBQS9CQTtBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7O0FySS9DQTs7QXNJRUE7QXBJRkE7OztBb0lNQTtBdElJQTtBQWdCQTs7QXNJaEJBO0EzSFZBOzs7Ozs7Ozs7QTJIb0JBO0FDakJBO0E1SFNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QTRIZEE7QUFFQTtBQUNBO0FBS0E7QUFHQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFXQTtBQUNBO0FBWkE7QUFnQkE7QUFDQTtBQWpCQTtBQW9CQTtBQUNBO0FBQ0E7QUFDQTtBQXZCQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQTdCQTtBQWlDQTtBQUNBO0FBbENBO0FBcUNBO0FBQ0E7QUFDQTtBQXZDQTtBQTBDQTtBQUNBO0FBM0NBO0FBOENBO0FBOUNBO0FBa0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZEQTtBQTREQTtBQTVEQTtBQWdFQTtBQUNBO0FBakVBO0FBc0VBO0FBQ0E7QUFDQTtBQXhFQTtBQTJFQTtBQUNBO0FBNUVBO0FBK0VBO0FBQ0E7QUFoRkE7QUFtRkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7O0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBR0E7QUFDQTtBQUpBOztBQU9BO0FBQ0E7QUFDQTtBQVRBOztBQVlBO0FBQ0E7QUFiQTs7QUFpQkE7QUFDQTtBQUNBO0FBbkJBOztBQXNCQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFaQTtBQWdCQTtBQUNBO0FBQ0E7QUFsQkE7QUFxQkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBZUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBS0E7QUFFQTtBQUZBO0FBS0E7QUFMQTtBQVFBO0FBQ0E7QUFUQTtBQWFBO0FBYkE7QUFpQkE7QUFDQTtBQU9BO0FBRUE7QUFGQTtBQUtBO0FBQ0E7QUFOQTtBQVVBO0FBVkE7QUFjQTtBQWRBO0FBa0JBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQWxCQTtBQXNCQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFlQTtBQUNBO0FBaEJBO0FBcUJBO0FBckJBO0FBd0JBO0FBeEJBO0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7O0F2STNhQTs7QXdJRUE7QXRJRkE7OztBc0lNQTtBeElJQTtBQWdCQTs7QXdJaEJBO0FDUkE7QUFFQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakJBO0FBb0JBO0FBcEJBO0FBeUJBO0FBQ0E7QUExQkE7QUErQkE7QUEvQkE7QUFrQ0E7QUFDQTs7QXpJckNBOztBMElFQTtBeElGQTs7O0F3SU1BO0ExSUlBO0FBZ0JBOztBMEloQkE7QTFJVkE7O0EwSWFBO0F4SWJBOzs7QXdJaUJBO0ExSVBBO0FBZ0JBOztBMElMQTtBdkdyQkE7O0F1R3dCQTtBQ3BCQTtBQUVBO0FBQ0E7QUFDQTtBQUpBO0FBV0E7QUFFQTtBQUNBO0FBZEE7QUFpQkE7QUFDQTtBQUNBO0FuSXNoQkE7QW1JemlCQTtBQXNCQTtBQXRCQTtBQTBCQTtBQUNBO0FBYUE7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FuSTRlQTtBbUl6ZUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUtBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5CQTtBQTBCQTtBQUNBO0FuSTZiQTtBbUl6YkE7OztBQUdBO0FBQ0E7QUFDQTtBbklvYkE7QW1JamJBOzs7O0FBSUE7QUFDQTtBbkk0YUE7QW1JemFBO0FBQ0E7QUFDQTtBQUNBO0FuSXNhQTtBbUluYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbkk0WkE7QW1JelpBOztBQUVBOztBM0l0SkE7O0E0SUVBO0ExSUZBOzs7QTBJTUE7QTVJSUE7QUFnQkE7O0E0SWhCQTtBNUlWQTs7QTRJYUE7QTFJYkE7OztBMElpQkE7QTVJUEE7QUFnQkE7O0E0SUxBO0FDaEJBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOzs7QUFJQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFPQTtBQUNBO0FBUkE7QUFZQTtBQUNBO0FBQ0E7QUFkQTtBQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTtBQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL0JBO0FBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2Q0E7QUEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUlBO0FBSUE7QUFDQTtBQUxBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBS0E7QUFDQTtBckl1WkE7QXFJaFpBO0FBTUE7O0E3SW5LQTs7QThJRUE7QTVJRkE7OztBNElNQTtBOUlJQTtBQWdCQTs7QThJaEJBO0E5SVZBOztBOElhQTtBNUliQTs7O0E0SWlCQTtBOUlQQTtBQWdCQTs7QThJTEE7QTNHckJBOztBMkd3QkE7QUNsQkE7QUFDQTtBQUNBO0F2SXFpQkE7QXVJdmlCQTtBQUtBO0FBTEE7O0FBVUE7QUFWQTtBQWNBO0FBQ0E7QUFmQTtBQWtCQTtBQWxCQTtBQXlCQTtBQXpCQTtBQThCQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QS9JbkVBOztBZ0pFQTtBOUlGQTs7O0E4SU1BO0FoSklBO0FBZ0JBOztBZ0poQkE7QWhKVkE7O0FnSmFBO0E5SWJBOzs7QThJaUJBO0FoSlBBO0FBZ0JBOztBZ0pMQTtBN0dyQkE7O0E2R3dCQTtBQ2xCQTtBQUNBO0FBQ0E7QUF3REE7QUExREE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFjQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQTVCQTtBQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBeENBO0FBNENBO0FBNUNBO0FBZ0RBO0FBaERBO0FBc0RBO0FBQ0E7QUF2REE7QUE0REE7QUE1REE7QUFnRUE7O0FDdEVBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QUFUQTs7QUFjQTtBQUNBO0FBZkE7QUFzQkE7QUFDQTtBQXZCQTtBQTJCQTtBQUNBO0FBNUJBO0FBZ0NBO0FBaENBO0FBdUNBO0FBdkNBO0FBNENBO0FBQ0E7QUE3Q0E7QUFrREE7QUFDQTtBQUNBO0FBRUE7QUF0REE7QUEwREE7QUExREE7QUE4REE7QUFDQTtBQUNBO0FBaEVBO0FBcUVBO0FBQ0E7QUF0RUE7QUEwRUE7QUFDQTtBQUlBO0FBRUE7O0FsSmpGQTs7QW1KRUE7QWpKRkE7OztBaUpNQTtBbkpJQTtBQWdCQTs7QW1KaEJBO0FDUEE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFQQTtBQVVBO0FBVkE7O0FBZUE7QUFmQTtBQW9CQTtBQXBCQTtBQXdCQTtBQXhCQTtBQTJCQTtBQTNCQTtBQThCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0Q0E7QUE0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFqREE7QUFvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoRUE7QUFzRUE7QUF0RUE7QUEyRUE7QUFDQTtBQUdBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QXBKbEdBOztBcUpFQTtBbkpGQTs7O0FtSk1BO0FySklBO0FBZ0JBOztBcUpoQkE7QXJKVkE7O0FxSmFBO0FuSmJBOzs7QW1KaUJBO0FySlBBO0FBZ0JBOztBcUpMQTtBbEhyQkE7O0FrSHdCQTtBQ3BCQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQXdCQTtBQUNBO0FBekJBO0FBNEJBO0FBQ0E7QUE3QkE7QUFnQ0E7QUFDQTtBQWpDQTtBQW9DQTtBQUNBO0FBckNBO0FBd0NBOztBdEo1Q0E7O0F1SkVBO0FySkZBOzs7QXFKTUE7QXZKSUE7QUFnQkE7O0F1SmhCQTtBdkpWQTs7QXVKYUE7QXJKYkE7OztBcUppQkE7QXZKUEE7QUFnQkE7O0F1SkxBO0FwSHJCQTs7QW9Id0JBO0FDcEJBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFpQkE7QUFDQTtBQUNBO0FBbkJBO0FBdUJBO0FBQ0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBOztBeEozQ0E7O0F5SkVBO0F2SkZBOzs7QXVKTUE7QXpKSUE7QUFnQkE7O0F5SmhCQTtBekpWQTs7QXlKYUE7QXZKYkE7OztBdUppQkE7QXpKUEE7QUFnQkE7O0F5SkxBO0F6SnJCQTs7QXlKd0JBO0F2SnhCQTs7O0F1SjRCQTtBekpsQkE7QUFnQkE7O0F5Sk1BO0FDeEJBO0FBd0JBO0FBeEJBO0FBR0E7QUFDQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkE7QUEyQkE7QUEzQkE7QUE2QkE7QUFDQTtBQTlCQTtBQW9DQTtBQXBDQTtBQTBDQTtBQUNBO0FBM0NBO0FBaURBO0FsSm9mQTtBa0pyaUJBO0FBcURBO0FBckRBO0FBeURBO0FBQ0E7QUFDQTtBQUNBO0FBNURBO0FBZ0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTs7QUFnQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBbEprYUE7QWtKcGFBO0FBS0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0ExSnpKQTs7QTJKRUE7QXpKRkE7OztBeUpNQTtBM0pJQTtBQWdCQTs7QTJKaEJBO0EzSlZBOztBMkphQTtBekpiQTs7O0F5SmlCQTtBM0pQQTtBQWdCQTs7QTJKTEE7QXhIckJBOztBd0h3QkE7QTNKeEJBOztBMkoyQkE7QXpKM0JBOzs7QXlKK0JBO0EzSnJCQTtBQWdCQTs7QTJKU0E7QTNKbkNBOztBMkpzQ0E7QXpKdENBOzs7QXlKMENBO0EzSmhDQTtBQWdCQTs7QTJKb0JBO0F2STlDQTs7Ozs7Ozs7QXVJdURBO0F0SXZEQTtBQVNBO0FVVEE7Ozs7QTRIOERBO0FDdERBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQVBBO0FBV0E7QUFDQTtBQVpBO0FBZUE7QUFDQTtBQWhCQTtBQW9CQTtBQUNBO0FBckJBO0FBd0JBO0FBQ0E7QUFLQTtBQUVBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWNBO0FBQ0E7QUFmQTtBQWtCQTtBQUNBO0FBbkJBO0FBc0JBO0FBQ0E7QUF2QkE7QUE0QkE7QUFDQTtBQTdCQTtBQWdDQTtBQUNBO0FBakNBO0FBb0NBO0FBcENBO0FBdUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FwSndjQTtBb0ozY0E7QUFNQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FwSjhiQTtBb0poY0E7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBTkE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUdBOzs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQU5BO0FBVUE7QUFDQTtBQUtBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBbUJBO0FBQ0E7QUFwQkE7QUF1QkE7QUFDQTtBQUNBO0FBekJBO0FBNkJBO0FBQ0E7QUE5QkE7QUFvQ0E7QUFDQTtBQXJDQTtBQXlDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFtQkE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBO0FBU0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFWQTtBQWFBO0FBYkE7QUFtQkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFrQkE7QUFDQTtBQW5CQTtBQXVCQTtBQUNBO0FBQ0E7O0E1SnhYQTs7QTZKRUE7QTNKRkE7OztBMkpNQTtBN0pJQTtBQWdCQTs7QTZKaEJBO0E3SlZBOztBNkphQTtBM0piQTs7O0EySmlCQTtBN0pQQTtBQWdCQTs7QTZKTEE7QUNqQkE7QUFrREE7QUFsREE7QUFHQTtBQUhBO0FBT0E7QUFQQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoQ0E7QUFvQ0E7QUFDQTtBQUNBO0FBdENBO0FBeUNBO0FBekNBO0FBOENBO0FBQ0E7QUEvQ0E7QUFxREE7QUFyREE7QUF1REE7QUFDQTtBQXhEQTtBQThEQTtBQTlEQTtBQW9FQTtBQUNBO0FBckVBO0FBMkVBO0F0SjhkQTtBc0p6aUJBO0FBK0VBO0FBL0VBO0FBbUZBO0FBQ0E7QUFDQTtBQUNBO0FBdEZBO0FBMEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBOUpwR0E7O0ErSkVBO0E3SkZBOzs7QTZKTUE7QS9KSUE7QUFnQkE7O0ErSmhCQTtBdkptaUJBO0F3SjFpQkE7QUFHQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFXQTtBQUNBO0FBWkE7QUFlQTtBQUNBO0FBaEJBO0FBbUJBO0FBQ0E7QUFDQTtBQXJCQTtBQXdCQTtBQUFBO0FBQ0E7QUFDQTtBQTFCQTtBQTZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRDQTtBQTJDQTtBQUNBO0FBNUNBO0FBZ0RBO0FBQ0E7QUFqREE7QUFxREE7QUFDQTtBQXREQTtBQTJEQTtBQUNBO0FBNURBO0FBK0RBO0FBL0RBO0FBbUVBO0FBbkVBO0FBc0VBO0FBdEVBO0FBMkVBO0FBQ0E7QUFDQTtBQTdFQTtBQW9GQTtBQXBGQTtBQXVGQTtBQXZGQTtBQTRGQTtBQUNBO0FBN0ZBO0FBaUdBO0FBakdBO0FBcUdBO0FBQ0E7QUF0R0E7QUEyR0E7O0FDN0dBOztBQUlBO0FBQ0E7QUFDQTtBQU5BOztBQVNBOztBQ1JBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQVBBO0FBVUE7QUFDQTtBQUlBO0FBS0E7QUFDQTtBQU5BO0FBV0E7QUFDQTtBQVpBO0FBaUJBO0FBQ0E7QUFsQkE7QUFxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBS0E7QUFDQTtBQU1BO0FBRUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7O0FDekVBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBUkE7QUFVQTtBQUNBO0FBWEE7QUFjQTtBQUNBO0FBZkE7QUFpQkE7QUFDQTtBQUdBO0FBQ0E7O0FDdEJBO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7O0FwS1JBOztBcUtFQTtBbktGQTs7O0FtS01BO0FyS0lBO0FBZ0JBOztBcUtoQkE7QXJLVkE7O0FxS2FBO0FuS2JBOzs7QW1LaUJBO0FyS1BBO0FBZ0JBOztBcUtMQTtBbElyQkE7O0FrSXdCQTtBbkt4QkE7OztBbUs0QkE7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQWFBO0FBYkE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBMEJBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBOUowZkE7QThKcGdCQTtBQVlBO0FBWkE7QUFlQTtBQWZBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZCQTtBQTRCQTtBQUNBO0E5SnVlQTtBOEpuZUE7QUFHQTs7QUM3RUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBRUE7QUFDQTtBQUhBOztBQU9BOztBdkt6QkE7O0F3S0VBO0F0S0ZBOzs7QXNLTUE7QXhLSUE7QUFnQkE7O0F3S2hCQTtBeEtWQTs7QXdLYUE7QXRLYkE7OztBc0tpQkE7QXhLUEE7QUFnQkE7O0F3S0xBO0F4S3JCQTs7QXdLd0JBO0F0S3hCQTs7O0FzSzRCQTtBeEtsQkE7QUFnQkE7O0F3S01BO0FDeEJBO0FBa0NBO0FBbENBO0FBR0E7QUFDQTtBQUNBO0FBTEE7QUFXQTtBQUNBO0FBWkE7QUFjQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQkE7QUFxQ0E7QUFyQ0E7QUF1Q0E7QUFDQTtBQXhDQTtBQThDQTtBQTlDQTtBQW9EQTtBQUNBO0FBckRBO0FBMkRBO0FqSzBlQTtBaUtyaUJBO0FBK0RBO0FBL0RBO0FBbUVBO0FBQ0E7QUFDQTtBQUNBO0FBdEVBO0FBMEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaEZBO0FBc0ZBO0FBdEZBO0FBMkZBO0FBQ0E7QUFDQTtBQU9BOztBQWdDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FqSzJZQTtBaUs3WUE7QUFLQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbkJBO0FBd0JBO0FBQ0E7QUF6QkE7QUE0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQ0E7QUFvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQ0E7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QTNLakRBOztBNEtFQTtBMUtGQTs7O0EwS01BO0E1S0lBO0FBZ0JBOztBNEtoQkE7QTVLVkE7O0E0S2FBO0ExS2JBOzs7QTBLaUJBO0E1S1BBO0FBZ0JBOztBNEtMQTtBNUtyQkE7O0E0S3dCQTtBMUt4QkE7OztBMEs0QkE7QTVLbEJBO0FBZ0JBOztBNEtNQTtBQ3hCQTtBQWlDQTtBQWpDQTtBQUdBO0FBQ0E7QUFDQTtBQUxBO0FBV0E7QUFDQTtBQUNBO0FBYkE7QUFlQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXpCQTtBQW9DQTtBQXBDQTtBQXNDQTtBQUNBO0FBdkNBO0FBNkNBO0FBN0NBO0FBbURBO0FBQ0E7QUFwREE7QUEwREE7QXJLMmVBO0FxS3JpQkE7QUE4REE7QUE5REE7QUFrRUE7QUFDQTtBQUNBO0FBQ0E7QUFyRUE7QUF5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvRUE7QUFxRkE7QUFyRkE7QUEwRkE7QUFDQTtBQUNBO0FBT0E7O0FBZ0NBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QXJLNFlBO0FxSzlZQTtBQUtBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBN0svS0E7O0E4S0VBO0E1S0ZBOzs7QTRLTUE7QTlLSUE7QUFnQkE7O0E4S2hCQTtBOUtWQTs7QThLYUE7QTVLYkE7OztBNEtpQkE7QTlLUEE7QUFnQkE7O0E4S0xBO0E5S3JCQTs7QThLd0JBO0E1S3hCQTs7O0E0SzRCQTtBOUtsQkE7QUFnQkE7O0E4S01BO0FDeEJBO0FBaUNBO0FBakNBO0FBR0E7QUFDQTtBQUNBO0FBTEE7QUFXQTtBQUNBO0FBQ0E7QUFiQTtBQWVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBekJBO0FBb0NBO0FBcENBO0FBc0NBO0FBQ0E7QUF2Q0E7QUE2Q0E7QUE3Q0E7QUFtREE7QUFDQTtBQXBEQTtBQTBEQTtBdksyZUE7QXVLcmlCQTtBQThEQTtBQTlEQTtBQWtFQTtBQUNBO0FBQ0E7QUFDQTtBQXJFQTtBQXlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9FQTtBQXFGQTtBQXJGQTtBQTBGQTtBQUNBO0FBQ0E7QUFPQTs7QUFnQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBdks0WUE7QXVLOVlBO0FBS0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0EvSy9LQTs7QWdMRUE7QTlLRkE7OztBOEtNQTtBaExJQTtBQWdCQTs7QWdMaEJBO0FoTFZBOztBZ0xhQTtBOUtiQTs7O0E4S2lCQTtBaExQQTtBQWdCQTs7QWdMTEE7QXhLd2hCQTtBeUsxaUJBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QUFUQTtBQVdBO0FBWEE7QUFhQTtBQWJBO0FBZ0JBO0FBaEJBO0FBa0JBO0FBbEJBO0FBcUJBOztBakx4QkE7O0FrTEVBO0FoTEZBOzs7QWdMTUE7QWxMSUE7QUFnQkE7O0FrTGhCQTtBbExWQTs7QWtMYUE7QWhMYkE7OztBZ0xpQkE7QWxMUEE7QUFnQkE7O0FrTExBO0FDbEJBO0FBRUE7QUFDQTtBQUhBO0FBT0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQUNBO0FBYkE7QUFnQkE7O0FuTG5CQTs7QW9MRUE7QWxMRkE7OztBa0xNQTtBcExJQTtBQWdCQTs7QW9MaEJBO0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7Ozs7QUFzQkE7QUFDQTtBQUNBO0FBeEJBO0FBNEJBO0FBNUJBO0FBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBbENBO0FBdUNBO0FBdkNBO0FBMkNBO0FBQ0E7O0FyTC9DQTs7QXNMRUE7QXBMRkE7OztBb0xNQTtBdExJQTtBQWdCQTs7QXNMaEJBO0FDUkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBdkxSQTs7QXNMRUE7QXBMRkE7OztBb0xNQTtBdExJQTtBQWdCQTs7QXNMaEJBO0F0TFZBOztBc0xhQTtBcExiQTs7O0FvTGlCQTtBdExQQTtBQWdCQTs7QXNMTEE7QXRMckJBOztBc0x3QkE7QXBMeEJBOzs7QW9MNEJBO0F0TGxCQTtBQWdCQTs7QXNMTUE7QXRMaENBOztBc0xtQ0E7QXBMbkNBOzs7QW9MdUNBO0F0TDdCQTtBQWdCQTs7QXNMaUJBO0F0TDNDQTs7QXNMOENBO0FwTDlDQTs7O0FvTGtEQTtBdEx4Q0E7QUFnQkE7O0FzTDRCQTtBdEx0REE7O0FzTHlEQTtBcEx6REE7OztBb0w2REE7QXRMbkRBO0FBZ0JBOztBc0x1Q0E7QXBMakVBOzs7QW9McUVBO0F0THJFQTs7QXNMd0VBO0FwTHhFQTs7O0FvTDRFQTtBdExsRUE7QUFnQkE7O0FzTHNEQTtBdExoRkE7O0FzTG1GQTtBcExuRkE7OztBb0x1RkE7QXRMN0VBO0FBZ0JBOztBc0xpRUE7QW5KM0ZBOztBbUo4RkE7QTlGOUZBOztBOEZpR0E7QXRMakdBOztBc0xvR0E7QXBMcEdBOzs7QW9Md0dBO0F0TDlGQTtBQWdCQTs7QXNMa0ZBO0F0TDVHQTs7QXNMK0dBO0FwTC9HQTs7O0FvTG1IQTtBdEx6R0E7QUFnQkE7O0FzTDZGQTtBeEtwSEE7QUFDQTtBQUVBO0FBSEE7QUNnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FEdkNBO0FDMkNBO0FBQ0E7QUQ1Q0E7QUNnREE7QURoREE7QUNzREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FmaEVBOztBc0wrSkE7QXBML0pBOzs7QW9MbUtBO0F0THpKQTtBQWdCQTs7QXNMNklBO0F0THZLQTs7QXNMMEtBO0FwTDFLQTs7O0FvTDhLQTtBdExwS0E7QUFnQkE7O0FzTHdKQTtBcksvS0E7QUNjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFZQTtBQVpBO0FBZ0JBO0FBQ0E7QUVwREE7Ozs7Ozs7O0FrS3dOQTtBakt4TkE7QUFTQTtBbUsyQ0E7OztBRjBLQTtBRS9KQTtBQUdBO0FBQ0E7QTlGcERBO0E4RnVNQTs7O0FGZ0JBO0FFOERBOztBRjNEQTtBRTFLQTtBOUYzQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFHQTtBQVBBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBQUhBO0FBUkE7QUFTQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FsRmdlQTtBZ0w5ZUE7QTlGa0JBO0FBR0E7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQURBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFDQTtBQUNBO0FsRnVkQTtBa0ZsZEE7QUFDQTtBOEZyQkE7QTlGa0ZBO0FBQ0E7QUE4QkE7QUFNQTs7O0E0RmdIQTtBNUZwRUE7QUE5RUE7QThGckZBO0E5RnVGQTtBOEZ2RkE7QTlGMkZBO0FBRUE7QThGN0ZBO0E5RmdHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0E4RjNHQTtBOUY2R0E7QWxGeVhBO0FnTHRlQTtBOUZvSEE7QWxGa1hBO0FnTHRlQTtBOUYrSEE7Ozs7QUFBQTtBOEYvSEE7QTlGK0hBOzs7O0FBQUE7QThGL0hBO0E5RitIQTs7OztBQUFBO0E4Ri9IQTtBOUYrSEE7Ozs7QUFBQTtBOEYvSEE7QTlGK0hBOzs7O0FBQUE7QThGL0hBO0E5RitIQTs7OztBQUFBO0E4Ri9IQTtBOUYrSEE7Ozs7QUFBQTtBQUNBO0FsRnNXQTtBZ0x0ZUE7QTlGMElBO0FBMEJBO0E4RnBLQTtBOUZ1S0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBOEYvS0E7QTlGaUxBO0E4RmpMQTtBOUY4QkE7QThGOUJBO0FySmxFQTtBQUNBO0FBQ0E7QXVEb0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBOEY3Q0E7QTlGOENBO0FsRndiQTtBZ0x0ZUE7QWhHbEVBO0FBQ0E7QWdHaUVBO0FoRzlEQTtBQUNBO0FBQ0E7QUFDQTtBZ0cyREE7QWhHdkRBO0FBQ0E7QUFDQTtBZ0dxREE7QXJKbEVBO0FBQ0E7QUFDQTtBdUR5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOEY3REE7QTlGZ0VBO0E4RmhFQTtBOUZxRUE7QWxGaWFBO0FnTC9kQTtBOUZvTEE7QUFDQTtBQUNBO0E4RnRMQTtBOUZ5TEE7QUFDQTtBOEYxTEE7QTlGNkxBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QThGcE1BO0E5RnNNQTtBbEZ5UkE7QWdML2RBO0E5RnVCQTtBOEZ2QkE7QXJKekVBO0FBQ0E7QUFDQTtBdURvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0E4RnRDQTtBOUZ1Q0E7QWxGd2JBO0FnTC9kQTtBaEd6RUE7QUFDQTtBZ0d3RUE7QWhHckVBO0FBQ0E7QUFDQTtBQUNBO0FnR2tFQTtBaEc5REE7QUFDQTtBQUNBO0FoRjJoQkE7QWdML2RBO0FySnpFQTtBQUNBO0FBQ0E7QXVEeUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QThGdERBO0E5RnlEQTtBOEZ6REE7QTlGOERBO0FsRmlhQTtBZ0wvZEE7O0FBV0E7QUFNQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFSQTtBQWFBO0FoTGtjQTtBZ0w3YkE7QUFDQTtBQUdBO0FBQ0E7QWhMd2JBO0FnTGhiQTtBQUVBO0FBRkE7QUFNQTtBQU5BOztBQVdBO0FBS0E7QUFDQTtBQUNBO0FBRkE7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUdBO0FBQ0E7QUFLQTtBQUNBO0FBT0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBbUNBO0FBbENBO0FqS3hKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUt3SUE7QWhLbk9BO0FnS21PQTtBaEs1TkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBZ0txTkE7QWhLM01BO0FBQ0E7QUFDQTtBQUlBO0FnS3FNQTtBaEsvS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnSzBLQTtBaEtsS0E7QWdLa0tBO0FqS2pFQTtBQUNBO0FBQ0E7QWlLK0RBO0FqS3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpSytDQTtBaks1Q0E7QUFDQTtBaUsyQ0E7QWpLVUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpS2xCQTtBaktxQkE7QUFDQTtBaUt0QkE7QWpLdUVBO0FBQ0E7QWlLbkVBO0FqSzdKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUs2SUE7QWhLeE9BO0FnS3dPQTtBaEtqT0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBZ0swTkE7QWhLaE5BO0FBQ0E7QUFDQTtBQUlBO0FnSzBNQTtBaEtwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnSytLQTtBaEt2S0E7QWdLdUtBO0FqS3RFQTtBQUNBO0FBQ0E7QWlLb0VBO0FqSzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpS29EQTtBaktqREE7QUFDQTtBaUtnREE7QWpLS0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpS2JBO0FqS2dCQTtBQUNBO0FpS2pCQTtBaktrRUE7QUFDQTtBaUs3REE7QWpLdUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBaUt6RkE7QWpLa0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBaUtsRkE7QWpLMElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FpSzlKQTtBaktxSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QWZpSUE7QWdMNVRBO0FBc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFTQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBR0E7QUFDQTtBQVVBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEMFRBO0FDMVRBO0FEaVVBO0FDalVBO0FEK1VBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUZzV0E7QUV0V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUY0V0E7QUU1V0E7QUFDQTtBbExtaUJBO0FnTGhMQTtBOUYzSEE7QUFDQTtBQUNBO0E4RnlIQTtBOUZ0SEE7QUFDQTtBOEZxSEE7QTlGbEhBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QThGMkdBO0E5RnpHQTtBQUNBO0FsRndSQTtBZ0xoTEE7QTlGeFJBO0E4RndSQTtBckp4WEE7QUFDQTtBQUNBO0F1RG9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QThGeVFBO0E5RnhRQTtBbEZ3YkE7QWdMaExBO0FoR3hYQTtBQUNBO0FnR3VYQTtBaEdwWEE7QUFDQTtBQUNBO0FBQ0E7QWdHaVhBO0FoRzdXQTtBQUNBO0FBQ0E7QUFDQTtBaEYwaEJBO0FnTGhMQTtBckp4WEE7QUFDQTtBQUNBO0F1RHlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E4RnlQQTtBOUZ0UEE7QThGc1BBO0E5RmpQQTtBQUNBO0FsRmdhQTtBZ0xoTEE7QUFTQTtBQUNBO0FoTHNLQTtBZ0xoTEE7QUFTQTtBQUNBO0FoTHNLQTtBZ0xoTEE7QUFTQTtBQUNBO0FoTHNLQTtBZ0xoTEE7QUFTQTtBQUNBO0FBS0E7QUFmQTtBQWlCQTtBQUNBO0FoTDhKQTtBZ0xoTEE7QUFzQkE7QUF0QkE7QUE0QkE7QUE1QkE7QUFnQ0E7QUFoQ0E7QUFvQ0E7QUFwQ0E7QUF5Q0E7QUFDQTtBQTFDQTtBQThDQTtBaExrSUE7QWdMM0hBO0FBR0E7QUFIQTtBQU9BO0FoTG9IQTtBZ0w1R0E7QUFFQTtBQUNBO0FBSEE7QUFPQTtBQU1BO0FBRUE7QUFGQTtBQU9BO0FBQUE7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUlBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFFQTtBQVhBO0FBZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QWhMcUJBO0FnTHZEQTtBQXNDQTtBaExpQkE7QWdMdkRBO0FBMENBO0FoTGFBO0FnTHZEQTtBQThDQTtBQTlDQTtBQWtEQTtBQWxEQTtBQXVEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FoTE5BO0FnTHZEQTtBQWdFQTtBaExUQTtBZ0x2REE7QUFvRUE7QWhMYkE7QWdMdkRBO0FBd0VBO0FBQ0E7QUFRQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBTEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2QkE7QUEwQkE7QUExQkE7QUE4QkE7QUFDQTtBQS9CQTtBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUVBO0FBRkE7QUFLQTtBQUxBO0FBUUE7QUFDQTtBQVRBO0FBZUE7QUFmQTtBQXFCQTtBQXJCQTtBQTJCQTtBQTNCQTtBQThCQTtBQTlCQTtBQW9DQTtBQXBDQTtBQTJDQTtBQTNDQTtBQWlEQTtBQUNBO0FBTUE7QUFHQTtBQUNBO0FBSkE7O0FBV0E7QUFDQTtBQUNBO0FBYkE7O0FBZ0JBOztBeEw3ckJBOztBMkxFQTtBekxGQTs7O0F5TE1BO0EzTElBO0FBZ0JBOztBMkxoQkE7QTNMVkE7O0EyTGFBO0F6TGJBOzs7QXlMaUJBO0EzTFBBO0FBZ0JBOztBMkxMQTtBM0xyQkE7O0EyTHdCQTtBekx4QkE7OztBeUw0QkE7QTNMbEJBO0FBZ0JBOztBMkxNQTtBekxoQ0E7OztBeUxvQ0E7QTNMcENBOztBMkx1Q0E7QXpMdkNBOzs7QXlMMkNBO0EzTGpDQTtBQWdCQTs7QTJMcUJBO0EzTC9DQTs7QTJMa0RBO0F6TGxEQTs7O0F5THNEQTtBM0w1Q0E7QUFnQkE7O0EyTGdDQTtBM0wxREE7O0EyTDZEQTtBekw3REE7OztBeUxpRUE7QTNMdkRBO0FBZ0JBOztBMkwyQ0E7QTNMckVBOztBMkx3RUE7QXpMeEVBOzs7QXlMNEVBO0EzTGxFQTtBQWdCQTs7QTJMc0RBO0F4SmhGQTs7QXdKbUZBO0FuR25GQTs7QW1Hc0ZBO0FDN0VBOzs7O0FEa0ZBO0FDbkVBO0FySmxCQTtBbURtSkE7QUFDQTtBQThCQTtBQU1BOzs7QWlHMUZBO0FqR2tIQTs7Ozs7O0FBQUE7QUFvQkE7QWxGbVVBO0FvTHJoQkE7QXJKUkE7QUFLQTtBQUNBO0FtRHNJQTtBa0dwSUE7QWxHc0lBO0FrR3RJQTtBbEcwSUE7QUFFQTtBa0c1SUE7QWxHK0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QWtHMUpBO0FsRzRKQTtBbEZ5WEE7QW9McmhCQTtBbEdtS0E7QWxGa1hBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QWxGNFVBO0FvTHJoQkE7QWxHeU1BOzs7O0FBQUE7QUFVQTtBa0duTkE7QWxHc05BO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QWtHOU5BO0FsR2dPQTtBa0doT0E7QWxHNkVBO0FrRzdFQTtBekpuQkE7QUFDQTtBQUNBO0F1RG9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QWtHNUZBO0FsRzZGQTtBbEZ3YkE7QW9McmhCQTtBcEduQkE7QUFDQTtBb0drQkE7QXBHZkE7QUFDQTtBQUNBO0FBQ0E7QW9HWUE7QXBHUkE7QUFDQTtBQUNBO0FvR01BO0F6Sm5CQTtBQUNBO0FBQ0E7QXVEeUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWtHNUdBO0FsRytHQTtBa0cvR0E7QWxHb0hBO0FrR3pHQTtBQUNBO0FBQ0E7O0E1THJDQTs7QTZMRUE7QTNMRkE7OztBMkxNQTtBN0xJQTtBQWdCQTs7QTZMaEJBO0E3TFZBOztBNkxhQTtBM0xiQTs7O0EyTGlCQTtBN0xQQTtBQWdCQTs7QTZMTEE7QTdMckJBOztBNkx3QkE7QTNMeEJBOzs7QTJMNEJBO0E3TGxCQTtBQWdCQTs7QTZMTUE7QTdMaENBOztBNkxtQ0E7QTNMbkNBOzs7QTJMdUNBO0E3TDdCQTtBQWdCQTs7QTZMaUJBO0E3TDNDQTs7QTZMOENBO0EzTDlDQTs7O0EyTGtEQTtBN0x4Q0E7QUFnQkE7O0E2TDRCQTtBQ2xEQTs7O0FEc0RBO0FDakRBOztBRG9EQTtBQy9DQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0F2SlZBO0EvQnVpQkE7QXNML2hCQTtBdkpFQTtBQUtBO0FBQ0E7QXVKUkE7QUFNQTtBdEx5aEJBO0FzTHJoQkE7QUFHQTtBQUFBO0FBSEE7QUFNQTtBQU5BO0FBVUE7QUFDQTtBdEwwZ0JBO0FzTHBnQkE7QUFFQTtBQUFBO0F0TGtnQkE7QXNMN2ZBO0FBQ0E7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTs7QTlMekRBOztBK0xFQTtBN0xGQTs7O0E2TE1BO0EvTElBO0FBZ0JBOztBK0xoQkE7QS9MVkE7O0ErTGFBO0E3TGJBOzs7QTZMaUJBO0EvTFBBO0FBZ0JBOztBK0xMQTtBL0xyQkE7O0ErTHdCQTtBN0x4QkE7OztBNkw0QkE7QS9MbEJBO0FBZ0JBOztBK0xNQTtBL0xoQ0E7O0ErTG1DQTtBN0xuQ0E7OztBNkx1Q0E7QS9MN0JBO0FBZ0JBOztBK0xpQkE7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6SkxBO0EvQnVpQkE7QXdMdmlCQTtBekpVQTtBQUtBO0FBQ0E7O0F2Q3RCQTs7QWlNRUE7QS9MRkE7OztBK0xNQTtBak1JQTtBQWdCQTs7QWlNaEJBO0FqTVZBOztBaU1hQTtBL0xiQTs7O0ErTGlCQTtBak1QQTtBQWdCQTs7QWlNTEE7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFMQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWJBO0FBaUJBO0FBQ0E7QUFsQkE7QUFzQkE7QUF0QkE7OztBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJDQTs7QUEwQ0E7QUExQ0E7QUE4Q0E7QUFDQTtBQS9DQTtBQW1EQTtBQW5EQTtBQXNEQTtBQXREQTtBQTJEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFOQTtBQVVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUpBO0FBUUE7QUFSQTtBQVdBO0FBQ0E7QUFaQTtBQWdCQTtBQWhCQTtBQW9CQTtBQXBCQTtBQXlCQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTs7QWxNdFdBOztBbU1FQTtBak1GQTs7O0FpTU1BO0FuTUlBO0FBZ0JBOztBbU1oQkE7QW5NVkE7O0FtTWFBO0FqTWJBOzs7QWlNaUJBO0FuTVBBO0FBZ0JBOztBbU1MQTtBL0tyQkE7Ozs7Ozs7O0ErSzhCQTtBOUs5QkE7QUFTQTtBckJUQTs7QW1NbUNBO0FqTW5DQTs7O0FpTXVDQTtBbk03QkE7QUFnQkE7O0FtTWlCQTtBL0szQ0E7Ozs7Ozs7O0ErS29EQTtBOUtwREE7QUFTQTtBK0JUQTtBQW1EQTtBQ1dBO0ErSW5EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0E1TDBoQkE7QTRMNWhCQTtBQUtBO0FBQ0E7QTVMc2hCQTtBNExsaUJBO0FBaUJBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBN0tzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QTZLdEVBO0E3SzZJQTtBQUNBO0FBQ0E7QTZLL0lBO0E3S3FKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0E2SzFLQTtBN0s2S0E7QUFDQTtBNks5S0E7QTdLd05BO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBNkszT0E7QTdLOE9BO0FBQ0E7QTZLL09BO0E3S3FSQTtBQUNBO0E2S2hSQTtBQUNBO0E1TGtnQkE7QTRMbmdCQTtBQUlBO0FBQ0E7QUFJQTtBN0tpUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNktqUkE7QS9Jb0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QStJbkpBO0FBQ0E7QUFDQTs7QXBNakVBOztBcU1FQTtBbk1GQTs7O0FtTU1BO0FyTUlBO0FBZ0JBOztBcU1oQkE7QXJNVkE7O0FxTWFBO0FuTWJBOzs7QW1NaUJBO0FyTVBBO0FBZ0JBOztBcU1MQTtBakxyQkE7Ozs7Ozs7O0FpTDhCQTtBaEw5QkE7QUFTQTtBckJUQTs7QXFNbUNBO0FuTW5DQTs7O0FtTXVDQTtBck03QkE7QUFnQkE7O0FxTWlCQTtBck0zQ0E7O0FxTThDQTtBbk05Q0E7OztBbU1rREE7QXJNeENBO0FBZ0JBOztBcU00QkE7QW5NdERBOzs7QW1NMERBO0FyTTFEQTs7QXFNNkRBO0FuTTdEQTs7O0FtTWlFQTtBck12REE7QUFnQkE7O0FxTTJDQTtBakxyRUE7Ozs7Ozs7O0FpTDhFQTtBaEw5RUE7QUFTQTtBK0JUQTtBQW1EQTtBQ1dBO0FyRDlEQTs7QXFNc0ZBO0FuTXRGQTs7O0FtTTBGQTtBck1oRkE7QUFnQkE7O0FxTW9FQTtBM0s5RkE7QUFZQTtBMUJaQTs7QXFNbUdBO0FuTW5HQTs7O0FtTXVHQTtBck03RkE7QUFnQkE7O0FxTWlGQTtBck0zR0E7O0FxTThHQTtBbk05R0E7OztBbU1rSEE7QXJNeEdBO0FBZ0JBOztBcU00RkE7QXJNdEhBOztBcU15SEE7QW5NekhBOzs7QW1NNkhBO0FyTW5IQTtBQWdCQTs7QXFNdUdBO0FyTWpJQTs7QXFNb0lBO0FuTXBJQTs7O0FtTXdJQTtBck05SEE7QUFnQkE7O0FxTWtIQTtBbEs1SUE7O0FrSytJQTtBQ3hGQTtBQUlBO0E5TGtmQTtBK0x0Z0JBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFRQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0EvTG9mQTtBK0xyZkE7QUFNQTtBQWlCQTtBL0w4ZEE7QStMcmZBO0FBTUE7QUFxQkE7QS9MMGRBO0ErTHJmQTtBQU1BO0EvTCtlQTtBK0xyZkE7QUFNQTtBL0wrZUE7QStMcmZBO0FBTUE7QUE0QkE7QUFDQTtBL0xrZEE7QStMbmRBO0FBTUE7QUFHQTtBL0wwY0E7QStMbmRBO0FBTUE7QUFPQTtBL0xzY0E7QStMbmRBO0FBTUE7QS9MNmNBO0ErTG5kQTtBQU1BO0EvTDZjQTtBK0xuZEE7QUFNQTtBRHpDQTtBQ3dEQTtBRGxEQTtBQUNBO0FBQ0E7QTlMOGVBO0E4TGhmQTtBQUtBO0E5TDJlQTtBOEx2ZUE7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0E5TDhkQTtBOExqZUE7QUFNQTtBQUNBO0E5TDBkQTtBOExsZEE7QUFFQTtBQUtBO0FBR0E7QUFhQTtBQUVBO0FBN0RBO0FBa0VBO0FBRUE7QUFwRUE7QUEyRUE7QUEzRUE7OztBQWlGQTtBQWpGQTtBQXFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBOUxtWkE7QThMelpBO0FBYUE7QUFFQTtBQVFBO0FBQ0E7QUFJQTtBL0oxS0E7QS9CdWlCQTtBOEw3WEE7QS9KaEtBO0FBS0E7QUFDQTtBK0o4SkE7QUFDQTtBQUdBO0EvSmxMQTtBK0pxTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUw4V0E7QThMclhBO0EvSnhLQTtBQUtBO0FBQ0E7QStKMktBO0FBQ0E7QTlMMldBO0E4TDVXQTtBQUlBO0E5THdXQTtBOEw1V0E7QUFRQTtBQVJBO0FBWUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBOUx3VkE7QThMM1ZBO0FBTUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlMNlVBO0E4TGpWQTtBQWdCQTtBQWhCQTtBQXNCQTtBQU9BO0FBN0JBO0FBbUNBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNOQTs7QUFzT0E7QUFDQTtBQXZPQTtBQTJPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL09BO0FBbVBBO0FBblBBO0FBdVBBO0FBdlBBO0FqSmdMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaUpuTUE7QWpKd01BO0FBQ0E7QWlKek1BO0FqSitNQTtBQUNBO0FBQ0E7QWlKak5BO0FqSnNOQTtBaUp0TkE7QWpKME5BO0FBQ0E7QUFDQTtBaUo1TkE7QUErUEE7QUFDQTtBQUNBO0FBalFBO0FBb1FBO0FBQ0E7QUFDQTtBQXRRQTtBQTBRQTtBQTFRQTtBQStRQTtBQS9RQTs7QS9LbUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0ErS3NPQTtBQXpSQTs7QS9LMEhBO0FBQ0E7QUFDQTtBK0s1SEE7OztBL0trSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBK0s1SUE7OztBL0srSUE7QUFDQTtBK0toSkE7Ozs7QS9LcU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBK0s3TUE7Ozs7QS9LZ05BO0FBQ0E7QStLak5BOztBL0trUUE7QUFDQTtBK0t3QkE7O0FBQ0E7QUE1UkE7O0EvSzZRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0tuUkE7QUF3U0E7QUF4U0E7O0FBOFNBO0FBQ0E7QUFDQTtBQWhUQTtBQW9UQTtBQUNBO0FBQ0E7QUF0VEE7QUF5VEE7QUF6VEE7QUE2VEE7QUE3VEE7QUFrVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUxnTEE7QThMdGZBO0FBNlVBO0FBN1VBOzs7QUF3VkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN1ZBOzs7QUFvV0E7QUFDQTtBQXJXQTtBQTBXQTtBQTFXQTtBQThXQTtBQUNBO0FBQ0E7QUFDQTtBQWpYQTtBQXFYQTtBQUNBO0FBQ0E7QUF2WEE7QUEyWEE7QUFDQTtBQUNBO0FBQ0E7QTlMd0hBO0E4THRIQTtBQUVBO0FBbFlBO0FBdVlBO0FBdllBO0FBNFlBO0FBNVlBO0FBK1lBO0E5THVHQTtBOEx0ZkE7QUFzWkE7QUFDQTtBQXZaQTtBQTRaQTtBOUwwRkE7QThMdGZBO0FBa2FBO0FBQ0E7QUFDQTtBQUNBO0FBcmFBO0FBeWFBO0E5TDZFQTtBOEx0ZkE7QUErYUE7QUEvYUE7QUFtYkE7QUFuYkE7O0FBNGJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpjQTs7QUFzY0E7QUF0Y0E7OztBQThjQTtBQTljQTs7Ozs7O0FBc2RBO0FBQ0E7QUF2ZEE7OztBQTJkQTtBQTNkQTs7O0FBK2RBO0FBL2RBOzs7QUFtZUE7QUFuZUE7QUFrZkE7QTlMSUE7QThMdGZBO0FBcWZBO0FBQ0E7QUFDQTtBQXZmQTtBQTBmQTtBQTFmQTtBQWtnQkE7QUFsZ0JBO0FBc2dCQTtBQXRnQkE7QUEwZ0JBO0FBMWdCQTtBQStnQkE7QUFDQTtBQWhoQkE7QUFvaEJBO0FBQ0E7QUFDQTtBOUxoQ0E7QThMdGZBO0FBeWhCQTtBOUxuQ0E7QThMdGZBO0FBNmhCQTtBQTdoQkE7QUFraUJBO0E5TDVDQTtBOEx0ZkE7QUF1aUJBO0FBQ0E7QUFDQTtBQXppQkE7QUE0aUJBO0FBNWlCQTtBQWlqQkE7QTlMM0RBO0E4THRmQTtBQW9qQkE7QTlMOURBO0E4THRmQTtBQXdqQkE7QUF4akJBO0FBNGpCQTtBOUx0RUE7QThMdGZBO0FBa2tCQTtBOUw1RUE7QThMdGZBO0FBc2tCQTtBQXRrQkE7QUE0a0JBO0E5THRGQTtBOEx0ZkE7QUFpbEJBO0E5TDNGQTtBOEx0ZkE7QUFxbEJBO0FBQ0E7QUFDQTtBQUNBO0E5TGxHQTtBOEx0ZkE7QUE4bEJBO0FBQ0E7QTlMekdBO0E4THRmQTtBQW9tQkE7QUFwbUJBO0FBMm1CQTtBQTNtQkE7O0FBdW5CQTtBQUVBOztBQUNBO0FBMW5CQTs7QUFnb0JBO0FBQ0E7QTlMM0lBO0E4THRmQTs7QUFvb0JBO0FBcG9CQTs7QUEwb0JBO0FBQ0E7QUFDQTtBQUNBO0FBN29CQTtBQWlwQkE7QUFDQTtBQUNBO0FBbnBCQTtBQXVwQkE7QTlMaktBO0E4THRmQTtBQThwQkE7QUE5cEJBOzs7O0FBcXFCQTtBQUNBO0FBQ0E7QUFDQTtBQXhxQkE7QUE0cUJBO0FBQ0E7QUFDQTtBQTlxQkE7QUFpckJBO0FBanJCQTtBQXNyQkE7QUF0ckJBO0FBMHJCQTtBQTFyQkE7QW5LbERBO0FBQ0E7QUFDQTtBbUtnREE7QUFrc0JBO0FBbHNCQTtBQXFzQkE7QUFPQTs7O0FBR0E7QUFDQTtBQUNBO0FBSUE7OztBL0tsckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0ErS3lxQkE7QUFDQTtBQUNBO0FBVEE7OztBL0szbEJBO0FBQ0E7QUFDQTtBK0t5bEJBOzs7OztBL0tubEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStLeWtCQTs7Ozs7QS9LdGtCQTtBQUNBO0ErS3FrQkE7Ozs7Ozs7QS9LaGhCQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStLd2dCQTs7Ozs7OztBL0tyZ0JBO0FBQ0E7QStLb2dCQTs7O0EvS25kQTtBQUNBO0ErS2tkQTs7O0FBWUE7QUFaQTs7O0EvS3hjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0syZEE7OztBL0szc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0ErS2tzQkE7QUFDQTtBQUNBO0FBVEE7OztBL0twbkJBO0FBQ0E7QUFDQTtBK0trbkJBOzs7OztBL0s1bUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QStLdWxCQTs7Ozs7QS9LcGxCQTtBQUNBO0ErS21sQkE7Ozs7Ozs7QS9LemlCQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QStLc2hCQTs7Ozs7OztBL0tuaEJBO0FBQ0E7QStLa2hCQTs7O0EvSzVlQTtBQUNBO0ErSzJlQTs7O0FBWUE7QUFaQTs7O0EvS2plQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0tuUkE7QUEwd0JBO0FBMXdCQTtBQSt3QkE7QUFDQTtBQWh4QkE7QUFteEJBO0FBbnhCQTtBQXd4QkE7QUFDQTtBQXp4QkE7QWxNbkRBO0F3Qm1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTBLMkJBO0FsTW5EQTtBd0JtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EwSzh6QkE7QUFueUJBO0FBdXlCQTtBQXZ5QkE7OztBQTR5QkE7QUE1eUJBO0FBaXpCQTtBQWp6QkE7QUFxekJBO0FBQ0E7QUFDQTtBQUNBO0FBeHpCQTtBQTR6QkE7QUE1ekJBO0FBK3pCQTtBQS96QkE7QUFrMEJBO0FBbDBCQTtBQXcwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTUwQkE7QUFnMUJBO0FBaDFCQTs7QUFxMUJBO0FBcjFCQTs7Ozs7OztBQWkyQkE7QUFDQTtBOUw1V0E7QThMdGZBOzs7Ozs7O0FBcTJCQTtBQXIyQkE7Ozs7Ozs7QUF5MkJBO0FBejJCQTs7Ozs7OztBQTgyQkE7QUFDQTtBQS8yQkE7Ozs7Ozs7QUFxM0JBO0FBcjNCQTs7Ozs7OztBQXkzQkE7QUF6M0JBOzs7Ozs7O0FBODNCQTtBQTkzQkE7Ozs7Ozs7QUFrNEJBO0FBbDRCQTs7Ozs7OztBQXM0QkE7QUF0NEJBOzs7Ozs7O0FBMDRCQTtBQTE0QkE7QUFzNUJBO0FBdDVCQTtBQXE2QkE7QTlML2FBO0E4THRmQTtBQWk3QkE7QUFqN0JBO0FBdTdCQTtBOUxqY0E7QThMdGZBOztBQTg3QkE7QTlMeGNBO0E4THRmQTs7QUFvOEJBO0FBQ0E7QTlML2NBO0E4THRmQTtBQTI4QkE7QUEzOEJBO0FBODhCQTtBQUNBO0E5THpkQTtBOEx0ZkE7QUFxOUJBO0FBQ0E7QUF0OUJBO0FBNjlCQTtBQTc5QkE7QUFxK0JBO0FBSUE7QS9LdDhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBK0tzN0JBO0EvSy8yQkE7QUFDQTtBQUNBO0ErSzYyQkE7QS9LdjJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0ErSzYxQkE7QS9LMTFCQTtBQUNBO0ErS3kxQkE7QS9LcHlCQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QStLNHhCQTtBL0t6eEJBO0FBQ0E7QStLd3hCQTtBL0t2dUJBO0FBQ0E7QStLNnVCQTtBL0tudUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ErS291QkE7QS9LM3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0ErS2twQkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBS0E7QUFDQTtBOUx6akJBO0E4TG1qQkE7QUFTQTtBQUNBO0FBQ0E7QTlMOWpCQTtBOExpa0JBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QW5Lcm9DQTtBQUNBO0FBQ0E7O0FuQ1BBOztBd01FQTtBdE1GQTs7O0FzTU1BO0F4TUlBO0FBZ0JBOztBd01oQkE7QXBMVkE7Ozs7Ozs7O0FvTG1CQTtBbkxuQkE7QUFTQTtBb0xIQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QWxMa0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FrTGxGQTtBakxUQTtBaUxTQTtBakxGQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FpTExBO0FqTGVBO0FBQ0E7QUFDQTtBQUlBO0FpTHJCQTtBakwyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpTGhEQTtBakx3REE7QWlMeERBO0FsTHlKQTtBQUNBO0FBQ0E7QWtMM0pBO0FsTGlLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTDNLQTtBbEw4S0E7QUFDQTtBa0wvS0E7QWxMb09BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBa0w1T0E7QWxMK09BO0FBQ0E7QWtMaFBBO0FsTGlTQTtBQUNBO0FBQ0E7QWtMNVJBO0FsTHFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBY0E7QUFDQTtBa0x0VEE7QWxMNldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QWtML1hBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFVQTs7QXpNeERBOztBME1FQTtBeE1GQTs7O0F3TU1BO0ExTUlBO0FBZ0JBOztBME1oQkE7QTFNVkE7O0EwTWFBO0F4TWJBOzs7QXdNaUJBO0ExTVBBO0FBZ0JBOztBME1MQTtBQ0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QUFFQTtBQUNBO0FBQ0E7QUFNQTtBbk15ZkE7QW1NdmhCQTtBQVlBO0FBQ0E7QUFiQTtBQWlCQTtBQW9CQTtBQUNBO0FBUUE7QUFDQTtBQVFBO0FBQ0E7QUFRQTtBQUNBO0FuTXNkQTtBbU12aEJBO0FBMEVBO0FBRUE7O0EzTWxHQTs7QTRNRUE7QTFNRkE7OztBME1NQTtBNU1JQTtBQWdCQTs7QTRNaEJBO0FDR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQWtCQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQVBBO0FBV0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7O0E3TXZHQTs7QThNRUE7QTVNRkE7OztBNE1NQTtBOU1JQTtBQWdCQTs7QThNaEJBO0ExTFZBOzs7Ozs7OztBMExtQkE7QXpMbkJBO0FBU0E7QXJCVEE7O0E4TXdCQTtBNU14QkE7OztBNE00QkE7QTlNbEJBO0FBZ0JBOztBOE1NQTtBQ0RBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2TXVnQkE7QXVNOWdCQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdk1xZUE7QXVNMWVBO0FBT0E7QUFDQTtBQUlBO0F4TFdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0F3THJCQTtBQU5BO0F2TGhFQTtBdUxnRUE7QXZMekRBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QXVMa0RBO0F2THhDQTtBQUNBO0FBQ0E7QUFJQTtBdUxrQ0E7QXZMWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F1TE9BO0F2TENBO0F1TERBO0F4TGtHQTtBQUNBO0FBQ0E7QXdMcEdBO0F4TDBHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F3THBIQTtBeEx1SEE7QUFDQTtBd0x4SEE7QXhMNktBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBd0xyTEE7QXhMd0xBO0FBQ0E7QXdMekxBO0F4TDBPQTtBQUNBO0FmbVBBO0F1TTlkQTtBQVNBO0FBSUE7QXhMd09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFjQTtBd0x4UEE7QXhMZ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0F3TGxVQTtBQUNBO0FBQ0E7QXZNaWNBO0F1TW5jQTtBQUtBO0FBQ0E7QXZNNmJBO0F1TW5jQTtBQVVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2TTZhQTtBdU1yYkE7QUFXQTtBQUNBO0F2TXlhQTtBdU1yYkE7QUFnQkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdk0wV0E7QXVNL1dBO0FBUUE7QXZNdVdBO0F1TS9XQTtBQVlBO0FBWkE7QUFnQkE7O0EvTTlNQTs7QWdORUE7QTlNRkE7OztBOE1NQTtBaE5JQTtBQWdCQTs7QWdOaEJBO0FoTlZBOztBZ05hQTtBOU1iQTs7O0E4TWlCQTtBaE5QQTtBQWdCQTs7QWdOTEE7QTVMckJBOzs7Ozs7OztBNEw4QkE7QTNMOUJBO0FBU0E7QStCVEE7QUFtREE7QUNXQTtBakM5REE7Ozs7Ozs7O0E0TDRDQTtBM0w1Q0E7QUFTQTtBckJUQTs7QWdOaURBO0E5TWpEQTs7O0E4TXFEQTtBaE4zQ0E7QUFnQkE7O0FnTitCQTtBck16REE7Ozs7Ozs7OztBcU1tRUE7QWhObkVBOztBZ05zRUE7QTlNdEVBOzs7QThNMEVBO0FoTmhFQTtBQWdCQTs7QWdOb0RBO0FoSzlFQTtBQU1BO0FpSzhCQTtBQUdBO0F6TXNnQkE7QXlNemdCQTtBQU1BO0FBR0E7QUFDQTtBek0rZkE7QXlNaGdCQTtBQUlBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6TTRkQTtBeU1oZUE7QUFPQTtBQUNBO0FBUkE7QUFhQTtBQUNBO0FBQ0E7QUFmQTtBQWtCQTtBQUNBO0FBbkJBO0E1SjZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E0SmpEQTtBQTBCQTtBQTFCQTtBQStCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpNeWFBO0F5TTdhQTtBQVFBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F6TXNaQTtBeU0xWkE7QUFRQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QXpNeVlBO0F5TTVZQTtBQU1BO0FBSUE7QTFMakZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0EwTGlFQTtBMUxNQTtBQUNBO0FBQ0E7QTBMUkE7QTFMY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBMEx4QkE7QTFMMkJBO0FBQ0E7QTBMNUJBO0ExTGlGQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTBMekZBO0ExTDRGQTtBQUNBO0EwTDdGQTtBMUw4SUE7QUFDQTtBZm1QQTtBeU1sWUE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7O0F0TTFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBc01tTEE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBckxBO0FBeUxBO0FBQ0E7QUFJQTtBQUNBO0F6TTBVQTtBeU0zVUE7QUFLQTtBQUxBO0ExTHhJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBMkJsRUE7QStKbU5BO0FBQ0E7QUFDQTtBQTNCQTtBMUxqREE7QUFDQTtBQUNBO0EwTCtDQTtBMUx6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBMEwrQkE7QTFMNUJBO0FBQ0E7QTBMMkJBO0ExTDBCQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTBMbENBO0ExTHFDQTtBQUNBO0EwTHRDQTtBMUx1RkE7QUFDQTtBMEx4RkE7QS9KdExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZ0JBO0FBYUE7QStKbUpBO0EvSjVJQTtBK0o0SUE7QS9KbklBO0ErSm1JQTtBL0p4SEE7QUFDQTtBK0p1SEE7QS9KeEdBO0FBQ0E7QStKdUdBO0FBZ0NBO0FBaENBO0ExTGtHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMEx4R0E7QUE2Q0E7QUFDQTtBQTlDQTtBQWlEQTtBQWpEQTtBQXFEQTtBQXJEQTtBQTBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhFQTtBQW1FQTtBQW5FQTtBQXlFQTs7QWpOM1NBOztBa05FQTtBaE5GQTs7O0FnTk1BO0FsTklBO0FBZ0JBOztBa05oQkE7QWxOVkE7O0FrTmFBO0FoTmJBOzs7QWdOaUJBO0FsTlBBO0FBZ0JBOztBa05MQTtBL0tyQkE7O0ErS3dCQTtBQ01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBM011Z0JBO0EyTS9nQkE7QUFXQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcEJBO0FBd0JBO0FBQ0E7QTNNc2ZBO0EyTW5mQTtBQUVBO0FBQ0E7QTNNZ2ZBO0EyTW5mQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBaExsRUE7QUFDQTtBQUNBO0FnTGdFQTs7QUFLQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUxBOztBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzTTJjQTtBMk03ZEE7O0FBcUJBO0FBckJBOzs7O0FBMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE5QkE7QUFrQ0E7QUFDQTtBM00wYkE7QTJNN2RBO0FBc0NBO0FBQ0E7QUF2Q0E7QUEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9DQTtBQWtEQTtBQWxEQTtBQXVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFvRUE7QUFDQTtBQUNBO0FBQ0E7QUF2RUE7QUErRUE7QUFDQTtBQUNBO0EzTTRZQTtBMk03ZEE7QUFvRkE7QUFDQTs7QW5OcktBOztBb05FQTtBbE5GQTs7O0FrTk1BO0FwTklBO0FBZ0JBOztBb05oQkE7QXBOVkE7O0FvTmFBO0FsTmJBOzs7QWtOaUJBO0FwTlBBO0FBZ0JBOztBb05MQTtBQ2pCQTtBQUVBO0E3TXVpQkE7QTZNemlCQTtBQ0ZBO0FBQ0E7QUFDQTtBOU15aUJBO0E2TXJpQkE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0E3TThoQkE7QTZNcmlCQTtBQVlBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFwQkE7QUFxQkE7QTdNZ2hCQTtBNk01Z0JBO0FBRUE7QUFDQTtBN015Z0JBO0E2TTVnQkE7QUFNQTs7QUV2Q0E7QUNBQTs7O0FESUE7QXZOSkE7O0F1Tk9BO0FyTlBBOzs7QXFOV0E7QXZOREE7QUFnQkE7O0F1TlhBO0F2TmZBOztBdU5rQkE7QXJObEJBOzs7QXFOc0JBO0F2TlpBO0FBZ0JBOztBdU5BQTtBNU0xQkE7Ozs7Ozs7OztBNE1vQ0E7QXZOcENBOztBdU51Q0E7QXJOdkNBOzs7QXFOMkNBO0F2TmpDQTtBQWdCQTs7QXVOcUJBO0E3TC9DQTtBQVlBO0ExQlpBOztBdU5vREE7QXJOcERBOzs7QXFOd0RBO0F2TjlDQTtBQWdCQTs7QXVOa0NBO0E1TTVEQTs7Ozs7Ozs7O0E0TXNFQTtBdk50RUE7O0F1TnlFQTtBck56RUE7OztBcU42RUE7QXZObkVBO0FBZ0JBOztBdU51REE7QUVqRkE7QUFNQTtBRDBCQTtBQUVBO0FBQ0E7QWhOMGdCQTtBZ04zZ0JBO0FBSUE7QUFDQTtBaE5zZ0JBO0FnTmpnQkE7QUFDQTtBQVhBO0FBbUJBO0FBQ0E7QUFLQTtBQUVBO0FBQ0E7QUFDQTtBQUpBO0E3TS9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBNk11Q0E7QUFXQTtBQVhBO0FBY0E7QUFDQTtBQWZBO0FBbUJBO0FBQ0E7QUFwQkE7QUFzQkE7QUFHQTtBQUNBO0FBQ0E7QUEzQkE7QUFpQ0E7QUFqQ0E7QUFtQ0E7QUFuQ0E7QUFxQ0E7QUFyQ0E7QUEwQ0E7QUFDQTtBQUNBO0FBRUE7QWhOb2NBO0FnTmxmQTtBQWtEQTtBQWxEQTtBQXNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTVEQTtBQWlFQTtBaE5pYkE7QWdONWFBO0FBRUE7QUF4RUE7QUErRUE7QUEvRUE7QUFxRkE7QWhONlpBO0FnTmxmQTtBQXdGQTtBQXhGQTtBQTRGQTtBaE5zWkE7QWdObGZBO0FBaUdBO0FBakdBOzs7O0FBMkdBO0FBQ0E7QUFDQTtBaE5xWUE7QWdOaFlBO0FFdkVBO0FBQ0E7QUFDQTtBQUNBO0FGb0VBO0FFaEtBO0FBQ0E7QUFDQTtBRjhKQTtBRTNKQTtBRjJKQTtBRXZKQTtBRnVKQTtBRW5KQTtBQUNBO0FBQ0E7QUFDQTtBRmdKQTtBRTdJQTtBRjZJQTtBRXpJQTtBbE55Z0JBO0FnTmhZQTtBRW5JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxOOGZBO0FnTmhZQTtBRXZIQTtBbE51ZkE7QWdOaFlBO0E3TWpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FId2hCQTtBZ05oWUE7QUUzR0E7QUYyR0E7QUV4R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FGbUdBO0FFL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRjBGQTtBRXRGQTtBRnNGQTs7QUVqRkE7QUZpRkE7QUFnQkE7QUFoQkE7QUFxQkE7QUFDQTtBQVdBO0FBRUE7QUFGQTtBQU1BO0FBTkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTs7QUUzSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbE5tY0E7QWdONVVBOztBRXBOQTtBQUNBO0FBQ0E7QUZrTkE7O0FFL01BO0FGK01BOztBRTNNQTtBRjJNQTs7QUV2TUE7QUFDQTtBQUNBO0FBQ0E7QUZvTUE7O0FFak1BO0FGaU1BOztBRTdMQTtBbE55Z0JBO0FnTjVVQTs7QUV2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsTjhmQTtBZ041VUE7O0FFM0tBO0FsTnVmQTtBZ041VUE7O0E3TXJOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FId2hCQTtBZ041VUE7O0FFL0pBO0FGK0pBOztBRTVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUZ1SkE7O0FFbkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRjhJQTs7QUUxSUE7QUYwSUE7Ozs7QUVySUE7QUFDQTtBRitJQTtBQUVBO0FBQ0E7QUFEQTtBQUdBO0FBSEE7QUFNQTtBQU5BO0FBUUE7QUFDQTtBQVRBO0FBWUE7QUFaQTtBQWVBO0FBZkE7QUFtQkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFKQTtBQVFBO0FBUkE7QUFXQTtBQVhBO0FBYUE7QUFiQTtBQWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdEJBO0FBMEJBO0FBMUJBO0FBOEJBO0FBOUJBO0FBZ0NBO0FBaENBO0FBbUNBO0FoTm1RQTtBZ050U0E7QUFxQ0E7QUFyQ0E7QUF5Q0E7QWhONlBBO0FnTnRTQTtBQTJDQTtBQTNDQTtBQThDQTtBQTlDQTtBQWlEQTtBQWpEQTtBQXdEQTtBQXhEQTtBQTZEQTtBQUNBO0FBOURBO0FBZ0VBO0FBaEVBO0FBb0VBO0FBcEVBO0FBd0VBO0FBQ0E7QUF6RUE7QUE4RUE7QUE5RUE7QUFtRkE7QUFuRkE7QUFzRkE7QUF0RkE7QUEwRkE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUpBO0FBT0E7QUFDQTs7QXhONVdBOztBMk5FQTtBek5GQTs7O0F5Tk1BO0EzTklBO0FBZ0JBOztBMk5oQkE7QTNOVkE7O0EyTmFBO0F6TmJBOzs7QXlOaUJBO0EzTlBBO0FBZ0JBOztBMk5MQTtBM05yQkE7O0EyTndCQTtBek54QkE7OztBeU40QkE7QTNObEJBO0FBZ0JBOztBMk5NQTtBdk1oQ0E7Ozs7Ozs7O0F1TXlDQTtBdE16Q0E7QUFTQTtBdU04QkE7QUFHQTtBQUNBO0FBQ0E7QXBOaWdCQTtBb050Z0JBO0FBUUE7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FwTm9mQTtBb05yZkE7QUFJQTtBQUNBO0FBTEE7QUFRQTtBQVJBO0FBWUE7QXBOeWVBO0FvTm5lQTtBQUdBO0FBU0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBdERBO0FBMkRBO0FBQ0E7QUFDQTtBcE55Y0E7QW9OdGdCQTtBQWtFQTtBQWxFQTtBQXVFQTtBQUlBO0FyTXhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBcU1RQTtBck15QkE7QXFNekJBO0FyTStEQTtBQUNBO0FBQ0E7QXFNakVBO0FyTXVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FxTTVGQTtBck0rRkE7QUFDQTtBcU1oR0E7QXJNMElBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBcU03SkE7QXJNZ0tBO0FBQ0E7QXFNaktBO0FyTXVNQTtBQUNBO0FxTXhNQTtBck1pU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXlCQTtBQUNBO0FxTXhUQTtBQUNBO0FBSUE7QXJNaU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaUNBO0FBY0E7QUFDQTtBc00xWEE7QUFDQTtBQUNBO0FBQ0E7QTdOSEE7O0EyTjZKQTtBek43SkE7OztBeU5pS0E7QTNOdkpBO0FBZ0JBOztBMk4ySUE7QTNOcktBOztBMk53S0E7QXpOeEtBOzs7QXlONEtBO0EzTmxLQTtBQWdCQTs7QTJOc0pBO0EzTmhMQTs7QTJObUxBO0F6Tm5MQTs7O0F5TnVMQTtBM043S0E7QUFnQkE7O0EyTmlLQTtBRy9LQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QXROd2hCQTtBc05yaEJBO0FBRUE7QUFDQTtBOU4zQkE7O0EyTndNQTtBek54TUE7OztBeU40TUE7QTNObE1BO0FBZ0JBOztBMk5zTEE7QTNOaE5BOztBMk5tTkE7QXpObk5BOzs7QXlOdU5BO0EzTjdNQTtBQWdCQTs7QTJOaU1BO0EzTjNOQTs7QTJOOE5BO0F6TjlOQTs7O0F5TmtPQTtBM054TkE7QUFnQkE7O0EyTjRNQTtBM050T0E7O0EyTnlPQTtBek56T0E7OztBeU42T0E7QTNObk9BO0FBZ0JBOztBMk51TkE7QTNOalBBOztBMk5vUEE7QXpOcFBBOzs7QXlOd1BBO0EzTjlPQTtBQWdCQTs7QTJOa09BO0EzTjVQQTs7QTJOK1BBO0F6Ti9QQTs7O0F5Tm1RQTtBM056UEE7QUFnQkE7O0EyTjZPQTtBeEx2UUE7O0F3TDBRQTtBSTFRQTtBQVlBO0FDR0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7O0FBR0E7QUFFQTs7QUFDQTtBQUdBOztBQUNBO0FBS0E7QTdMckNBO0FBQ0E7QUFDQTtBOExHQTtBQUdBO0FEaUNBO0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBREFBO0FDR0E7QUFDQTtBREpBO0FDUUE7QUFDQTtBRExBO0FDOEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzQ0E7QUMrQ0E7QUFDQTtBRGhEQTtBQ3NEQTtBQUNBO0FBQ0E7QUFDQTtBRHREQTtBQ21FQTtBQUNBO0FBQ0E7QUQzR0E7OztBQThDQTtBQUNBO0FBQ0E7QUFLQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQVZBO0FBYUE7QUFDQTtBaE9sRkE7O0EyTjhWQTtBek45VkE7OztBeU5rV0E7QTNOeFZBO0FBZ0JBOztBMk40VUE7QTNOdFdBOztBMk55V0E7QXpOeldBOzs7QXlONldBO0EzTm5XQTtBQWdCQTs7QTJOdVZBO0EzTmpYQTs7QTJOb1hBO0F6TnBYQTs7O0F5TndYQTtBM045V0E7QUFnQkE7O0EyTmtXQTtBM041WEE7O0EyTitYQTtBek4vWEE7OztBeU5tWUE7QTNOelhBO0FBZ0JBOztBMk42V0E7QXZNdllBOzs7Ozs7OztBdU1nWkE7QXRNaFpBO0FBU0E7QStCVEE7QUFtREE7QUNXQTtBckQ5REE7O0EyTndaQTtBek54WkE7OztBeU40WkE7QTNObFpBO0FBZ0JBOztBMk5zWUE7QTNOaGFBOztBMk5tYUE7QXpObmFBOzs7QXlOdWFBO0EzTjdaQTtBQWdCQTs7QTJOaVpBO0EzTjNhQTs7QTJOOGFBO0F6TjlhQTs7O0F5TmtiQTtBM054YUE7QUFnQkE7O0EyTjRaQTtBeEx0YkE7O0F3THliQTtBSXpiQTtBQVlBO0FHWUE7QUFnQkE7O0FQdVpBO0FPL1hBOztBUGtZQTtBT3ZhQTtBQUNBO0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFNQTtBL0w5REE7QUFDQTtBQUNBO0E4TEdBO0FBR0E7QUMwREE7QUR6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FDb0JBO0FES0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQ3ZDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7OztBQUdBO0FBQ0E7QWxPakhBOztBMk44aEJBO0F6TjloQkE7OztBeU5raUJBO0EzTnhoQkE7QUFnQkE7O0EyTjRnQkE7QTNOdGlCQTs7QTJOeWlCQTtBek56aUJBOzs7QXlONmlCQTtBM05uaUJBO0FBZ0JBOztBMk51aEJBO0EzTmpqQkE7O0EyTm9qQkE7QXpOcGpCQTs7O0F5TndqQkE7QTNOOWlCQTtBQWdCQTs7QTJOa2lCQTtBM041akJBOztBMk4rakJBO0F6Ti9qQkE7OztBeU5ta0JBO0EzTnpqQkE7QUFnQkE7O0EyTjZpQkE7QTNOdmtCQTs7QTJOMGtCQTtBek4xa0JBOzs7QXlOOGtCQTtBM05wa0JBO0FBZ0JBOztBMk53akJBO0EzTmxsQkE7O0EyTnFsQkE7QXpOcmxCQTs7O0F5TnlsQkE7QTNOL2tCQTtBQWdCQTs7QTJObWtCQTtBeEw3bEJBOztBd0xnbUJBO0FJaG1CQTtBQVlBO0FJU0E7QUFHQTtBQUdBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QWhNOUJBO0FBQ0E7QUFDQTtBOExHQTtBQUdBO0FBQ0E7QXpOK2hCQTtBMk4xZ0JBO0FBRUE7QUFNQTtBRmJBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBRVJBO0FGaUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUUzQ0E7QUFDQTtBQUNBO0FGMkNBO0FBRUE7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBRS9EQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQWRBO0FBa0JBOzsiLCJzb3VyY2VSb290IjoiIn0=*/