@charset "UTF-8";
/**
 * Woocommerce: SCSS structure
 */
/*
.sixteen-nine {
	@include aspect-ratio(16,9);
}*/
/* Media Queries Breakpoints */
/**
* *******************
*  Usage examples
* *******************
*
//
//  use <=
*   ALWAYS use <= ( '<' with '=' character) for all breakpoints
*   when setting max-width, ex: max-width: 767px,
*
*   so max-width: 1440px  == media('<=desktop-l')
*
* ***********************************************
*
//  use >
*   ALWAYS use only > as single character for all breakpoints
*   when setting min-width, ex: min-width: 768px,
*
*   so min-width: 1025px  == media('>desktop')
*
*************************************************
*
*## EXAMPLE:
*
*   (min-width: 768px) and (max-width: 1024px)
*   =
*   media ('>tablet'), ('<=desktop')
*
//

 */
/*
 * 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
 */
.sr-only,
.screen-reader-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px !important;
  /* 1 */
}

/*
 * Extends the .sr-only class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  width: auto;
}

.align-center,
.text-center {
  text-align: center;
}

@media (max-width: 767px) {
  .align-sm-center,
.text-sm-center {
    text-align: center !important;
  }
}
.text-right,
.align-right {
  text-align: right;
}

@media (max-width: 767px) {
  .align-sm-right,
.text-sm-right {
    text-align: right !important;
  }
}
.text-left,
.align-left {
  text-align: left;
}

@media (max-width: 767px) {
  .align-sm-left,
.text-sm-left {
    text-align: left !important;
  }
}
.text-uppercase {
  text-transform: uppercase;
}

.text-capitalize {
  text-transform: capitalize;
}

.overflow-hidden {
  overflow: hidden;
}

.img-invert {
  filter: invert(1);
  opacity: 0.5;
}

.pb-10 {
  padding-bottom: 10px;
}

[data-object-fit=cover] {
  object-fit: cover;
}

[data-object-fit=contain] {
  object-fit: contain;
}

.-nobg {
  background-image: none !important;
}

.-nowrap {
  white-space: nowrap;
}

/* Background */
.bg-auto {
  background-size: auto;
}

.bg-cover {
  background-size: cover;
}

.bg-contain {
  background-size: contain;
}

.bg-fixed {
  background-attachment: fixed;
}

.bg-transparent {
  background-color: transparent;
}

.bg-bottom {
  background-position: bottom;
}

.bg-center {
  background-position: center;
}

.bg-left {
  background-position: left;
}

.bg-left-bottom {
  background-position: left bottom;
}

.bg-left-top {
  background-position: left top;
}

.bg-right {
  background-position: right;
}

.bg-right-bottom {
  background-position: right bottom;
}

.bg-right-top {
  background-position: right top;
}

.bg-top {
  background-position: top;
}

.bg-repeat {
  background-repeat: repeat;
}

.bg-no-repeat {
  background-repeat: no-repeat;
}

.bg-repeat-x {
  background-repeat: repeat-x;
}

.bg-repeat-y {
  background-repeat: repeat-y;
}

.bg-repeat-round {
  background-repeat: round;
}

.bg-repeat-space {
  background-repeat: space;
}

/* Flex */
.d-flex {
  display: flex;
}

.flex-row {
  flex-direction: row;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}

.flex-col {
  flex-direction: column;
}

.flex-col-reverse {
  flex-direction: column-reverse;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

.items-start {
  align-items: flex-start;
}

.items-end {
  align-items: flex-end;
}

.items-center {
  align-items: center;
}

.items-baseline {
  align-items: baseline;
}

.items-stretch {
  align-items: stretch;
}

.content-center {
  align-content: center;
}

.content-start {
  align-content: flex-start;
}

.content-end {
  align-content: flex-end;
}

.content-between {
  align-content: space-between;
}

.content-around {
  align-content: space-around;
}

.content-evenly {
  align-content: space-evenly;
}

.self-auto {
  align-self: auto;
}

.self-start {
  align-self: flex-start;
}

.self-end {
  align-self: flex-end;
}

.self-center {
  align-self: center;
}

.self-stretch {
  align-self: stretch;
}

.justify-items-auto {
  justify-items: auto;
}

.justify-items-start {
  justify-items: start;
}

.justify-items-end {
  justify-items: end;
}

.justify-items-center {
  justify-items: center;
}

.justify-items-stretch {
  justify-items: stretch;
}

.justify-start,
.flex-left {
  justify-content: flex-start;
}

.justify-end,
.flex-right {
  justify-content: flex-end;
}

.justify-center,
.flex-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.justify-around {
  justify-content: space-around;
}

.justify-evenly {
  justify-content: space-evenly;
}

.justify-self-auto {
  justify-self: auto;
}

.justify-self-start {
  justify-self: start;
}

.justify-self-end {
  justify-self: end;
}

.justify-self-center {
  justify-self: center;
}

.justify-self-stretch {
  justify-self: stretch;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-auto {
  flex: 1 1 auto;
}

.flex-initial {
  flex: 0 1 auto;
}

.flex-none {
  flex: none;
}

.flex-grow-0 {
  flex-grow: 0;
}

.flex-grow {
  flex-grow: 1;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

.flex-shrink {
  flex-shrink: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-first {
  order: -9999;
}

.order-last {
  order: 9999;
}

.order-none {
  order: 0;
}

/**
 * Woocommerce: SCSS variables
 * NOTE: This is part of old code...this should be refactored
 */
/**
 * Woocommerce: Mixins
 */
/**
 * Woocommerce: Keyframes/animations
 */
@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}
@keyframes rotate360 {
  0% {
    transform: rotateZ(360deg);
  }
  100% {
    transform: rotateZ(-360deg);
  }
}
/**
 * Woocommerce: General settings
 */
:root {
  --wc-top-offset: 130px;
  --wc-vertical-space: 5vmin;
}
@media (max-width: 1280px) {
  :root {
    --wc-vertical-space: 3vmin;
  }
}
@media (max-width: 1112px) {
  :root {
    --wc-top-offset: 0;
  }
}

body.woocommerce, body.woocommerce-page {
  overflow-x: hidden;
}

.archive main.site-content {
  background-color: var(--primary-color1);
  color: #ffffff;
  max-width: 100%;
}
main.site-content .l-heading {
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
}
main.site-content .l-heading .c-heading {
  margin: 0;
}
main.site-content .l-heading .c-heading__title {
  color: var(--primary-color1);
  font-family: var(--font-family-primary);
  font-size: var(--h1-font-size);
  font-weight: var(--h1-font-weight);
  line-height: var(--h1-line-height);
  text-transform: capitalize;
}
main.site-content img {
  height: auto;
  max-width: 100%;
  width: auto;
}

/**
 * WooCommerce: AJAX Layered Nav
 * TODO: Refactor this
 */
.widget_layered_nav ul.colors li a {
  display: block;
}
.widget_layered_nav ul.colors li .box {
  border: 0;
  display: inline-block;
  box-sizing: border-box;
  border-radius: 0.202em;
  height: ms(3);
  width: ms(3);
}
.widget_layered_nav ul.colors li.chosen a {
  opacity: 1;
}
.widget_layered_nav ul.colors li.chosen a:hover {
  opacity: 0.5;
}
.widget_layered_nav ul.checkboxes li input {
  margin-right: ms(-2);
}
.widget_layered_nav ul.sizes li a {
  opacity: 1;
}
.widget_layered_nav ul.sizes li .size-filter {
  font-size: 1em;
  height: ms(3);
  min-width: ms(3);
  text-align: center;
  line-height: 1.618;
  background-color: #fff;
  border: 0;
  opacity: 0.5;
  font-weight: 600;
  border-radius: 0.202em;
}
.widget_layered_nav ul.sizes li .size-filter:hover {
  opacity: 1;
}
.widget_layered_nav ul.sizes li.chosen .size-filter {
  opacity: 1;
}
.widget_layered_nav ul.sizes li.chosen .size-filter:hover {
  opacity: 0.5;
}
.widget_layered_nav ul.colors li.chosen::before,
.widget_layered_nav ul.checkboxes li.chosen::before,
.widget_layered_nav ul.sizes li.chosen::before {
  display: none;
}
.widget_layered_nav ul.colors li.show-count a,
.widget_layered_nav ul.checkboxes li.show-count a,
.widget_layered_nav ul.sizes li.show-count a {
  display: inline-block;
}
.widget_layered_nav ul.colors li.show-count .count,
.widget_layered_nav ul.checkboxes li.show-count .count,
.widget_layered_nav ul.sizes li.show-count .count {
  float: right;
  line-height: 1.618;
  font-size: 1em;
}

/**
 * WooCommerce: Header
 */
.is-sticky .site-header__top .site-header__row {
  max-height: initial;
  overflow: initial;
}

/**
 * Strictly Layout Styles
 * TODO: Refactor this
 */
:root {
  --wc-products-sidebar-col: 25%;
  --wc-products-sidebar-min-width: 260px;
  --wc-products-gap: 30px;
}
@media (max-width: 766px) {
  :root {
    --wc-products-sidebar-col: 100%;
  }
}

.woocommerce-archive-content {
  display: flex;
  width: 100%;
  transition: max-width var(--base-transition);
  max-width: calc(var(--content-width) + var(--page-gutter, 20px) * 2);
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 1112px) {
  .woocommerce-archive-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1112px) {
  .woocommerce-archive-content.-has-sidebar .woocommerce-sidebar {
    flex: 0 0 var(--wc-products-sidebar-col);
    min-width: var(--wc-products-sidebar-min-width);
    padding-right: var(--wc-products-gap);
  }
}
@media (max-width: 1111px) {
  .woocommerce-archive-content .woocommerce-sidebar {
    width: 100%;
  }
}
.woocommerce-archive-content.-sidebar-left {
  flex-direction: row;
}
@media (max-width: 766px) {
  .woocommerce-archive-content.-sidebar-left {
    flex-direction: column;
  }
}
.woocommerce-archive-content.-sidebar-right {
  flex-direction: row-reverse;
}
@media (max-width: 766px) {
  .woocommerce-archive-content.-sidebar-right {
    flex-direction: column;
  }
}
.woocommerce-archive-content .woocommerce-loop {
  flex: 1;
  margin-bottom: 0;
}
.woocommerce-archive-content .woocommerce-loop .c-block {
  height: 100%;
}
@media (max-width: 766px) {
  .woocommerce-archive-content {
    margin-bottom: 0;
    padding-bottom: 0;
  }
}

/*
 * Old code
 */
.admin-bar .woocommerce-checkout #wc_checkout_add_ons label + br {
  display: none;
}
@media (min-width: 767px) {
  .admin-bar .storefront-sticky-add-to-cart--slideInDown {
    top: 32px;
  }
}

.woocommerce-active .site-branding {
  float: left;
}

.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
  background-color: #fff;
  text-align: center;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding-bottom: 0;
}
@media (min-width: 767px) {
  .woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
    min-height: 300px;
  }
}
.woocommerce .woocommerce-products-header .shop_subheader,
.woocommerce-page .woocommerce-products-header .shop_subheader {
  width: 100%;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--titles-color);
  padding-top: var(--header-hight);
}

.woocommerce-page.woocommerce-cart .entry-header, .woocommerce-page.woocommerce-checkout .entry-header, .woocommerce-page.woocommerce-account .entry-header,
.woocommerce-page .woocommerce-products-header {
  text-align: center;
}
.woocommerce-page .product-cta {
  min-height: 568px;
  display: flex;
  align-items: center;
  text-align: center;
  color: #fff;
}
.woocommerce-page .product-cta .product-cta__title {
  font-size: var(--h1-font-size);
  margin-bottom: var(--h2-margin-bottom);
}
.woocommerce-page .product-cta .product-cta__subtitle {
  font-size: var(--h3-font-size);
  margin-bottom: var(--h2-margin-bottom);
}
@media (min-width: 767px) {
  .woocommerce-page h1:last-child {
    margin-bottom: 0;
  }
  .woocommerce-page .up-sells > h2:first-child,
.woocommerce-page .related.products > h2:first-child {
    text-align: center;
  }
}

/**
 * WooCommerce: Sidebar
 */
:root {
  --wc-sidebar-shadow: 0 3px 15px 0 rgba(0, 0, 0, 0.5);
  --wc-sidebar-mobile-width: 340px;
  --wc-sidebar-mobile-overlay-bg: rgba(0, 0, 0, 0.5);
}

.woocommerce-sidebar {
  position: relative;
  left: calc(var(--wc-products-sidebar-col) * -1);
  width: 0;
  height: 0;
  visibility: hidden;
  transition: visibility 0.01s ease;
}
@media (min-width: 1112px) {
  .woocommerce-sidebar.is-visible {
    left: 0;
    visibility: visible;
    transition: left 0.2s ease, visibility 0.1s ease 0.01s;
  }
}
@media (max-width: 1111px) {
  .woocommerce-sidebar {
    position: fixed;
    height: 100%;
    top: 0;
    left: -100%;
    overflow-y: auto;
    visibility: visible;
    transition: left var(--base-transition);
    z-index: 100000;
  }
  .woocommerce-sidebar.is-visible-on-mobile {
    left: 0;
  }
  .woocommerce-sidebar.is-visible-on-mobile #close-filter-mobile-overlay {
    left: 0;
  }
  .woocommerce-sidebar-widgets {
    position: relative;
    width: var(--wc-sidebar-mobile-width);
    max-width: 90%;
    padding: 20px;
    background: #fff;
    z-index: 1;
  }
  .woocommerce-sidebar #close-filter-mobile-overlay {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: -100%;
    background-color: var(--wc-sidebar-mobile-overlay-bg);
  }
}

@media (min-width: 1112px) {
  .woocommerce-sidebar-toggle .filter-btn {
    display: none;
  }
  .woocommerce-sidebar-toggle .filter-btn.is-active {
    display: block;
  }
  #close-filter-mobile {
    display: none;
  }
}
@media (max-width: 1111px) {
  #close-filter {
    display: none;
  }
  #close-filter-mobile {
    display: inline-flex;
    justify-content: flex-end;
    width: 100%;
  }
}
/**
 * Woocommerce: Widgets
 * TODO: Refactor this
 */
.widget ul.products li.product a {
  text-decoration: none;
}

.widget_products a {
  display: block;
}

.widget_shopping_cart .product_list_widget {
  margin-bottom: 0;
}
.widget_shopping_cart .product_list_widget li {
  padding-left: 2em;
  position: relative;
}
.widget_shopping_cart .product_list_widget li a.remove {
  position: absolute;
  top: 1em;
  left: 0;
  opacity: 1;
}
.widget_shopping_cart p.total,
.widget_shopping_cart p.buttons {
  padding: 1em 0;
  margin: 0;
  text-align: center;
}
.widget_shopping_cart p.total {
  border-bottom: 1px solid;
}
.widget_shopping_cart .buttons a {
  display: block;
  margin-bottom: ms(-2);
}
.widget_shopping_cart .buttons a:last-child {
  margin-bottom: 0;
}
.widget_shopping_cart .buttons a img {
  margin-left: auto;
  margin-right: auto;
}

.site-header .widget_shopping_cart p.total,
.site-header .widget_shopping_cart p.buttons,
.site-header .widget_shopping_cart li {
  padding-left: ms(2);
  padding-right: ms(2);
}

/**
 * Woocommerce: Product sale badge
 * Note that this needs to be wrapped into relative parent
 */
:root {
  --wc-badge-offset: 10px;
  --wc-badge-padding: 10px;
  --wc-badge-font-size: 1rem;
  --wc-badge-color: #fff;
  --wc-badge-background: var(--primary-color1);
  --wc-badge-border: none;
  --wc-badge-border-color: transparent;
  --wc-badge-border-radius: 50%;
  --wc-badge-aspect-ratio: 1/1;
}

.wc-block-grid__product-onsale,
.onsale {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: var(--wc-badge-offset);
  right: var(--wc-badge-offset);
  padding: var(--wc-badge-padding);
  font-size: var(--wc-badge-font-size);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--wc-badge-color);
  background: var(--wc-badge-background);
  border: var(--wc-badge-border);
  border-color: var(--wc-badge-border-color);
  border-radius: var(--wc-badge-border-radius);
  aspect-ratio: var(--wc-badge-aspect-ratio);
  z-index: 1;
}

/**
 * WooCommerce: Bookings
 */
#wc-bookings-booking-form {
  border: 0;
  padding: 0;
}
#wc-bookings-booking-form .wc-bookings-booking-cost {
  margin: 0;
  border: 0;
}
#wc-bookings-booking-form .wc-bookings-date-picker-date-fields input {
  margin-bottom: 0;
}
#wc-bookings-booking-form .wc-bookings-date-picker-date-fields label {
  width: 20%;
}
#wc-bookings-booking-form .ui-widget {
  font-family: inherit;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker-header {
  border: 0;
  background-image: none;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-widget-content {
  box-shadow: none;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  background: none;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker table {
  font-size: 1em;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker th {
  border: 0;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td {
  border: 0;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td.bookable a {
  text-shadow: none;
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-today a,
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-today span {
  box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.2);
}
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td.fully_booked a,
#wc-bookings-booking-form .wc-bookings-date-picker .ui-datepicker td.fully_booked span {
  text-decoration: line-through;
  cursor: not-allowed;
}
#wc-bookings-booking-form .block-picker {
  text-align: left;
}
#wc-bookings-booking-form .block-picker li a {
  border: 0 !important;
  padding: 0.236em ms(-3);
  display: inline-block;
  text-align: center;
}
#wc-bookings-booking-form .block-picker li a:hover {
  text-decoration: none;
  border: 0;
}

.product-type-booking form.cart {
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 767px) {
  table.my_account_bookings {
    font-size: ms(-1);
  }
}
/**
 * WooCommerce: Brands
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
/**
 * Header region
 */
.header-widget-region .widget_brand_thumbnails ul.brand-thumbnails {
  text-align: center;
}
.header-widget-region .widget_brand_thumbnails ul.brand-thumbnails::before, .header-widget-region .widget_brand_thumbnails ul.brand-thumbnails::after {
  content: "";
  display: table;
}
.header-widget-region .widget_brand_thumbnails ul.brand-thumbnails::after {
  clear: both;
}
.header-widget-region .widget_brand_thumbnails ul.brand-thumbnails li {
  display: inline-block;
  width: auto !important;
  float: none !important;
  margin-bottom: 0 !important;
}
.header-widget-region .widget_brand_thumbnails ul.brand-thumbnails li img {
  max-height: 16px;
  width: auto;
  display: block;
}

/**
 * WooCommerce Brand Layered Nav
 */
.widget_brand_nav ul li .count {
  float: right;
}

/**
 * WooCommerce Brand Archive
 */
.tax-product_brand .woocommerce-products-header {
  display: flex;
  flex-direction: column;
  margin: 0 0 ms(4);
  text-align: center;
}
.tax-product_brand .woocommerce-products-header .brand-thumbnail {
  margin: 0 0 ms(1);
  width: auto;
  max-height: ms(4);
  align-self: center;
  order: 1;
}
.tax-product_brand .woocommerce-products-header .woocommerce-products-header__title,
.tax-product_brand .woocommerce-products-header .term-description {
  order: 2;
}

div#brands_a_z::before, div#brands_a_z::after {
  content: "";
  display: table;
}
div#brands_a_z::after {
  clear: both;
}
div#brands_a_z ul.brands_index {
  margin-left: 0;
  padding: 0;
}
div#brands_a_z ul.brands_index li {
  float: none;
  display: inline-block;
  margin: 0 ms(-5) ms(-6) 0;
  padding: 0;
  text-transform: uppercase;
}
div#brands_a_z ul.brands_index li a,
div#brands_a_z ul.brands_index li span {
  float: none;
  display: block;
  border: 0;
  padding: ms(-4);
  min-width: ms(3);
  text-align: center;
  background-color: #eee;
  color: #43454b;
  line-height: 1;
}
div#brands_a_z ul.brands_index li span {
  opacity: 0.3;
}
div#brands_a_z h3 {
  text-transform: uppercase;
}
div#brands_a_z a.top {
  padding: ms(-2);
  background-color: #eee;
  color: #43454b;
  border: 0;
  line-height: 1;
}
div#brands_a_z ul.brands {
  margin-left: 0;
  list-style-position: inside;
}
div#brands_a_z ul.brands li {
  margin: 0 0 ms(-4);
  padding: 0 0 ms(-4);
  border-bottom: 1px solid var(--border-color);
}

/**
 * WooCommerce Brand single product
 */
@media (min-width: 767px) {
  div#brands_a_z ul.brands_index {
    width: 21.7391304348%;
    float: left;
    margin-right: 4.347826087%;
    transition: all 0.5s ease;
  }
  div#brands_a_z h3 {
    width: 73.9130434783%;
    float: right;
    margin-right: 0;
    clear: right;
    text-transform: uppercase;
  }
  div#brands_a_z h3:first-of-type {
    margin-top: 0;
  }
  div#brands_a_z a.top {
    clear: right;
  }
  div#brands_a_z ul.brands {
    width: 73.9130434783%;
    float: right;
    margin-right: 0;
    clear: right;
  }
}
/**
 * Woocommerce: Breadcrumbs
 */
:root {
  --wc-breadcrumb-padding-tb: 2.4em;
  --wc-breadcrumb-font-size: 1.4rem;
  --wc-breadcrumb-font-weight: var(--base-text-font-weight);
  --wc-breadcrumb-line-height: 1.2;
}

.woocommerce-breadcrumb {
  padding: var(--wc-breadcrumb-padding-tb) 0;
  font-size: var(--wc-breadcrumb-font-size);
  font-weight: var(--wc-breadcrumb-font-weight);
  line-height: var(--wc-breadcrumb-line-height);
  color: var(--body-text-color);
  display: none;
}
.woocommerce-breadcrumb a {
  text-decoration: none;
  text-transform: capitalize;
  transition: opacity var(--base-transition);
  color: inherit;
}
.woocommerce-breadcrumb a:hover {
  opacity: 0.8;
}
.woocommerce-breadcrumb .delimiter {
  display: inline-block;
  padding: 0 0.5em;
}

/**
 * Woocommerce: Buttons
 * All buttons are connected to the DSMP core, except show/hide filter button
 * TODO: Discuss do we need al those variables to style one button (filter button)???
 */
:root {
  --wc-filter-btn-padding-tb: 0;
  --wc-filter-btn-padding-lr: 0;
  --wc-filter-btn-font-size: 1.6rem;
  --wc-filter-btn-font-family: var(--btn-font-family);
  --wc-filter-btn-font-weight: 400;
  --wc-filter-btn-text-transform: uppercase;
  --wc-filter-btn-primary-color: var(--primary-color1);
  --wc-filter-btn-primary-bg: transparent;
  --wc-filter-btn-primary-border: 0;
  --wc-filter-btn-primary-border-color: transparent;
  --wc-filter-btn-border-radius: 0;
  --wc-filter-btn-icon-size: 24px;
  --wc-filter-btn-primary-color-hover: var(--primary-color1);
  --wc-filter-btn-primary-bg-hover: "transparent";
  --wc-filter-btn-primary-border-color-hover: "transparent";
}

.woocommerce-button, .filter-btn, a.button,
button.button,
input.button,
#respond input#submit {
  transition: transform var(--base-transition), border var(--base-transition), background var(--base-transition), color var(--base-transition);
  backface-visibility: hidden;
  position: relative;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
}

a.button,
button.button,
input.button,
#respond input#submit {
  display: inline-block;
  padding: var(--btn-padding-top-bottom, 10px) var(--btn-padding-left-right, 20px);
  margin: 2px;
  font-size: var(--btn-font-size, 1.8rem);
  font-family: var(--btn-font-family);
  font-weight: var(--btn-font-weight, 400);
  text-transform: var(--btn-text-transform, none);
  align-items: center;
  color: var(--btn-primary-color);
  background-color: var(--btn-primary-bg);
  border: var(--btn-primary-border) solid var(--btn-primary-border-color);
  border-radius: var(--btn-border-radius, 0);
  box-shadow: var(--btn-box-shadow, none);
  user-select: none;
}
@media (min-width: 1113px) {
  a.button:hover,
button.button:hover,
input.button:hover,
#respond input#submit:hover {
    color: var(--btn-primary-color-hover);
    background-color: var(--btn-primary-bg-hover);
    border-color: var(--btn-primary-border-color-hover);
  }
}
a.button:focus,
button.button:focus,
input.button:focus,
#respond input#submit:focus {
  outline: 0;
}

.filter-btn {
  padding: var(--wc-filter-btn-padding-tb, 10px) var(--wc-filter-btn-padding-lr, 20px);
  font-size: var(--wc-filter-btn-font-size, 1.8rem);
  font-family: var(--wc-filter-btn-font-family);
  font-weight: var(--wc-filter-btn-font-weight, 400);
  text-transform: var(--wc-filter-btn-text-transform, none);
  align-items: center;
  color: var(--wc-filter-btn-primary-color);
  background-color: var(--wc-filter-btn-primary-bg);
  border: var(--wc-filter-btn-primary-border) solid var(--wc-filter-btn-primary-border-color);
  border-radius: var(--wc-filter-btn-border-radius, 0);
}
@media (min-width: 1113px) {
  .filter-btn:hover {
    color: var(--wc-filter-btn-primary-color-hover);
    background-color: var(--wc-filter-btn-primary-bg-hover);
    border-color: var(--wc-filter-btn-primary-border-color-hover);
  }
}
.filter-btn:focus {
  outline: 0;
}
.filter-btn svg {
  width: var(--wc-filter-btn-icon-size);
  margin-right: 0.7em;
}

/**
 * WooCommerce: Composite Products
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
/**
 * Base
 */
.composite_summary .summary_element .summary_element_wrapper {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0);
}
.composite_summary .summary_element .summary_element_wrapper.selected, .composite_summary .summary_element .summary_element_wrapper.selected:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.06);
}
.composite_summary .summary_element .summary_element_wrapper:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.03);
}
.composite_summary .summary_element .summary_element_wrapper.disabled, .composite_summary .summary_element .summary_element_wrapper.disabled:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0);
}

.composite_form .component .component_summary .content {
  margin-bottom: ms(3);
}
.composite_form .component .component_summary .composited_product_details_wrapper {
  padding-left: 0;
}
.composite_form .component .component_summary .composited_product_details_wrapper .composited_product_images {
  margin-left: 0;
}
.composite_form .component .component_summary .composited_product_details_wrapper .composited_product_images a {
  margin: 0 !important;
}
.composite_form .component .component_summary .composited_product_details_wrapper .composited_product_images img {
  width: 100%;
  height: auto;
  margin-bottom: 0;
}
.composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details {
  padding: 0;
}
.composite_form .component .component_option_thumbnails .component_option_thumbnail {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0);
}
.composite_form .component .component_option_thumbnails .component_option_thumbnail.selected, .composite_form .component .component_option_thumbnails .component_option_thumbnail.selected:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.06);
}
.composite_form .component .component_option_thumbnails .component_option_thumbnail.selected:not(.loading) button {
  border-radius: 50%;
  width: 0;
  box-sizing: content-box;
}
.composite_form .component .component_option_thumbnails .component_option_thumbnail:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.03);
}
.composite_form .component .component_option_thumbnails .component_option_thumbnail.disabled, .composite_form .component .component_option_thumbnails .component_option_thumbnail.disabled:hover {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0);
}
.composite_form .component .select_label {
  display: block;
  margin-bottom: 1em;
}

.woocommerce #content div.product .component .composited_product_images,
.woocommerce div.product .component .composited_product_images,
.woocommerce-page #content div.product .component .composited_product_images,
.woocommerce-page div.product .component .composited_product_images {
  width: 15.7894736842%;
  float: left;
  margin-right: 5.2631578947%;
}

.composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details {
  width: 78.9473684211%;
  float: right;
  margin-right: 0;
}

.component_table_item .product-name {
  padding-left: 4rem;
}

table.shop_table_responsive tr.component_table_item {
  display: none;
}

/**
 * Desktop
 */
@media (min-width: 767px) {
  .component_container_table_item dl.composite_configuration {
    display: none;
  }
  table.shop_table_responsive tr.component_table_item {
    display: table-row;
  }
  .sp-product-gallery-stacked #content div.product .component .composited_product_images,
.sp-product-gallery-stacked div.product .component .composited_product_images,
.woocommerce-page #content div.product .component .composited_product_images,
.woocommerce-page div.product .component .composited_product_images,
.page-template-template-fullwidth-php #content div.product .component .composited_product_images,
.page-template-template-fullwidth-php div.product .component .composited_product_images {
    width: 20%;
    float: left;
    margin-right: 6.6666666667%;
  }
  .sp-product-gallery-stacked .composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details,
.woocommerce-page .composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details,
.page-template-template-fullwidth-php .composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details {
    width: 73.3333333333%;
    float: right;
    margin-right: 0;
  }
}
/**
 * Handheld
 */
@media (max-width: 574px) {
  .woocommerce #content div.product .component .composited_product_images,
.woocommerce div.product .component .composited_product_images,
.woocommerce-page #content div.product .component .composited_product_images,
.woocommerce-page div.product .component .composited_product_images {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0;
  }
  .composite_form .component:not(.selection_thumbnail_hidden) .component_summary .composited_product_details_wrapper > .details {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0;
  }
  .composite_form .component .component_summary .composited_product_details_wrapper .composited_product_images {
    max-width: 50%;
  }
  .composite_form .component .component_summary .composited_product_details_wrapper .composited_product_images img {
    margin-bottom: 1em;
  }
}
/**
 * Widget
 */
.widget.widget_composite_summary.widget_position_fixed {
  font-size: ms(1);
}

.widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_price {
  font-size: ms(2);
}

.widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content {
  max-width: 1064px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 ms(5);
  box-sizing: content-box;
}
.widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content::before, .widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content::after {
  content: "";
  display: table;
}
.widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content::after {
  clear: both;
}

@media (max-width: calc(var(--content-width) + var(--page-gutter, 20px) * 2)) {
  .widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content {
    margin-left: ms(5);
    margin-right: ms(5);
    padding: 0;
  }
}
@media (max-width: 574px) {
  .widget.widget_composite_summary.widget_position_fixed .widget_composite_summary_content {
    margin-left: ms(2);
    margin-right: ms(2);
    padding: 0;
  }
}
.widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_ui_wrapper > div {
  margin-left: 0;
}

.widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_details_wrapper {
  width: 73.9130434783%;
  float: left;
  margin-right: 4.347826087%;
}
.widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_ui_wrapper {
  width: 21.7391304348%;
  float: right;
  margin-right: 0;
}

.right-sidebar .widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_details_wrapper {
  width: 73.9130434783%;
  float: left;
  margin-right: 4.347826087%;
}
.right-sidebar .widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_ui_wrapper {
  width: 21.7391304348%;
  float: right;
  margin-right: 0;
}

.left-sidebar .widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_details_wrapper {
  width: 73.9130434783%;
  float: right;
  margin-right: 0;
}
.left-sidebar .widget_composite_summary.widget_position_fixed .widget_composite_summary_content .widget_composite_summary_ui_wrapper {
  width: 21.7391304348%;
  float: left;
  margin-right: 4.347826087%;
}
.left-sidebar .widget_composite_summary.widget_position_fixed .widget_composite_summary_content .composite_button {
  float: left;
}

/**
 * WooCommerce: Deposits
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
/**
 * Style
 */
.wc-deposits-wrapper .wc-deposits-option li {
  padding: ms(-2) 1em;
  border: none;
  background: rgba(0, 0, 0, 0.0125);
  box-shadow: none;
  border-radius: 0;
}
.wc-deposits-wrapper .wc-deposits-option li:hover {
  background: rgba(0, 0, 0, 0.02);
}
.wc-deposits-wrapper .wc-deposits-option li input {
  margin-right: ms(-2);
}
.wc-deposits-wrapper .wc-deposits-payment-description {
  color: inherit;
}
.wc-deposits-wrapper .wc-deposits-payment-plans {
  background: transparent;
  padding: 0;
  border: 0;
  box-shadow: none;
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan {
  border: 1em solid rgba(0, 0, 0, 0.0125);
  padding: ms(3);
  margin-bottom: 1em;
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan input {
  margin-right: 0;
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan:hover {
  background: rgba(0, 0, 0, 0.0125);
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan:last-child {
  border-bottom: 1em solid rgba(0, 0, 0, 0.0125);
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan .wc-deposits-payment-plan-description {
  color: inherit;
  display: block;
  font-weight: 400;
  opacity: 0.5;
}
.wc-deposits-wrapper .wc-deposits-payment-plans li.wc-deposits-payment-plan label {
  max-width: none;
}
.wc-deposits-wrapper.wc-deposits-optional .wc-deposits-payment-plans {
  margin-bottom: ms(3);
}
.wc-deposits-wrapper.wc-deposits-optional .wc-deposits-payment-plans::after {
  display: none;
}
.wc-deposits-wrapper.wc-deposits-optional .wc-deposits-payment-plans::before {
  border-bottom-color: rgba(0, 0, 0, 0.025);
  top: -1px;
}

/**
 * WooCommerce: Top Filter Widgets (Filters and Categories)
 * NOTE: Top filters will always be in forms of a dropdown
 */
.shop-filters .products_shop_filter > li > span {
  display: block;
  padding: 0 0 0.5em;
  font-size: clamp(14px, 1.05vw, 20px);
  font-weight: 700;
  text-transform: capitalize;
  user-select: none;
  cursor: pointer;
  position: relative;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li > span {
    margin-bottom: 0.4em;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-right: 40px;
  }
}
.shop-filters .products_shop_filter > li > span .toggle-filter {
  display: flex;
  align-items: center;
  color: #fff;
  background: none;
  border-radius: 100%;
  border: 0;
  padding: 0;
  width: clamp(15px, 1.146vw, 22px);
  height: clamp(15px, 1.146vw, 22px);
  position: absolute;
  z-index: 1;
  top: 4px;
  right: 0;
}
.shop-filters .products_shop_filter > li > span .toggle-filter:focus {
  outline: 0;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li > span .toggle-filter {
    color: var(--primary-color1);
    background: #EFF1F6;
    font-size: 18px;
    border-radius: 50%;
    font-weight: normal;
    height: 22px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
  }
}
.shop-filters .products_shop_filter > li > span .icon {
  width: 100%;
  height: 100%;
}
.shop-filters .products_shop_filter > li > span .icon.icon-circle-minus {
  display: inline-block;
}
.shop-filters .products_shop_filter > li > span .icon.icon-circle-plus {
  display: none;
}
.shop-filters .products_shop_filter > li > nav {
  max-height: 100%;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li > nav {
    padding-top: 10px;
    padding-bottom: 10px;
    margin-bottom: 5px;
  }
}
.shop-filters .products_shop_filter > li.-collapsed > span .icon.icon-circle-minus {
  display: none;
}
.shop-filters .products_shop_filter > li.-collapsed > span .icon.icon-circle-plus {
  display: inline-block;
}
.shop-filters .products_shop_filter > li.-collapsed > nav {
  max-height: 0;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li.-collapsed > nav {
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
}
.shop-filters .products_shop_filter > li.widget_layered_nav_clear {
  position: absolute;
  z-index: 1;
  right: 0;
  top: 7px;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li.widget_layered_nav_clear {
    right: 20px;
    top: 40px;
  }
}
.shop-filters .products_shop_filter > li.widget_layered_nav_clear a {
  color: #fff;
  font-size: 15px;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter > li.widget_layered_nav_clear a {
    font-size: 14px;
    color: var(--primary-color1);
  }
}
.shop-filters .products_shop_filter .widget_layered_nav {
  border-top: 2px dashed rgba(208, 212, 222, 0.3);
  padding-top: 15px;
  padding-bottom: 1px;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter .widget_layered_nav {
    border-top: 0;
    padding-top: 10px;
  }
  .shop-filters .products_shop_filter .widget_layered_nav:not(:last-child) {
    border-bottom: 0.5px solid rgba(42, 61, 36, 0.5);
  }
}
.shop-filters .products_shop_filter .widget_layered_nav:last-child .checkboxes {
  margin-bottom: 0px;
}
.shop-filters .products_shop_filter .checkboxes {
  margin-bottom: 15px;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter .checkboxes {
    margin-bottom: 0px;
  }
}
.shop-filters .products_shop_filter .checkboxes li {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  font-size: 0.8em;
}
.shop-filters .products_shop_filter .checkboxes li input {
  margin: 7px 8px 0 0;
  position: absolute;
  opacity: 0;
}
.shop-filters .products_shop_filter .checkboxes li input + label {
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  padding: 0;
  line-height: 1.5;
  color: #fff;
  font-size: clamp(14px, 1.05vw, 20px);
  margin-bottom: 0;
  user-select: none;
  font-weight: 400;
}
.shop-filters .products_shop_filter .checkboxes li input + label:before {
  content: "";
  margin-right: 10px;
  margin-top: clamp(3px, 0.26vw, 5px);
  display: inline-block;
  min-width: clamp(13px, 0.93vw, 18px);
  width: clamp(13px, 0.93vw, 18px);
  height: clamp(13px, 0.93vw, 18px);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.5);
  transition: all 0.3s;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter .checkboxes li input + label:before {
    background-color: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--secondary-color2);
    height: 18px;
    min-width: 18px;
    width: 18px;
    margin-top: 2px;
  }
}
.shop-filters .products_shop_filter .checkboxes li input:hover + label:before {
  background: var(--primary-color2);
}
.shop-filters .products_shop_filter .checkboxes li input:checked + label:before {
  background-color: var(--primary-color2);
  background-image: url("data:image/svg+xml,%3Csvg width='13' height='10' viewBox='0 0 13 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.4722 4.686 8 12 1' stroke='%23213B8C' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%;
  border: none;
}
@media (max-width: 1112px) {
  .shop-filters .products_shop_filter .checkboxes li input:checked + label:before {
    background-color: var(--secondary-color5);
    background-image: url("data:image/svg+xml,%3Csvg width='13' height='10' viewBox='0 0 13 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.4722 4.686 8 12 1' stroke='%23FFFFFF' stroke-width='2'/%3E%3C/svg%3E");
  }
}

.shop-filters details[open] input + label::before {
  border: 1px solid var(--secondary-color2) !important;
}

.close-filter {
  height: 30px;
  width: 30px;
}
.close-filter svg {
  height: 100%;
  width: 100%;
  vertical-align: top;
}

.shop-filters__close {
  display: none;
}

/**
 * Woocommerce: Forms
 * Input fields are connected to the DSMP core
 */
:root {
  --wc-input-line-height: 1.5;
  --wc-label-margin-bottom: 0.5em;
}

.woocommerce-page:not(.woocommerce-shop) .site-content label {
  color: var(--label-color);
  display: block;
  font-size: var(--label-font-size, 1.6rem);
  font-weight: var(--label-font-weight, 400);
  line-height: var(--label-line-height, 1.5);
  margin-bottom: var(--wc-label-margin-bottom, 0.5em);
  padding-left: 25px;
  width: 100%;
}
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=text],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=email],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=phone],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=tel],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=number],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=date],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=file],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=password],
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=search],
.woocommerce-page:not(.woocommerce-shop) .site-content textarea,
.woocommerce-page:not(.woocommerce-shop) .site-content select,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-elements-field,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-iban-element-field {
  background: var(--input-background-color, #ffffff);
  border: var(--input-border-width, 1px) solid var(--input-border-color, #666666);
  border-radius: var(--input-border-radius, 5px);
  box-sizing: border-box;
  color: var(--input-color);
  font-size: var(--input-font-size, 16px);
  font-weight: var(--input-font-weight, 400);
  line-height: var(--wc-input-line-height);
  max-width: 100%;
  padding: var(--input-padding-top-bottom, 4px) var(--input-padding-left-right, 10px);
  width: 100%;
}
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=text]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=email]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=phone]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=tel]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=number]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=date]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=file]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=password]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=search]:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content textarea:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content select:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-elements-field:focus,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-iban-element-field:focus {
  border-color: #555555;
  outline: none;
}
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=text].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=email].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=phone].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=tel].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=number].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=date].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=file].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=password].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content input[type=search].disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content textarea.disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content select.disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-elements-field.disabled,
.woocommerce-page:not(.woocommerce-shop) .site-content .wc-stripe-iban-element-field.disabled {
  pointer-events: none;
  user-select: none;
  background-color: rgba(245, 250, 254, 0.6);
  border-color: rgba(210, 216, 224, 0.5);
  color: #797979;
}
.woocommerce-page:not(.woocommerce-shop) .site-content select {
  height: calc(var(--input-font-size) * var(--wc-input-line-height) + var(--input-padding-top-bottom) * 2 + var(--input-border-width) * 2);
}
.woocommerce-page:not(.woocommerce-shop) .site-content input.error-input {
  border-color: var(--validation-error-color);
}
.woocommerce-page:not(.woocommerce-shop) .site-content .woocommerce-LostPassword.lost_password a {
  color: var(--primary-link-color);
  font-size: var(--label-font-size, 1.6rem);
  font-weight: 600;
  line-height: var(--base-text-line-height);
}
.woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox:checked + .wpcf7-list-item-label {
  background-color: #ddf7e8;
}
.woocommerce-page:not(.woocommerce-shop) .email-note {
  display: inline-block;
  vertical-align: top;
  width: 20px;
  height: 20px;
  margin-left: 5px;
  position: relative;
}
@media (max-width: 1112px) {
  .woocommerce-page:not(.woocommerce-shop) .email-note {
    left: auto;
    right: 0;
    width: 18px;
    height: 18px;
  }
}
.woocommerce-page:not(.woocommerce-shop) .email-note .icon {
  width: 100%;
  height: 100%;
  margin-bottom: 0;
  object-fit: contain;
  transition: transform 400ms ease-out;
  display: block;
}
.woocommerce-page:not(.woocommerce-shop) .email-note .tooltip {
  background-color: white;
  border: 1px solid #d2d8e0;
  border-radius: 10px;
  bottom: calc(100% + 10px);
  color: var(--secondary-color3);
  font-size: 1.4rem;
  left: 50%;
  margin-left: -100px;
  padding: 5px;
  position: absolute;
  text-align: center;
  visibility: hidden;
  width: 200px;
  z-index: 1;
  text-transform: none;
  font-weight: 400;
  letter-spacing: normal;
}
@media (max-width: 1112px) {
  .woocommerce-page:not(.woocommerce-shop) .email-note .tooltip {
    left: auto;
    right: 0;
  }
}
.woocommerce-page:not(.woocommerce-shop) .email-note .tooltip:after {
  background-color: white;
  border: solid #d2d8e0;
  border-width: 0 1px 1px 0;
  bottom: -5px;
  content: "";
  display: block;
  height: 10px;
  left: 0;
  margin: 0 auto;
  position: absolute;
  right: 0;
  transform: rotateZ(45deg);
  width: 10px;
}
@media (max-width: 1112px) {
  .woocommerce-page:not(.woocommerce-shop) .email-note .tooltip:after {
    left: auto;
    margin: 0;
    right: 15px;
  }
}
.woocommerce-page:not(.woocommerce-shop) .email-note:hover {
  cursor: help;
}
.woocommerce-page:not(.woocommerce-shop) .email-note:hover .tooltip {
  visibility: visible;
}
.woocommerce-page:not(.woocommerce-shop) .email-note:hover .icon {
  transform: scale(1.1);
}

.payment_box .woocommerce-validated label {
  display: inline-block !important;
}

.form-row label {
  display: block;
}
.form-row input,
.form-row textarea,
.form-row select {
  width: 100%;
}
.form-row input[type=checkbox],
.form-row input[type=radio] {
  width: auto;
}
.form-row .button {
  width: auto;
}
.form-row.create-account label {
  display: inline-block;
}
.form-row.woocommerce-validated input.input-text {
  border-color: #0f834d;
}
.form-row.woocommerce-invalid input.input-text {
  border-color: #e2401c !important;
}
.form-row.woocommerce-invalid input.input-checkbox {
  outline: 2px solid #e2401c;
  outline-offset: 1px;
}
.form-row.woocommerce-invalid .select2-selection {
  border-color: #e2401c;
  border-width: 2px;
}

.form-row-wide {
  clear: both;
  width: 100%;
}
.form-row-wide em {
  font-size: var(--smaller-text-size);
}
.form-row-wide small {
  font-size: 0.85em;
}

.required {
  border-bottom: 0 !important;
  color: #e2401c;
  text-decoration: none !important;
}

.password-input {
  display: block;
  position: relative;
}

.show-password-input {
  background-image: url("data:image/svg+xml,%3Csvg width='28' height='15' viewBox='0 0 28 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.5' d='M14 0C7.30295 0 1.66917 3.17959 0 7.5C1.66933 11.8204 7.30295 15 14 15C20.6971 15 26.3314 11.8204 28 7.5C26.3311 3.17964 20.6971 0 14 0ZM14 13.3036C10.6823 13.3036 7.99249 10.7053 7.99249 7.5C7.99249 4.29467 10.6825 1.69642 14 1.69642C17.3183 1.69642 20.0075 4.29467 20.0075 7.5C20.0075 10.7053 17.3182 13.3036 14 13.3036ZM14 3.80154C11.886 3.80154 10.1717 5.4573 10.1717 7.4999C10.1717 9.54249 11.8861 11.1983 14 11.1983C16.1139 11.1983 17.8283 9.54249 17.8283 7.4999C17.8283 5.4573 16.1139 3.80154 14 3.80154V3.80154Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  cursor: pointer;
  height: calc(var(--input-font-size) * var(--wc-input-line-height));
  position: absolute;
  right: 20px;
  top: var(--input-padding-top-bottom);
  width: 22px;
}
.show-password-input.display-password {
  background-image: url("data:image/svg+xml,%3Csvg width='28' height='21' viewBox='0 0 28 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.5' d='M14 3C7.30295 3 1.66917 6.17959 0 10.5C1.66933 14.8204 7.30295 18 14 18C20.6971 18 26.3314 14.8204 28 10.5C26.3311 6.17964 20.6971 3 14 3ZM14 16.3036C10.6823 16.3036 7.99249 13.7053 7.99249 10.5C7.99249 7.29467 10.6825 4.69642 14 4.69642C17.3183 4.69642 20.0075 7.29467 20.0075 10.5C20.0075 13.7053 17.3182 16.3036 14 16.3036ZM14 6.80154C11.886 6.80154 10.1717 8.4573 10.1717 10.4999C10.1717 12.5425 11.8861 14.1983 14 14.1983C16.1139 14.1983 17.8283 12.5425 17.8283 10.4999C17.8283 8.4573 16.1139 6.80154 14 6.80154V6.80154Z' fill='%23213B8C'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M2.60313 1.20039C2.9345 0.758563 3.5613 0.66902 4.00313 1.00039L25.6031 17.2004C26.045 17.5318 26.1345 18.1586 25.8031 18.6004C25.4718 19.0422 24.845 19.1318 24.4031 18.8004L2.80313 2.60039C2.3613 2.26902 2.27175 1.64222 2.60313 1.20039Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.60313 2.20039C1.9345 1.75856 2.5613 1.66902 3.00313 2.00039L24.6031 18.2004C25.045 18.5318 25.1345 19.1586 24.8031 19.6004C24.4718 20.0422 23.845 20.1318 23.4031 19.8004L1.80313 3.60039C1.3613 3.26902 1.27175 2.64222 1.60313 2.20039Z' fill='%238A93AD'/%3E%3C/svg%3E%0A");
}

.woocommerce-checkbox-wrapper, .woocommerce-page:not(.woocommerce-shop) .woocommerce-form__label-for-checkbox, .payment_box .woocommerce-validated {
  padding-left: 35px;
  position: relative;
}

.woocommerce-checkbox-input, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox, .payment_box .woocommerce-validated input {
  height: 12px;
  left: 0;
  position: absolute;
  top: 0;
  visibility: hidden !important;
  width: 12px;
}

.woocommerce-checkbox-label, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span, .payment_box .woocommerce-validated label {
  cursor: pointer;
  -webkit-touch-callout: none;
  /* iOS Safari */
  -khtml-user-select: none;
  /* Konqueror HTML */
  -moz-user-select: none;
  /* Old versions of Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  -webkit-user-select: none;
  /* Safari */
  user-select: none;
}
.woocommerce-checkbox-label:before, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:before, .payment_box .woocommerce-validated label:before, .woocommerce-checkbox-label:after, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:after, .payment_box .woocommerce-validated label:after {
  content: "";
  display: block;
  margin: auto;
  position: absolute;
}
.woocommerce-checkbox-label:before, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:before, .payment_box .woocommerce-validated label:before {
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 4px;
  height: 18px;
  left: 0;
  width: 18px;
}
@media (min-width: 1113px) {
  .woocommerce-checkbox-label:before, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:before, .payment_box .woocommerce-validated label:before {
    top: 2px;
  }
}
.woocommerce-checkbox-label:after, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:after, .payment_box .woocommerce-validated label:after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15.897' height='12.22' viewBox='0 0 15.897 12.22'%3E%3Cpath id='Контур_958' data-name='Контур 958' d='M1522.242,697.041l4.384,4.384,10.1-10.1' transform='translate(-1521.535 -690.619)' fill='none' stroke='%23184484' stroke-miterlimit='10' stroke-width='2'/%3E%3C/svg%3E%0A");
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  height: 12px;
  left: 2px;
  opacity: 0;
  top: 3px;
  transition: all var(--base-transition) ease;
  width: 14px;
}
@media (min-width: 1113px) {
  .woocommerce-checkbox-label:after, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox + span:after, .payment_box .woocommerce-validated label:after {
    top: 5px;
  }
}

.woocommerce-checkbox-label-checked:before, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox:checked + span:before, .payment_box .woocommerce-validated input:checked + label:before {
  background: rgba(255, 255, 255, 0);
}
.woocommerce-checkbox-label-checked:after, .woocommerce-page:not(.woocommerce-shop) input.woocommerce-form__input-checkbox:checked + span:after, .payment_box .woocommerce-validated input:checked + label:after {
  opacity: 1;
  visibility: visible;
}

.wc-stripe-elements-field,
.wc-stripe-iban-element-field {
  height: calc(var(--input-font-size) * var(--wc-input-line-height) + var(--input-padding-top-bottom) * 2 + var(--input-border-width) * 2);
}
.wc-stripe-elements-field div,
.wc-stripe-elements-field iframe,
.wc-stripe-iban-element-field div,
.wc-stripe-iban-element-field iframe {
  height: 100% !important;
}

.wc_payment_methods .payment_box p,
.wc_payment_methods .woocommerce-PaymentMethod p,
.payment_methods .payment_box p,
.payment_methods .woocommerce-PaymentMethod p {
  color: var(--secondary-color3);
  font-size: 1.6rem;
  padding: 10px 25px;
}
.wc_payment_methods .payment_box .form-row,
.wc_payment_methods .woocommerce-PaymentMethod .form-row,
.payment_methods .payment_box .form-row,
.payment_methods .woocommerce-PaymentMethod .form-row {
  padding: 0;
}
.wc_payment_methods .payment_box label,
.wc_payment_methods .woocommerce-PaymentMethod label,
.payment_methods .payment_box label,
.payment_methods .woocommerce-PaymentMethod label {
  color: var(--label-color);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.wc_payment_methods .payment_box label:before, .wc_payment_methods .payment_box label:after,
.wc_payment_methods .woocommerce-PaymentMethod label:before,
.wc_payment_methods .woocommerce-PaymentMethod label:after,
.payment_methods .payment_box label:before,
.payment_methods .payment_box label:after,
.payment_methods .woocommerce-PaymentMethod label:before,
.payment_methods .woocommerce-PaymentMethod label:after {
  content: none;
}
.wc_payment_methods .payment_box input,
.wc_payment_methods .woocommerce-PaymentMethod input,
.payment_methods .payment_box input,
.payment_methods .woocommerce-PaymentMethod input {
  height: max-content;
  position: relative;
  visibility: visible !important;
}
.wc_payment_methods .payment_box input.input-text,
.wc_payment_methods .woocommerce-PaymentMethod input.input-text,
.payment_methods .payment_box input.input-text,
.payment_methods .woocommerce-PaymentMethod input.input-text {
  font-size: 1.6rem !important;
  padding: 10px 25px !important;
}

/**
 * WooCommerce: Memberships
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
/**
 * WooCommerce: Mix and Match
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
.mnm_table .product-thumbnail,
.mnm_table .product-name,
.mnm_table .product-quantity,
.mnm_table .container-quantity {
  padding: ms(-2) ms(-1) !important;
}
.mnm_table .mnm_item img {
  max-width: 100%;
}
.mnm_table .product-name {
  vertical-align: middle;
}

.cart .mnm_table_item .product-thumbnail img,
.shop_table .mnm_table_item .product-thumbnail img {
  max-width: ms(5) !important;
}
.cart .mnm_table_item .mnm_table_item_indent,
.shop_table .mnm_table_item .mnm_table_item_indent {
  padding-left: 0;
}
.cart .mnm_table_item .product-name,
.cart .mnm_table_item .product-price,
.cart .mnm_table_item .product-quantity,
.shop_table .mnm_table_item .product-name,
.shop_table .mnm_table_item .product-price,
.shop_table .mnm_table_item .product-quantity {
  font-size: 1em;
}

.mnm_image {
  max-width: ms(6);
}

/**
 * WooCommerce: Notification boxes (coupons, notices etc)
 */
:root {
  --wc-notification-box-margin-b: 1rem;
  --wc-notification-box-padding-lr: 4.8rem;
  --wc-notification-box-padding-tb: 1rem;
}
@media (max-width: 1112px) {
  :root {
    --wc-notification-box-margin-b: 3rem;
    --wc-notification-box-padding-lr: 4rem;
    --wc-notification-box-padding-tb: 2rem;
  }
}
@media (max-width: 767px) {
  :root {
    --wc-notification-box-margin-b: 2.5rem;
    --wc-notification-box-padding-lr: 3rem;
    --wc-notification-box-padding-tb: 2rem;
  }
}

@media (min-width: 576px) {
  .woocommerce-form-coupon-toggle .woocommerce-info:before {
    background-image: url(../../images/woocommerce/icon-coupon.svg);
    background-size: cover;
    content: "";
    display: block;
    height: 21px;
    width: 31px;
  }
}
.woocommerce-form-coupon {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: var(--wc-notification-box-margin-b);
}
.woocommerce-form-coupon > p:first-child {
  flex: 0 0 100%;
}
.woocommerce-form-coupon .form-row-first {
  margin-right: 1.25em;
  width: 223px;
}

.woocommerce-notices-wrapper {
  bottom: 40px;
  padding-right: 40px;
  position: fixed;
  right: 0;
  transition: transform 400ms ease-out, opacity 400ms ease-out;
  z-index: 999;
}
.woocommerce-notices-wrapper > *:last-child {
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .woocommerce-notices-wrapper {
    left: 0;
    padding: 0 20px;
  }
}
.woocommerce-notices-wrapper:empty {
  border: none !important;
}
.woocommerce-notices-wrapper:hover:before {
  background-color: var(--secondary-color1);
  cursor: pointer;
}
.woocommerce-notices-wrapper > [class^=woocommerce-]:before {
  background-color: white;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.78807 11.9099L6 8.12183L2.21193 11.9099C1.79524 12.3266 1.11339 12.3266 0.696699 11.9099C0.280011 11.4932 0.280012 10.8114 0.6967 10.3947L4.48477 6.6066L0.696699 2.81853C0.280011 2.40184 0.280011 1.71999 0.696699 1.3033C1.11339 0.886613 1.79524 0.886613 2.21193 1.3033L6 5.09137L9.78807 1.3033C10.2048 0.886613 10.8866 0.886613 11.3033 1.3033C11.72 1.71999 11.72 2.40184 11.3033 2.81853L7.51523 6.6066L11.3033 10.3947C11.72 10.8114 11.72 11.4932 11.3033 11.9099C10.8866 12.3266 10.2048 12.3266 9.78807 11.9099Z' fill='currentColor'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 15px;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  content: "";
  display: block;
  height: 50px;
  padding: 12px;
  position: absolute;
  right: 15px;
  top: -20px;
  width: 50px;
}
@media (max-width: 767px) {
  .woocommerce-notices-wrapper > [class^=woocommerce-]:before {
    right: 5px;
  }
}
.woocommerce-notices-wrapper > * {
  align-items: center;
  background: var(--secondary-color1);
  border: 1px solid var(--border-color);
  border-radius: 5px;
  display: flex;
  margin-bottom: var(--wc-notification-box-margin-b);
  padding: var(--wc-notification-box-padding-tb) var(--wc-notification-box-padding-lr);
}
.woocommerce-notices-wrapper.hide {
  height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: scale(0.7);
}

.woocommerce-error li {
  align-items: center;
  display: flex;
  width: 100%;
  justify-content: space-between;
}

.single-product .woocommerce-message {
  justify-content: space-between;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
  align-items: center;
  background: var(--secondary-color1);
  border: 1px solid var(--border-color);
  border-radius: 5px;
  color: var(--body-text-color);
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: var(--wc-notification-box-margin-b);
  padding: var(--wc-notification-box-padding-tb) var(--wc-notification-box-padding-lr);
  width: 100%;
}
@media (max-width: 1112px) {
  .woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
    font-size: 16px;
  }
}
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a,
.woocommerce-noreviews a,
p.no-comments a {
  text-decoration: underline;
  display: inline-block;
  margin: 0 5px;
}
.woocommerce-message a.regular-link,
.woocommerce-info a.regular-link,
.woocommerce-error a.regular-link,
.woocommerce-noreviews a.regular-link,
p.no-comments a.regular-link {
  text-decoration: underline;
  display: inline;
  margin: 0 -1px;
}
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-noreviews .button,
p.no-comments .button {
  margin-right: 0;
  order: 1;
  text-decoration: none;
}
@media (max-width: 1112px) {
  .woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-noreviews .button,
p.no-comments .button {
    margin-left: 0;
    margin-top: 10px;
  }
}
.woocommerce-message strong,
.woocommerce-info strong,
.woocommerce-error strong,
.woocommerce-noreviews strong,
p.no-comments strong {
  margin-right: 5px;
}

ul.woocommerce-error {
  flex-direction: column;
}

.woocommerce-checkout .woocommerce-notices-wrapper {
  border: 1px solid var(--border-color);
  border-radius: 5px;
  max-width: calc(100% - 40px);
}
@media (max-width: 767px) {
  .woocommerce-checkout .woocommerce-notices-wrapper {
    margin: 0 auto;
  }
}
@media (min-width: 768px) {
  .woocommerce-checkout .woocommerce-notices-wrapper {
    max-width: 50%;
  }
}
.woocommerce-checkout .woocommerce-notices-wrapper > *:last-child {
  margin-bottom: 0;
}
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-noreviews {
  border: none;
  margin: 0;
  max-width: max-content;
  padding: 2rem 3rem;
}
.woocommerce-checkout .woocommerce-message li,
.woocommerce-checkout .woocommerce-info li,
.woocommerce-checkout .woocommerce-error li,
.woocommerce-checkout .woocommerce-noreviews li {
  font-size: 1.6rem !important;
}
.woocommerce-checkout .woocommerce-message li ul,
.woocommerce-checkout .woocommerce-info li ul,
.woocommerce-checkout .woocommerce-error li ul,
.woocommerce-checkout .woocommerce-noreviews li ul {
  padding: 0 !important;
}

/**
 * Woocommerce: Single product gallery section
 */
:root {
  --wc-gallery-thumb-items: 6;
  --wc-gallery-thumb-width: calc(100% / 8);
  --wc-gallery-thumb-aspect-ratio: 1/1;
  --wc-gallery-thumb-border: 1px solid;
  --wc-gallery-thumb-border-color: var(--primary-color2);
  --wc-gallery-thumb-icon-size: 20px;
}
@media (max-width: 1112px) {
  :root {
    --wc-gallery-thumb-items: 4;
    --wc-gallery-thumb-width: calc(100% / 6);
  }
}
@media (max-width: 767px) {
  :root {
    --wc-gallery-thumb-items: 3;
    --wc-gallery-thumb-width: calc(100% / 5);
  }
}

.woocommerce-product-gallery {
  position: relative;
}
.woocommerce-product-gallery .swiper-wrapper {
  align-items: center;
}
.woocommerce-product-gallery .zoomImg {
  background-color: #fff;
}
.woocommerce-product-gallery__image {
  height: auto;
  text-align: center;
}
.woocommerce-product-gallery__nav {
  user-select: none;
}
.woocommerce-product-gallery__nav .swiper-wrapper {
  margin: 0;
}
.woocommerce-product-gallery__nav .woocommerce-product-gallery__image {
  display: inline-flex;
  align-items: center;
  border: var(--wc-gallery-thumb-border) transparent;
  aspect-ratio: var(--wc-gallery-thumb-aspect-ratio);
  cursor: pointer;
}
.woocommerce-product-gallery__nav .woocommerce-product-gallery__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.woocommerce-product-gallery__nav .swiper-slide-thumb-active {
  border-color: var(--wc-gallery-thumb-border-color);
}
.woocommerce-product-gallery__nav .swiper-button-next,
.woocommerce-product-gallery__nav .swiper-button-prev {
  margin: 0;
  color: var(--wc-gallery-thumb-border-color);
  background-color: #fff;
  border: 1px solid var(--wc-gallery-thumb-border-color);
  outline: none;
}
.woocommerce-product-gallery__nav .swiper-button-next::after,
.woocommerce-product-gallery__nav .swiper-button-prev::after {
  font-weight: bold;
  font-size: var(--wc-gallery-thumb-icon-size);
}

.horizontal .woocommerce-product-gallery__nav {
  padding-left: var(--wc-gallery-thumb-width);
  padding-right: var(--wc-gallery-thumb-width);
}
.horizontal .woocommerce-product-gallery__nav .woocommerce-product-gallery__image {
  max-width: calc(100% / var(--wc-gallery-thumb-items)) !important;
}
.horizontal .woocommerce-product-gallery__nav .swiper-button-next,
.horizontal .woocommerce-product-gallery__nav .swiper-button-prev {
  float: none;
  width: calc(var(--wc-gallery-thumb-width) - 10px);
  height: 100%;
  top: 50%;
  transform: translateY(-50%);
}
.horizontal .woocommerce-product-gallery__nav .swiper-button-next {
  right: 0;
}
.horizontal .woocommerce-product-gallery__nav .swiper-button-prev {
  left: 0;
}

.vertical {
  --wc-gallery-thumb-width: 75px;
  --wc-gallery-thumb-height: 75px;
  --wc-gallery-thumb-total-items: calc(
    var(--wc-gallery-thumb-items) + 2
  );
}
.vertical.woocommerce-product-gallery {
  height: calc(var(--wc-gallery-thumb-height) * var(--wc-gallery-thumb-total-items));
  display: flex;
  flex-direction: row-reverse;
}
.vertical .woocommerce-product-gallery__nav {
  width: var(--wc-gallery-thumb-width);
  flex: 0 0 var(--wc-gallery-thumb-width);
  padding-top: var(--wc-gallery-thumb-width);
  padding-bottom: var(--wc-gallery-thumb-width);
  margin-right: 20px;
}
.vertical .woocommerce-product-gallery__nav .woocommerce-product-gallery__image {
  max-height: calc(100% / var(--wc-gallery-thumb-items)) !important;
}
.vertical .woocommerce-product-gallery__nav .swiper-button-next,
.vertical .woocommerce-product-gallery__nav .swiper-button-prev {
  width: 100%;
  height: calc(var(--wc-gallery-thumb-height) - 10px);
  left: initial;
  right: initial;
}
.vertical .woocommerce-product-gallery__nav .swiper-button-next:after,
.vertical .woocommerce-product-gallery__nav .swiper-button-prev:after {
  transform: rotate(90deg);
}
.vertical .woocommerce-product-gallery__nav .swiper-button-next {
  top: initial;
  bottom: 0;
}
.vertical .woocommerce-product-gallery__nav .swiper-button-prev {
  top: 0;
}

/**
 * WooCommerce: Photography
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
.woocommerce ul.products li.product-type-photography,
.woocommerce-page ul.products li.product-type-photography {
  text-align: left;
}
.woocommerce ul.products li.product-type-photography::before, .woocommerce ul.products li.product-type-photography::after,
.woocommerce-page ul.products li.product-type-photography::before,
.woocommerce-page ul.products li.product-type-photography::after {
  content: "";
  display: table;
}
.woocommerce ul.products li.product-type-photography::after,
.woocommerce-page ul.products li.product-type-photography::after {
  clear: both;
}
.woocommerce ul.products li.product-type-photography .photography-image,
.woocommerce ul.products li.product-type-photography .photography-content,
.woocommerce-page ul.products li.product-type-photography .photography-image,
.woocommerce-page ul.products li.product-type-photography .photography-content {
  float: none;
  width: 100%;
}
.woocommerce ul.products li.product-type-photography .photography-image img,
.woocommerce-page ul.products li.product-type-photography .photography-image img {
  width: 100%;
}
.woocommerce ul.products li.product-type-photography .photography-sku,
.woocommerce-page ul.products li.product-type-photography .photography-sku {
  border-bottom: 1px solid;
}
.woocommerce ul.products li.product-type-photography .sku,
.woocommerce-page ul.products li.product-type-photography .sku {
  font-weight: 600;
}
.woocommerce .photography-products .tools,
.woocommerce-page .photography-products .tools {
  margin-bottom: ms(5);
  background-color: rgba(0, 0, 0, 0.025);
  padding: 1em 1em 1em ms(3);
  border: 0;
}

/**
 * WooCommerce: Product Recommendations
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
/**
 * Base
 */
.wc-prl-recommendations h2 {
  font-size: ms(3);
}
.wc-prl-recommendations.wc-prl-page-product_details.wc-prl-location-before_tabs h2, .wc-prl-recommendations.wc-prl-page-product_details.wc-prl-location-after_tabs h2 {
  margin-bottom: ms(1);
  text-align: center;
}
.wc-prl-recommendations.wc-prl-page-product_details.wc-prl-location-after_summary {
  margin-top: ms(2);
}
.wc-prl-recommendations.wc-prl-location-after_pay_button {
  margin-top: ms(2);
}
.wc-prl-recommendations.wc-prl-page-checkout.wc-prl-location-order_review {
  margin-top: ms(5);
}

/**
 * WooCommerce: Product Reviews Pro
 * TODO: Refactor this
 * TODO: Do we need plugin for this?


 * TODO: We should delete this!!!
 */
/**
 * WooCommerce: Quick View
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
.quick-view-button span {
  display: none;
}

div.quick-view div.quick-view-image a.button {
  border: 0;
  background: none;
  background-color: #43454b;
  border-color: #43454b;
  color: #fff;
  cursor: pointer; /* Improves usability and consistency of cursor style between image-type 'input' and others */
  padding: ms(-2) ms(2);
  text-decoration: none;
  font-weight: 600;
  text-shadow: none;
  display: inline-block;
  outline: none;
  -webkit-appearance: none;
  border-radius: 0;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.3);
  line-height: inherit;
  display: block;
}

/**
 * Woocommerce: Related products
 */
:root {
  --wc-related-product-title: 2.8rem;
  --wc-related-product-col: 5;
  --wc-related-product-gap-vertical: 30px;
  --wc-related-product-gap-horizontal: 48px;
}
@media (max-width: 1440px) {
  :root {
    --wc-related-product-col: 4;
    --wc-related-product-gap-horizontal: 30px;
  }
}
@media (max-width: 1112px) {
  :root {
    --wc-related-product-gap-vertical: 20px;
    --wc-related-product-gap-horizontal: 20px;
    --wc-related-product-col: 3;
  }
}
@media (max-width: 575px) {
  :root {
    --wc-related-product-gap-vertical: 15px;
    --wc-related-product-gap-horizontal: 15px;
    --wc-related-product-col: 2;
  }
}

.upsells.products > h2,
.related.products > h2 {
  margin-bottom: 1.5em;
  font-weight: 500;
  font-size: var(--wc-related-product-title);
  line-height: 1.4;
  text-align: center;
  text-transform: capitalize;
  color: var(--primary-color1);
}
.upsells.products ul.products,
.related.products ul.products {
  grid-template: auto/repeat(var(--wc-related-product-col), minmax(0, 1fr));
  row-gap: var(--wc-related-product-gap-vertical);
  column-gap: var(--wc-related-product-gap-horizontal);
}
.upsells.products ul.products li.product,
.related.products ul.products li.product {
  text-align: center;
}
.upsells.products ul.products li.product img,
.related.products ul.products li.product img {
  height: auto;
}
.upsells.products ul.products .woocommerce-loop-product__title,
.related.products ul.products .woocommerce-loop-product__title {
  font-weight: 500;
  font-size: var(--smaller-text-size);
  line-height: 1.4;
}
.upsells.products ul.products .price,
.related.products ul.products .price {
  font-weight: 500;
  font-size: var(--smaller-text-size);
  line-height: 1.4;
}
.upsells.products ul.products .archive-short-description,
.related.products ul.products .archive-short-description {
  display: none;
}
.upsells.products ul.products .star-rating,
.related.products ul.products .star-rating {
  justify-content: center;
}
.upsells.products ul.products .tinvwl_add_to_wishlist_button,
.related.products ul.products .tinvwl_add_to_wishlist_button {
  margin-top: 0;
}

/**
 * Woocommerce: Reviews
 * TODO: Refactor this
 */
:root {
  --wc-review-wrapper: 844px;
  --wc-review-title-font-size: 2.8rem;
  --wc-review-comment-padding: 2.4rem 0;
  --wc-review-comment-border: 1px solid var(--border-color);
  --wc-review-avatar: 72px;
  --wc-review-avatar-margin: 3.6rem;
  --wc-review-avatar-border-radius: 50%;
  --wc-review-icon-size: 20px;
  --wc-review-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 15'%3E%3Cpath d='M8 12.0576L12.944 15L11.636 9.45079L16 5.71895L10.2472 5.23184L8 0L5.7528 5.23184L0 5.71895L4.364 9.45079L3.056 15L8 12.0576Z' /%3E%3C/svg%3E");
}

.woocommerce-Reviews {
  width: var(--wc-review-wrapper);
  max-width: 100%;
  margin: 0 auto;
}

#comments {
  margin-bottom: var(--wc-vertical-space);
}
#comments .woocommerce-Reviews-title {
  font-size: var(--wc-review-title-font-size);
  line-height: 1.4;
  text-align: center;
}
#comments .commentlist {
  margin-bottom: 1em;
  border-top: var(--wc-review-comment-border);
}
#comments .commentlist > li {
  border-bottom: var(--wc-review-comment-border);
}
#comments .comment_container {
  display: flex;
  padding: var(--wc-review-comment-padding);
}
#comments .comment_container .avatar {
  width: var(--wc-review-avatar);
  height: var(--wc-review-avatar);
  margin: 0 var(--wc-review-avatar-margin) var(--wc-review-avatar-margin) 0;
  border-radius: var(--wc-review-avatar-border-radius);
}
#comments .comment_container .comment-text {
  flex: 1;
  padding-top: 10px;
  padding-right: calc(var(--wc-review-avatar) + var(--wc-review-avatar-margin));
}
#comments .comment_container .star-rating {
  display: flex;
}
@media (min-width: 576px) {
  #comments .comment_container .star-rating {
    float: right;
  }
}
#comments .comment_container .meta {
  margin-bottom: 1.3em;
}
#comments .comment_container .description {
  font-weight: var(--base-text-font-weight);
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--primary-color2);
}
#comments .comment_container .description p:last-child {
  margin: 0;
}
#comments .woocommerce-review__author {
  display: block;
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.3;
  color: var(--primary-color1);
}
#comments .woocommerce-review__dash {
  display: none;
}
#comments .woocommerce-review__published-date {
  font-weight: var(--base-text-font-weight);
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--primary-color1);
}

.comment-respond label {
  font-weight: var(--base-text-font-weight);
  font-size: 1.6rem;
  line-height: 1.5;
  color: var(--primary-color1);
}
.comment-respond .comment-reply-title {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 1.3;
  color: var(--primary-color1);
}
.comment-respond .comment-form-rating {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.stars {
  display: inline-block;
}
.stars > span {
  display: flex;
}
.stars a {
  width: var(--wc-review-icon-size);
  height: var(--wc-review-icon-size);
  font-size: 0;
  color: transparent;
  background-color: var(--primary-color2);
  -webkit-mask-image: var(--wc-review-icon);
  mask-image: var(--wc-review-icon);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transition: background-color var(--base-transition);
}
.stars a,
.stars a:hover ~ a, .stars.selected a.active ~ a {
  background: var(--primary-color2);
}
.stars:hover a,
.stars a:hover, .stars.selected a:not(.active), .stars.selected a.active {
  background-color: var(--primary-color1);
}

.star-rating {
  --wc-review-icon-size: 16px;
  display: inline-block;
}
.star-rating__wrapper {
  display: flex;
  position: relative;
}
.star-rating__wrapper .star {
  width: var(--wc-review-icon-size);
  height: var(--wc-review-icon-size);
  font-size: 0;
  color: transparent;
  background-color: var(--primary-color2);
  mask-image: var(--wc-review-icon);
  -webkit-mask-image: var(--wc-review-icon);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  transition: background-color var(--base-transition);
}
.star-rating__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: var(--primary-color1);
  mask-image: var(--wc-review-icon);
  -webkit-mask-image: var(--wc-review-icon);
  mask-repeat: repeat-x;
  -webkit-mask-repeat: repeat-x;
  mask-size: var(--wc-review-icon-size) auto;
  -webkit-mask-size: var(--wc-review-icon-size) auto;
  content: "";
}

/**
 * 
 */
.shop_table .woocommerce-shipping-methods li {
  display: flex;
  align-items: center;
  text-align: right;
  justify-content: flex-end;
  width: 100%;
}
.shop_table .woocommerce-shipping-methods li label {
  width: auto;
  margin: 0 0 0 10px;
}

.woocommerce-shipping-fields .shipping_address .form-row {
  margin-bottom: 20px;
}

/**
 * Woocommerce: Shipping bar
 */
:root {
  --wc-shipping-top: 300px;
  --wc-shipping-width: 220px;
  --wc-shipping-item-gap: 4rem;
  --wc-shipping-pad-t: 1.6rem;
  --wc-shipping-pad-lr: 2.3rem;
  --wc-shipping-pad-b: 1rem;
  --wc-shipping-title-size: 1.4rem;
  --wc-shipping-title-weight: 600;
  --wc-shipping-text-size: 1.1rem;
  --wc-shipping-icon-size: 34px;
  --wc-shipping-text-color: var(--primary-color1);
  --wc-shipping-background: var(--secondary-color1);
  --wc-shipping-border-color: #e3e3e3;
  --wc-shipping-box-shadow: -4px 4px 14px 4px rgba(0, 0, 0, 0.2);
}
@media (max-width: 1280px) {
  :root {
    --wc-shipping-pad-lr: 1.8rem;
    --wc-shipping-item-gap: 1.8rem;
  }
}

.shipping-bar {
  position: relative;
  width: 100%;
  margin-bottom: 1em;
}
.shipping-bar::before, .shipping-bar::after {
  display: block;
  width: 100%;
  height: 0;
  left: 0;
  border-top: 1px dashed #c4c4c4;
  content: "";
}
.shipping-bar__wrapper {
  display: flex;
  justify-content: space-between;
  gap: var(--wc-shipping-item-gap);
  padding: var(--wc-shipping-pad-t) var(--wc-shipping-pad-lr) var(--wc-shipping-pad-b);
  margin: 5px 0;
  background-color: var(--wc-shipping-background);
  border: 1px solid var(--wc-shipping-border-color);
}
.shipping-bar__item {
  position: relative;
  flex: 1;
}
.shipping-bar__item:not(:last-child):after {
  position: absolute;
  width: 1px;
  height: 100%;
  top: 0;
  right: calc(var(--wc-shipping-item-gap) / -2);
  background-color: var(--wc-shipping-border-color);
  content: "";
}
.shipping-bar__item svg,
.shipping-bar__item img {
  display: inline-flex;
  flex: 0 0 var(--wc-shipping-icon-size);
  max-width: var(--wc-shipping-icon-size) !important;
}
.shipping-bar__body {
  margin-top: 0.3rem;
}
.shipping-bar__body_title {
  margin-bottom: 0.3em;
  font-size: var(--wc-shipping-title-size);
  font-weight: var(--wc-shipping-title-weight);
}
.shipping-bar__body_text {
  margin: 0;
  font-size: var(--wc-shipping-text-size);
}
.shipping-bar__body p {
  line-height: 1.3;
  color: var(--wc-shipping-text-color);
}
@media (min-width: 1281px) {
  .shipping-bar.sticky {
    --wc-shipping-width: 185px;
    --wc-shipping-item-gap: 1.8rem;
    --wc-shipping-pad-lr: 2.4rem;
    --wc-shipping-expandable-position: calc(
      var(--wc-shipping-icon-size) + var(--wc-shipping-pad-lr) * 2 -
        var(--wc-shipping-width)
    );
    --wc-shipping-expandable-body-offset: 5px;
    --wc-shipping-icon-size: 30px;
    position: fixed;
    width: var(--wc-shipping-width);
    top: var(--wc-shipping-top);
    box-shadow: var(--wc-shipping-box-shadow);
    z-index: 999;
  }
  .shipping-bar.sticky::before, .shipping-bar.sticky::after {
    display: none;
  }
  .shipping-bar.sticky .shipping-bar__wrapper {
    flex-direction: column;
    margin: 0;
  }
  .shipping-bar.sticky .shipping-bar__item {
    display: flex;
    align-items: center;
    width: 100%;
  }
  .shipping-bar.sticky .shipping-bar__item:after {
    width: 100%;
    height: 1px;
    top: initial;
    bottom: calc(var(--wc-shipping-item-gap) / -2);
  }
  .shipping-bar.sticky .shipping-bar__body {
    position: relative;
    margin-top: 0;
  }
  .shipping-bar.sticky .shipping-bar__body_title {
    margin-bottom: 0;
  }
  .shipping-bar.sticky[data-position=right] {
    right: 0;
    transition: right var(--base-transition) ease;
  }
}
@media (min-width: 1281px) and (max-width: 1750px) {
  .shipping-bar.sticky[data-position=right] {
    right: var(--wc-shipping-expandable-position);
  }
  .shipping-bar.sticky[data-position=right]:hover {
    right: 0;
  }
  .shipping-bar.sticky[data-position=right] .shipping-bar__body {
    left: var(--wc-shipping-expandable-body-offset);
  }
}
@media (min-width: 1281px) {
  .shipping-bar.sticky[data-position=right] .shipping-bar__item svg,
.shipping-bar.sticky[data-position=right] .shipping-bar__item img {
    margin-right: var(--wc-shipping-pad-lr);
  }
  .shipping-bar.sticky[data-position=right] .shipping-bar__item:after {
    left: 0;
  }
  .shipping-bar.sticky[data-position=right] .shipping-bar__body {
    margin-left: calc(-1 * var(--wc-shipping-expandable-body-offset));
  }
}
@media (min-width: 1281px) {
  .shipping-bar.sticky[data-position=left] {
    left: 0;
    transition: left var(--base-transition) ease;
  }
}
@media (min-width: 1281px) and (max-width: 1750px) {
  .shipping-bar.sticky[data-position=left] {
    left: var(--wc-shipping-expandable-position);
  }
  .shipping-bar.sticky[data-position=left]:hover {
    left: 0;
  }
  .shipping-bar.sticky[data-position=left] .shipping-bar__body {
    right: var(--wc-shipping-expandable-body-offset);
  }
}
@media (min-width: 1281px) {
  .shipping-bar.sticky[data-position=left] .shipping-bar__item {
    flex-direction: row-reverse;
    text-align: right;
  }
  .shipping-bar.sticky[data-position=left] .shipping-bar__item svg,
.shipping-bar.sticky[data-position=left] .shipping-bar__item img {
    margin-left: var(--wc-shipping-pad-lr);
  }
  .shipping-bar.sticky[data-position=left] .shipping-bar__item:after {
    right: 0;
  }
  .shipping-bar.sticky[data-position=left] .shipping-bar__body {
    margin-right: calc(-1 * var(--wc-shipping-expandable-body-offset));
  }
}
@media (min-width: 1281px) {
  .shipping-bar.expandable {
    align-items: center;
  }
  .shipping-bar.expandable .shipping-bar__item:after {
    width: var(--wc-shipping-icon-size);
  }
  .shipping-bar.expandable[data-position=right] {
    right: var(--wc-shipping-expandable-position);
  }
  .shipping-bar.expandable[data-position=right]:hover {
    right: 0;
  }
  .shipping-bar.expandable[data-position=right]:hover .shipping-bar__item::after {
    width: 100%;
  }
  .shipping-bar.expandable[data-position=right] .shipping-bar__body {
    left: var(--wc-shipping-expandable-body-offset);
  }
  .shipping-bar.expandable[data-position=left] {
    left: var(--wc-shipping-expandable-position);
  }
  .shipping-bar.expandable[data-position=left]:hover {
    left: 0;
  }
  .shipping-bar.expandable[data-position=left]:hover .shipping-bar__item::after {
    width: 100%;
  }
  .shipping-bar.expandable[data-position=left] .shipping-bar__body {
    right: var(--wc-shipping-expandable-body-offset);
  }
}

/**
 * WooCommerce: Sidebar Widgets (Filters and Categories)
 */
:root {
  --sidebar-item-padding-tb: 8px;
  --sidebar-item-padding-lr: 0;
  --sidebar-item-text-size: 1.6rem;
  --sidebar-item-color: var(--body-text-color);
  --sidebar-item-border: 0;
  --sidebar-item-border-color: transparent;
  --filter-search-btn-size: 50px;
  --filter-search-btn-icon-size: 16px;
  --filter-price-handle-size: 12px;
  --filter-price-bar-height: 3px;
  --filter-price-color: var(--primary-color1);
  --product-categories-img-size: 40px;
}

.woocommerce-sidebar-widgets > li {
  margin-bottom: var(--wc-vertical-space);
}
.woocommerce-sidebar-widgets > li ul li.active > a {
  color: var(--body-text-color);
}
.woocommerce-sidebar-widgets > li ul a {
  padding: var(--sidebar-item-padding-tb) var(--sidebar-item-padding-lr);
  font-size: var(--sidebar-item-text-size);
  font-weight: var(--base-text-font-weight);
  line-height: 1.3;
  color: var(--sidebar-item-color);
}
.woocommerce-sidebar-widgets > li ul .count {
  font-size: var(--sidebar-item-text-size);
}
.woocommerce-sidebar-widgets ul > li {
  display: flex;
  justify-content: space-between;
  border-bottom: var(--sidebar-item-border) solid var(--sidebar-item-border-color);
}
.woocommerce-sidebar-widgets ul > li.cat-parent, .woocommerce-sidebar-widgets ul > li.menu-item-has-children {
  position: relative;
  /* the new toggle element wrapper, which is added via jQuery */
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle {
  display: inline-block;
  position: absolute;
  top: 23px;
  right: 0;
  bottom: auto;
  left: auto;
  margin: auto 0;
  cursor: pointer;
  text-align: center;
  transform: rotate(-90deg);
  transition: all 0.4s ease;
  width: 20px;
  height: 20px;
  background: var(--primary-color1);
  line-height: 20px;
  border-radius: 50%;
  color: #fff;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle.cat-popped, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle.cat-popped {
  transform: rotate(0deg);
  background: var(--primary-color2);
  color: #fff;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle.cat-popped:before, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle.cat-popped:before {
  content: "–";
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle.cat-popped ~ ul.children, .woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle.cat-popped ~ ul.sub-menu, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle.cat-popped ~ ul.children, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle.cat-popped ~ ul.sub-menu {
  max-height: 100%;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle:before, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle:before {
  font-weight: normal;
  font-style: normal;
  font-size: var(--larger-text-size);
  text-transform: none;
  speak: none;
  content: "+";
  line-height: 17px;
  width: 20px;
  height: 20px;
  text-align: center;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.children, .woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.sub-menu, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.children, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.sub-menu {
  overflow: hidden;
  max-height: 0;
  transition: all 0.4s ease;
  padding-left: 20px;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.children li, .woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.sub-menu li, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.children li, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.sub-menu li {
  border: 0;
}
.woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.children a, .woocommerce-sidebar-widgets ul > li.cat-parent .cat-toggle ~ ul.sub-menu a, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.children a, .woocommerce-sidebar-widgets ul > li.menu-item-has-children .cat-toggle ~ ul.sub-menu a {
  font-size: var(--smaller-text-size);
  border: 0;
}

.woocommerce-sidebar-widgets .wc-block-product-search__fields {
  position: relative;
}
.woocommerce-sidebar-widgets .wc-block-product-search__field {
  line-height: 1;
}
.woocommerce-sidebar-widgets .wc-block-product-search__button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  width: var(--filter-search-btn-size);
  top: 0;
  right: 0;
  bottom: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  outline: none;
}
.woocommerce-sidebar-widgets .wc-block-product-search__button svg {
  display: none;
}
.woocommerce-sidebar-widgets .wc-block-product-search__button:before {
  display: block;
  width: var(--filter-search-btn-icon-size);
  height: var(--filter-search-btn-icon-size);
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.1415 10.2842L12.0962 10.3523L12.1541 10.4102L15.5388 13.7949C16.0204 14.2765 16.0204 15.0572 15.5388 15.5388L15.5387 15.5388C15.0578 16.0204 14.2758 16.0204 13.7949 15.5388L13.7949 15.5388L10.4102 12.1541L10.3523 12.0962L10.2842 12.1415C9.24588 12.8304 8.00299 13.2335 6.66674 13.2335C3.04593 13.2335 0.1 10.2875 0.1 6.66674C0.1 3.04593 3.04593 0.1 6.66674 0.1C10.2875 0.1 13.2335 3.04593 13.2335 6.66674C13.2335 8.00299 12.8304 9.24588 12.1415 10.2842ZM6.66674 1.90002C4.03815 1.90002 1.90002 4.03815 1.90002 6.66674C1.90002 9.29532 4.03815 11.4335 6.66674 11.4335C9.29532 11.4335 11.4335 9.29532 11.4335 6.66674C11.4335 4.03815 9.29532 1.90002 6.66674 1.90002Z' fill='currentColor' stroke='white' stroke-width='0.2'/%3E%3C/svg%3E%0A");
  content: "";
}
.woocommerce-sidebar-widgets .widget_price_filter .price_slider {
  margin-bottom: 1em;
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider {
  position: relative;
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider:before {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: var(--filter-price-color);
  opacity: 0.5;
  content: "";
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider .ui-slider-handle {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: var(--filter-price-handle-size);
  height: var(--filter-price-handle-size);
  border-radius: 50%;
  cursor: ew-resize;
  background-color: var(--filter-price-color);
  box-sizing: border-box;
  transform: translateY(-50%);
  opacity: 1;
  border: 0;
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider .ui-slider-handle:last-child {
  margin-left: calc(var(--filter-price-handle-size) * -1);
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider .ui-slider-handle:hover, .woocommerce-sidebar-widgets .widget_price_filter .ui-slider .ui-slider-handle.ui-state-active {
  box-shadow: 0 0 0 0.236em rgba(0, 0, 0, 0.1);
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider .ui-slider-range {
  position: absolute;
  z-index: 1;
  display: block;
  border: 0;
  background-color: var(--filter-price-color);
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider-horizontal {
  height: var(--filter-price-bar-height);
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider-horizontal .ui-slider-range {
  top: 0;
  height: 100%;
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider-horizontal .ui-slider-range-min {
  left: -1px;
}
.woocommerce-sidebar-widgets .widget_price_filter .ui-slider-horizontal .ui-slider-range-max {
  right: -1px;
}
.woocommerce-sidebar-widgets .widget_price_filter .price_slider_amount {
  text-align: right;
  line-height: 2.4;
}
.woocommerce-sidebar-widgets .widget_price_filter .price_slider_amount .button {
  float: left;
  line-height: 1.8;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .woocommerce-sidebar-widgets .widget_price_filter .price_slider_amount {
    text-align: left;
  }
  .woocommerce-sidebar-widgets .widget_price_filter .price_slider_amount .button {
    display: block;
    float: none;
    width: 100%;
  }
}
.woocommerce-sidebar-widgets .widget_price_filter .clear {
  clear: both;
}
.woocommerce-sidebar-widgets .widget_rating_filter li > a {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
}
.woocommerce-sidebar-widgets .widget_top_rated_products .product_list_widget > li {
  display: block;
  max-width: 100%;
  text-align: center;
  padding: 0;
}
@media (min-width: 1112px) {
  .woocommerce-sidebar-widgets .widget_top_rated_products .product_list_widget > li {
    width: 160px;
  }
}
.woocommerce-sidebar-widgets .widget_top_rated_products .product_list_widget > li:not(:last-child) {
  margin-bottom: 1em;
}
.woocommerce-sidebar-widgets .widget_top_rated_products .product_list_widget > li a {
  display: block;
}
.woocommerce-sidebar-widgets .widget_top_rated_products .attachment-woocommerce_thumbnail {
  margin: 0 auto;
}
.woocommerce-sidebar-widgets .widget_top_rated_products .product-title {
  display: block;
  margin-top: 0.5em;
  font-size: var(--base-text-size);
  font-weight: bold;
  color: var(--primary-color1);
}
.woocommerce-sidebar-widgets .widget_top_rated_products .star-rating {
  display: flex;
  place-content: center;
}
.woocommerce-sidebar-widgets .widget_top_rated_products .amount {
  margin-right: 0.5em;
}
.woocommerce-sidebar-widgets .widget_top_rated_products ins {
  text-decoration: none;
}
.woocommerce-sidebar-widgets .wc-block-product-categories-list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin: 4px 0 4px 0;
}
.woocommerce-sidebar-widgets .wc-block-product-categories-list-item__image {
  max-width: var(--product-categories-img-size);
  margin: 0 0.5em 0 0;
}
.woocommerce-sidebar-widgets .wc-block-product-categories-list--depth-1 {
  flex: 0 0 100%;
  padding-left: 1em;
}

.woocommerce-widget-title, .woocommerce-sidebar-widgets > li > span, .woocommerce-sidebar-widgets .wc-block-product-search label {
  display: block;
  padding: 0 0 1em;
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  text-transform: capitalize;
  color: var(--primary-color1);
}

/**
 * WooCommerce: Smart Coupons
 * TODO: Refactor this
 * TODO: Do we need plugin for this?
 */
.woocommerce .coupon-container,
.woocommerce-page .coupon-container {
  margin: 0;
  box-shadow: none;
}
.woocommerce .coupon-container.medium,
.woocommerce-page .coupon-container.medium {
  line-height: inherit;
  padding: ms(-2);
}
.woocommerce .generated_coupon_summary,
.woocommerce-page .generated_coupon_summary {
  margin: 0;
}
.woocommerce .coupon-content.small,
.woocommerce-page .coupon-content.small {
  padding: ms(-2) ms(2);
}
.woocommerce .coupon-content .coupon-expire,
.woocommerce .coupon-content .discount-info,
.woocommerce-page .coupon-content .coupon-expire,
.woocommerce-page .coupon-content .discount-info {
  font-family: inherit;
}
.woocommerce #coupons_list,
.woocommerce-page #coupons_list {
  margin-bottom: ms(3);
}

.sd-buttons-transparent.woocommerce .coupon-container, .sd-buttons-transparent.woocommerce-page .coupon-container {
  background: transparent !important;
  padding: 0;
}

@media (min-width: 767px) {
  .sc_info_box {
    width: 41.1764705882%;
    float: right;
    margin-right: 0;
    padding-left: 2.0833333333%;
    padding-right: 2.0833333333%;
  }
  .page-template-template-fullwidth-php .sc_info_box {
    width: 39.1304347826%;
    float: right;
    margin-right: 0;
    margin-left: 0;
  }
}
/**
 * WooCommerce: Social icons section
 */
:root {
  --wc-socials-color: var(--primary-color1);
  --wc-socials-color-hover: var(--primary-color3);
  --wc-socials-bg: var(--primary-color2);
  --wc-socials-radius: 5px;
}

div.addtoany_list {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
div.addtoany_list span.a2a_label {
  display: none;
}

.a2a_menu .a2a_mini_services a,
.a2a_menu .a2apage_wide a.a2a_more,
.a2a_menu .a2a_full_services a,
.a2a_menu .a2a_full_footer a {
  color: var(--wc-socials-color);
}

.shipping-icons-svg, div.addtoany_list svg, .a2a_menu svg {
  width: 100%;
  height: 100%;
  padding: 6px;
  border-radius: var(--wc-socials-radius);
  color: var(--wc-socials-color);
  background-color: var(--wc-socials-bg);
  box-sizing: border-box;
}
.shipping-icons-svg:hover, div.addtoany_list svg:hover, .a2a_menu svg:hover {
  color: var(--wc-socials-color-hover);
  transform: scale(1.05);
}
.shipping-icons-svg:hover path, div.addtoany_list svg:hover path, .a2a_menu svg:hover path {
  fill: var(--wc-socials-color-hover);
}

/**
 * Woocommerce: Tables
 * TODO: Refactor this
 */
:root {
  --wc-table-tr-padding: 0 1rem;
  --wc-table-th-padding: 2.7rem 1.5rem;
  --wc-table-td-padding: 1.7rem 1.5rem;
  --wc-table-padding-lr: 3.2rem;
  --wc-table-button-padding: 0.8rem 1.8rem;
}
@media (max-width: 1280px) {
  :root {
    --wc-table-th-padding: 2.4rem 1.3rem;
    --wc-table-td-padding: 1.4rem 1.3rem;
    --wc-table-padding-lr: 2.8rem;
  }
}

table {
  border-spacing: 0;
  width: 100%;
}

.shop_table {
  margin-bottom: 15px;
}

.woocommerce-table,
.woocommerce-orders-table,
.tinvwl-table-manage-list {
  margin-bottom: var(--wc-vertical-space);
}
.woocommerce-table th,
.woocommerce-orders-table th,
.tinvwl-table-manage-list th {
  padding: 0;
  line-height: 1.3;
}
.woocommerce-table td,
.woocommerce-orders-table td,
.tinvwl-table-manage-list td {
  padding: 0;
}
.woocommerce-table th a,
.woocommerce-table td a,
.woocommerce-orders-table th a,
.woocommerce-orders-table td a,
.tinvwl-table-manage-list th a,
.tinvwl-table-manage-list td a {
  color: inherit;
}
.woocommerce-table thead,
.woocommerce-orders-table thead,
.tinvwl-table-manage-list thead {
  background-color: var(--secondary-color1);
}
.woocommerce-table tbody .button,
.woocommerce-orders-table tbody .button,
.tinvwl-table-manage-list tbody .button {
  padding: var(--wc-table-button-padding);
  line-height: 1.4;
  font-weight: var(--base-text-font-weight);
  color: var(--btn-primary-color);
}
.woocommerce-table tbody .button:hover,
.woocommerce-orders-table tbody .button:hover,
.tinvwl-table-manage-list tbody .button:hover {
  color: var(--btn-primary-color-hover);
}

/**
 * WooCommerce: Variation Swatches
 */
:root {
  --wc-product-quantity-width: 120px;
}

table.variations {
  table-layout: fixed;
  margin: 0 0 0.5em;
}
table.variations th,
table.variations td {
  display: block;
  padding: 0;
  background-color: transparent;
}
table.variations .label label {
  font-weight: 600;
  color: var(--primary-color1);
}
table.variations .value {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1em;
}
table.variations select {
  max-width: 70%;
  vertical-align: middle;
}
table.variations a.reset_variations {
  display: inline-block;
  margin-left: 1em;
}
table.variations a.reset_variations[style="visibility: hidden;"] {
  display: none;
}

.single_variation_wrap {
  width: 100%;
}

.woocommerce-variation {
  display: flex;
  align-items: center;
}
.woocommerce-variation-price .price {
  font-size: var(--smaller-text-size);
  font-weight: 400;
  text-transform: capitalize;
  color: #fff;
}
.woocommerce-variation-price .price del {
  margin-right: 20px;
  font-weight: var(--base-text-font-weight);
  font-size: var(--larger-text-size);
  line-height: 1.5;
  text-decoration-line: line-through;
  color: var(--primary-color2);
}
.woocommerce-variation-price .price ins {
  text-decoration: none;
}
.woocommerce-variation-price .price bdi {
  font-size: clamp(16px, 1.3vw, 2.4rem);
  font-weight: 800;
}
.woocommerce-variation-price .price .subscription-details {
  position: relative;
  top: -2px;
}
.woocommerce-variation-description {
  font-size: var(--smaller-text-size);
  line-height: 1.5;
  color: #fff;
  padding-right: 10px;
}

.woocommerce-variation.enterprise .woocommerce-variation-description,
.variable-tabs .action-button {
  display: none;
}

.variable-tabs.enterprise .woocommerce-variation.enterprise .woocommerce-variation-description,
.variable-tabs.enterprise .action-button {
  display: flex;
}

.variable-tabs.enterprise .woocommerce-variation.single_variation,
.variable-tabs.enterprise .woocommerce-variation-add-to-cart {
  display: none !important;
}

.variations-table {
  margin: 0;
}
.variations-table th,
.variations-table td {
  display: block;
  padding: 0;
  background-color: transparent;
}
.variations-table td.label {
  margin-bottom: 1em;
}
.variations-table .swatch-wrapper {
  background-color: transparent;
  border: 1px solid rgba(0, 0, 0, 0.1);
  float: left;
  margin: 0 0.327em 1em 0;
}
.variations-table .swatch-wrapper img {
  opacity: 0.5;
}
.variations-table .swatch-wrapper .swatch-anchor:focus {
  outline: none;
}
.variations-table .swatch-wrapper.selected, .variations-table .swatch-wrapper:hover {
  padding: ms(-2);
  background-color: #fff;
}
.variations-table .swatch-wrapper.selected img, .variations-table .swatch-wrapper:hover img {
  opacity: 1;
}
.variations-table .swatch-wrapper.selected {
  border-width: 1px;
  border-color: rgba(0, 0, 0, 0.1);
}

a#variations_clear {
  display: block;
}

.woocommerce-variation-add-to-cart,
form.cart {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 1em;
}
.woocommerce-variation-add-to-cart .quantity,
form.cart .quantity {
  flex: 0 0 var(--wc-product-quantity-width);
  position: relative;
}
.woocommerce-variation-add-to-cart .quantity input,
form.cart .quantity input {
  height: 100%;
  -moz-appearance: textfield;
}
.woocommerce-variation-add-to-cart .quantity input::-webkit-outer-spin-button, .woocommerce-variation-add-to-cart .quantity input::-webkit-inner-spin-button,
form.cart .quantity input::-webkit-outer-spin-button,
form.cart .quantity input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce-variation-add-to-cart .quantity .item_qty,
form.cart .quantity .item_qty {
  position: absolute;
  right: 0;
  font-size: 0;
  width: 40px;
  height: 50%;
  border: none;
  outline: none;
  background: transparent;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.3492 8L7 3.05327L1.65083 8L0 6.47336L7 0L14 6.47336L12.3492 8Z' fill='%233D3D3D'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
}
.woocommerce-variation-add-to-cart .quantity .item_qty.plus,
form.cart .quantity .item_qty.plus {
  top: 0;
}
.woocommerce-variation-add-to-cart .quantity .item_qty.minus,
form.cart .quantity .item_qty.minus {
  bottom: 0;
  transform: rotate(180deg);
}
.woocommerce-variation-add-to-cart .single_add_to_cart_button,
form.cart .single_add_to_cart_button {
  flex: 1;
  margin: 0;
}
.woocommerce-variation-add-to-cart .single_add_to_cart_button .icon,
form.cart .single_add_to_cart_button .icon {
  width: 25px;
  margin-right: 6px;
}
@media (min-width: 1113px) {
  .woocommerce-variation-add-to-cart .single_add_to_cart_button .icon,
form.cart .single_add_to_cart_button .icon {
    margin-top: -5px;
  }
}
.woocommerce-variation-add-to-cart .single_add_to_cart_button.loading,
form.cart .single_add_to_cart_button.loading {
  opacity: 0.75;
  cursor: not-allowed;
}
.woocommerce-variation-add-to-cart .added_to_cart,
form.cart .added_to_cart {
  display: none;
}
.woocommerce-variation-add-to-cart .tinv-wishlist,
form.cart .tinv-wishlist {
  flex: 100%;
}

.woocommerce-grouped-product-list td {
  padding-left: 1em;
}
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__quantity {
  width: var(--wc-product-quantity-width);
  padding-left: 0;
}
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__label label {
  margin: 0;
  font-weight: bold;
}
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__price {
  font-weight: bold;
}
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__price ins {
  text-decoration: none;
}
.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item__price .stock {
  margin: 0;
  font-weight: normal;
}

/**
 * WooCommerce: Wishlist button...different variations
 * NOTE: We are using "TI WooCommerce Wishlist" plugin for this
 */
.woocommerce-archive-content .tinvwl-loop-button-wrapper {
  position: relative;
}
.woocommerce-archive-content .tinvwl-loop-button-wrapper.tinvwl-before-add-to-cart {
  margin-bottom: 0.5em;
}
.woocommerce-archive-content .tinvwl-loop-button-wrapper.tinvwl-above_thumb-add-to-cart {
  position: absolute;
  top: 10px;
  left: 10px;
  color: var(--primary-color1);
}
.woocommerce-archive-content .tinvwl-loop-button-wrapper.tinvwl-after-add-to-cart .tinvwl-icon-heart.no-txt, .woocommerce-archive-content .tinvwl-loop-button-wrapper.tinvwl-before-add-to-cart .tinvwl-icon-heart.no-txt {
  position: absolute;
  bottom: 0;
  right: 0;
}
.woocommerce-archive-content .tinvwl-loop-button-wrapper.tinvwl-after-add-to-cart .tinvwl-icon-heart.no-txt {
  transform: translateY(-50%);
}

a.tinvwl_add_to_wishlist_button {
  display: inline-flex;
  align-items: center;
}

/**
 * Woocommerce: My Account pages
 * TODO: Refactor this...WIP
 */
:root {
  --wc-acc-nav-col: clamp(200px, 16.92vw, 325px);
  --wc-acc-nav-link-font-size: clamp(16px, 1vw, 1.9rem);
  --wc-acc-nav-link-icon-size: 2.7rem;
  --wc-acc-nav-link-line-height: 1.45;
  --wc-acc-nav-link-plr: clamp(1.7rem, 1.3vw, 2.5rem);
  --wc-acc-nav-link-ptb: clamp(1.5rem, 1vw, 1.9rem);
  --wc-acc-nav-mr: clamp(40px, 5.2vw, 100px);
  --wc-basic-text-size: clamp(1.3rem, 0.84vw, 1.6rem);
  --wc-sm-text-size: clamp(1.3rem, 0.8vw, 1.5rem);
  --wc-l-text-size: clamp(1.5rem, 0.95vw, 1.8rem);
}
@media (max-width: 1280px) {
  :root {
    --wc-acc-nav-col: 200px;
  }
}

body.woocommerce-account div.woocommerce {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding-bottom: clamp(50px, 7vw, 127px);
  padding-top: 73px;
}
@media (max-width: 767px) {
  body.woocommerce-account div.woocommerce {
    padding-top: 30px;
    flex-direction: column;
  }
}
body.woocommerce-account div.woocommerce h2 {
  text-align: center;
  width: 100%;
}
body.woocommerce-account div.woocommerce .c-heading {
  text-align: center;
  width: 100%;
}
@media (min-width: 768px) {
  body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-navigation-wrapper {
    flex: 0 0 var(--wc-acc-nav-col);
    margin-right: var(--wc-acc-nav-mr, 0);
    position: sticky;
    top: 120px;
  }
  body.woocommerce-account .woocommerce-nav-toggle {
    display: none;
  }
}
body.woocommerce-account .woocommerce-form-login__bottom {
  text-align: center;
  font-size: clamp(1.3rem, 0.84vw, 1.6rem);
  margin: 15px 0;
}
body.woocommerce-account .woocommerce-form-login__bottom a {
  text-decoration: underline;
}
body.woocommerce-account .woocommerce-form-login__bottom a:hover {
  text-decoration: none;
}
body.woocommerce-account .woocommerce-form label {
  font-weight: 600;
  padding-left: 25px;
  text-transform: uppercase;
}
body.woocommerce-account .woocommerce-form .woocommerce-form-row {
  margin-bottom: 25px;
}
body.woocommerce-account .woocommerce-form .woocommerce-form-row label {
  letter-spacing: 0.1em;
}
body.woocommerce-account .woocommerce-form .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form .woocommerce-form-register__rememberme {
  font-weight: 400;
  margin-bottom: 0;
  margin-left: 25px;
  padding-left: 28px;
  text-transform: initial;
}
body.woocommerce-account .woocommerce-form .woocommerce-form-login__submit-wrap,
body.woocommerce-account .woocommerce-form .woocommerce-form-register__submit-wrap {
  display: block;
  text-align: center;
  width: 100%;
}
body.woocommerce-account .woocommerce-form .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form .woocommerce-form-register__submit {
  margin-top: 25px;
  min-width: 230px;
  text-align: center;
}
body.woocommerce-account .woocommerce-form .woocommerce-LostPassword {
  margin-right: 25px;
  text-align: right;
  width: 100%;
}
body.woocommerce-account .woocommerce-form .woocommerce-terms {
  font-family: var(--font-family-primary);
  font-size: var(--smaller-text-size);
  font-weight: var(--base-text-font-weight, 400);
  line-height: var(--base-text-line-height, 1);
  margin-top: 16px;
  text-align: center;
}
body.woocommerce-account .woocommerce-form .woocommerce-terms a {
  font-weight: 600;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=username] {
  background-image: url("data:image/svg+xml,%3Csvg width='13' height='15' viewBox='0 0 13 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.5' fill-rule='evenodd' clip-rule='evenodd' d='M9.85264 3.57582C9.85264 5.53095 8.25766 7.15164 6.27681 7.15164C4.29596 7.15164 2.70099 5.53095 2.70099 3.57582C2.70099 1.6207 4.32169 0 6.27681 0C8.23194 0 9.85264 1.59497 9.85264 3.57582ZM8.77217 3.57582C8.77217 2.18665 7.64026 1.08046 6.27681 1.08046C4.91337 1.08046 3.78146 2.18665 3.78146 3.57582C3.78146 4.96499 4.88765 6.07118 6.27681 6.07118C7.66598 6.07118 8.77217 4.96499 8.77217 3.57582ZM0 14.1751C0 10.7279 2.80406 7.89809 6.27698 7.89809C9.7499 7.89809 12.554 10.7279 12.5282 14.1751C12.5282 14.4581 12.2967 14.7153 11.988 14.7153H0.540232C0.257253 14.7153 0 14.4838 0 14.1751ZM6.27698 9.00428C3.60155 9.00428 1.41489 11.0366 1.13191 13.6348H11.4221C11.1391 11.0366 8.95242 9.00428 6.27698 9.00428Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: 25px 50%;
  background-repeat: no-repeat;
  padding-left: 50px;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=username]::placeholder {
  color: var(--secondary-color3);
  opacity: 0.5;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=password] {
  background-image: url("data:image/svg+xml,%3Csvg width='13' height='16' viewBox='0 0 13 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.5' fill-rule='evenodd' clip-rule='evenodd' d='M6.50685 1.07487C6.52177 1.07489 6.53669 1.07425 6.55155 1.07293L6.55345 1.07279L6.57031 1.07174C6.58695 1.07085 6.61403 1.06974 6.65005 1.06941C6.72229 1.06874 6.82927 1.07118 6.95937 1.08434C7.22213 1.1109 7.56467 1.17968 7.90332 1.343C8.23808 1.50445 8.56697 1.75684 8.82012 2.15679C9.07262 2.55572 9.27027 3.13389 9.29423 3.98102V5.46149H3.70534V4.0265L3.70535 4.02605L3.70538 4.02369L3.70588 4.00355C3.70649 3.9842 3.70779 3.95339 3.71055 3.91277C3.71608 3.83134 3.72738 3.7116 3.75037 3.56655C3.79676 3.27388 3.88857 2.89208 4.06698 2.51705C4.24449 2.14394 4.50222 1.78849 4.87805 1.52556C5.25027 1.26516 5.76919 1.07368 6.50685 1.07487ZM2.67328 5.46149V4.02521H3.18931C2.67328 4.02521 2.67328 4.02494 2.67328 4.02466L2.67328 4.02402L2.67328 4.0225L2.67331 4.0185L2.67345 4.00671C2.67359 3.99719 2.67386 3.98437 2.67437 3.96848C2.67537 3.93671 2.67731 3.89254 2.68103 3.83774C2.68846 3.72831 2.70309 3.57542 2.73195 3.39335C2.78926 3.03177 2.90485 2.54134 3.14122 2.04449C3.37851 1.54571 3.74297 1.02961 4.30042 0.639626C4.85749 0.24991 5.57661 0.00779293 6.48877 0.00581262L6.51697 0.00410567C6.54727 0.00248109 6.58908 0.000866794 6.64081 0.000387068C6.74405 -0.00057054 6.888 0.00298023 7.05963 0.0203322C7.40035 0.0547794 7.86454 0.145044 8.33893 0.373834C8.81722 0.6045 9.30767 0.977293 9.68322 1.57064C10.0587 2.16386 10.2987 2.94493 10.3261 3.95839L10.3263 3.97336V5.46149H10.9772C12.0943 5.46149 13 6.39939 13 7.55661V13.8285C13 14.9861 12.0943 15.9238 10.9772 15.9238H2.02228C0.905371 15.9238 0 14.9855 0 13.8285V7.55661C0 6.39954 0.905439 5.46149 2.02228 5.46149H2.67328ZM1.03206 7.55661C1.03206 6.98982 1.47558 6.53055 2.02228 6.53055H10.9772C11.5244 6.53055 11.9679 6.98996 11.9679 7.55661V13.8285C11.9679 14.3955 11.5244 14.8548 10.9772 14.8548H2.02228C1.47565 14.8548 1.03206 14.3954 1.03206 13.8285V7.55661ZM7.46979 12.0965C7.46979 12.6509 7.03584 13.1004 6.50067 13.1004C5.9655 13.1004 5.53156 12.6509 5.53156 12.0965C5.53156 11.7398 5.71121 11.4266 5.98188 11.2485L5.98975 9.06652C5.99081 8.77132 6.2227 8.5329 6.50769 8.534C6.79268 8.5351 7.02285 8.77531 7.02179 9.07051L7.01395 11.2449C7.28769 11.4223 7.46979 11.7374 7.46979 12.0965Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: 25px 50%;
  background-repeat: no-repeat;
  padding-left: 50px;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=password]::placeholder {
  color: var(--secondary-color3);
  opacity: 0.5;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=email] {
  background-image: url("data:image/svg+xml,%3Csvg width='17' height='14' viewBox='0 0 17 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath opacity='0.5' fill-rule='evenodd' clip-rule='evenodd' d='M15.3 0H1.7C0.765 0 0.0085 0.765397 0.0085 1.70088L0 11.9062C0 12.8417 0.765 13.6071 1.7 13.6071H15.3C16.235 13.6071 17 12.8417 17 11.9062V1.70088C17 0.765397 16.235 0 15.3 0ZM15.3011 11.0558C15.3011 11.5235 14.9186 11.9062 14.4511 11.9062H2.55117C2.08367 11.9062 1.70117 11.5235 1.70117 11.0558V3.40186L7.60015 7.09275C8.15265 7.44143 8.84964 7.44143 9.40214 7.09275L15.3011 3.40186V11.0558ZM1.70117 1.70068L8.50115 5.95284L15.3011 1.70068H1.70117Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: 25px 50%;
  background-repeat: no-repeat;
  padding-left: 50px;
}
body.woocommerce-account .woocommerce-form .woocommerce-Input[name=email]::placeholder {
  color: var(--secondary-color3);
  opacity: 0.5;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword {
  align-items: flex-start;
  background-color: white;
  border: 1px solid #dee2e8;
  border-radius: clamp(10px, 1.05vw, 20px);
  box-shadow: 0 10px 60px rgba(33, 59, 140, 0.2);
  justify-content: flex-start;
  max-width: 570px;
  padding: 3rem;
  width: 100%;
}
@media (min-width: 768px) {
  body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword {
    padding: 4.8rem 5.2rem;
  }
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword p:first-child {
  color: var(--secondary-color3);
  font-size: var(--wc-l-text-size);
  text-align: center;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row-first {
  margin-top: 3rem;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row {
  margin-bottom: 3rem;
  position: relative;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row:last-of-type {
  margin-bottom: 0;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row label {
  color: var(--secondary-color3);
  font-weight: 600;
  text-transform: uppercase;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row input {
  padding-right: 50px;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-Button {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.52092 4.56291C0.680938 3.72293 0.680938 2.36105 1.52092 1.52107C2.3609 0.681095 3.72277 0.681095 4.56275 1.52107L8.45347 5.41179C9.29345 6.25177 9.29345 7.61365 8.45347 8.45363C7.61349 9.29361 6.25162 9.29361 5.41164 8.45363L1.52092 4.56291Z' fill='%232455C9'/%3E%3Cpath d='M17.9791 14.8912C18.8191 15.7312 18.8191 17.093 17.9791 17.933C17.1391 18.773 15.7772 18.773 14.9372 17.933L11.0465 14.0423C10.2065 13.2023 10.2065 11.8405 11.0465 11.0005C11.8865 10.1605 13.2484 10.1605 14.0884 11.0005L17.9791 14.8912Z' fill='%23EB8B34'/%3E%3Cpath d='M17.9791 4.56291C18.8191 3.72293 18.8191 2.36105 17.9791 1.52107C17.1391 0.681095 15.7772 0.681095 14.9372 1.52107L11.0465 5.41179C10.2065 6.25177 10.2065 7.61365 11.0465 8.45363C11.8865 9.29361 13.2484 9.29361 14.0884 8.45363L17.9791 4.56291Z' fill='%2381B25C'/%3E%3Cpath d='M1.52092 14.8912C0.680938 15.7312 0.680938 17.093 1.52092 17.933C2.3609 18.773 3.72277 18.773 4.56275 17.933L8.45347 14.0423C9.29345 13.2023 9.29345 11.8405 8.45347 11.0005C7.61349 10.1605 6.25162 10.1605 5.41164 11.0005L1.52092 14.8912Z' fill='%235E328B'/%3E%3C/svg%3E%0A");
  background-position: left 20px center;
  background-repeat: no-repeat;
  background-size: 22px;
  display: block;
  margin: 0 auto;
  padding-left: clamp(60px, 4vw, 80px);
  padding-right: clamp(20px, 2vw, 40px);
  width: max-content;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-strength {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
  padding-left: 25px;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-strength.strong {
  color: #00a656;
  font-weight: bold;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-strength.bad, body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-strength.short {
  color: red;
  font-weight: bold;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-strength.good {
  color: #e3841f;
  font-weight: bold;
}
body.woocommerce-account.woocommerce-lost-password .woocommerce-ResetPassword .form-row .woocommerce-password-hint {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
}

.woocommerce-account__logged-in {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in {
    padding: 0;
  }
}
.woocommerce-account__logged-in .woocommerce-message,
.woocommerce-account__logged-in .woocommerce-info,
.woocommerce-account__logged-in .woocommerce-error,
.woocommerce-account__logged-in .woocommerce_account_subscriptions {
  flex: 1;
}
.woocommerce-account__logged-in .woocommerce-message.no-orders-nag .button,
.woocommerce-account__logged-in .woocommerce-info.no-orders-nag .button,
.woocommerce-account__logged-in .woocommerce-error.no-orders-nag .button,
.woocommerce-account__logged-in .woocommerce_account_subscriptions.no-orders-nag .button {
  margin-left: auto;
}
.woocommerce-account__logged-in .my-account-subheader {
  color: var(--primary-color1);
  display: flex;
  flex-wrap: wrap;
  font-size: clamp(25px, 2.7vw, 5.4rem);
  line-height: 1.111em;
  font-weight: 800;
  margin-bottom: 3.2rem;
  width: 100%;
  text-transform: capitalize;
  word-break: break-all;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my-account-subheader {
    justify-content: center;
    text-align: center;
  }
}
.woocommerce-account__logged-in .woocommerce-myaccount-navigation {
  display: block;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-navigation {
    width: 30%;
    height: 100%;
  }
}
.woocommerce-account__logged-in .woocommerce-myaccount-content {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content {
    width: 70%;
  }
}
@media (max-width: 1112px) and (min-width: 768px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content {
    padding-left: 20px;
  }
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .c-heading.-h2 .c-heading__title {
  color: var(--primary-color1);
  font-size: 3rem;
  font-weight: 800;
  padding-top: 6rem;
  text-align: left;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content .c-heading.-h2 .c-heading__title {
    padding-top: 0.5rem;
  }
}
@media (min-width: 1113px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content .c-heading.-h2 .c-heading__title {
    padding-top: 3rem;
  }
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .c-heading.-h2 .c-heading__title.npt {
  padding-top: 0;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products__item {
  margin: 0 0 clamp(10px, 1vw, 20px) 0;
  width: 100%;
}
@media (max-width: 1112px) and (min-width: 768px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content .account-products__item {
    margin: 0 10px clamp(10px, 1vw, 20px) 0;
    width: calc(50% - 5px);
  }
  .woocommerce-account__logged-in .woocommerce-myaccount-content .account-products__item:nth-child(2n) {
    margin: 0 0 clamp(10px, 1vw, 20px) 0;
  }
}
@media (min-width: 1113px) {
  .woocommerce-account__logged-in .woocommerce-myaccount-content .account-products__item {
    margin: 0 clamp(10px, 1vw, 20px) clamp(10px, 1vw, 20px) 0;
    width: calc(33% - 11px);
  }
  .woocommerce-account__logged-in .woocommerce-myaccount-content .account-products__item:nth-child(3n) {
    margin: 0 0 clamp(10px, 1vw, 20px) 0;
  }
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block {
  overflow: hidden;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__media {
  align-items: center;
  aspect-ratio: initial;
  display: flex;
  flex-wrap: wrap;
  height: 140px;
  padding: 20px clamp(20px, 2vw, 40px);
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__media-link img {
  height: 100%;
  object-fit: contain;
  width: 100%;
  max-height: 100px;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__body {
  background-color: var(--primary-color2);
  height: calc(100% - 140px);
  padding: 0;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__btn {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  height: 100%;
  justify-content: flex-start;
  margin: 0;
  padding: clamp(15px, 1.05vw, 20px) clamp(25px, 1.6vw, 30px) clamp(15px, 1vw, 20px) 50px;
  position: relative;
  text-align: left;
  white-space: initial;
  width: 100%;
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__btn .c-btn__ico {
  left: clamp(15px, 1.05vw, 20px);
  position: absolute;
  top: clamp(15px, 1.05vw, 20px);
}
.woocommerce-account__logged-in .woocommerce-myaccount-content .account-products .c-block__btn .c-btn__ico-link {
  position: absolute;
  right: 0;
  top: 0;
}
.woocommerce-account__logged-in .view-order {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-account__logged-in .view-order__row {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  width: 100%;
}
.woocommerce-account__logged-in .view-order__row .col-1 {
  align-items: center;
  background-color: #f5fafe;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  color: var(--secondary-color3);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-sm-text-size);
  font-weight: 600;
  justify-content: flex-end;
  margin-right: 5px;
  padding: 18px 20px;
  text-transform: uppercase;
  width: calc(26% - 5px);
}
.woocommerce-account__logged-in .view-order__row .col-2 {
  align-items: center;
  background-color: white;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  color: var(--primary-color1);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-basic-text-size);
  padding: 18px 20px;
  width: 74%;
}
.woocommerce-account__logged-in .view-order__row .col-2 .pending,
.woocommerce-account__logged-in .view-order__row .col-2 .on-hold,
.woocommerce-account__logged-in .view-order__row .col-2 .processing {
  color: #e3841f;
  font-weight: bold;
}
.woocommerce-account__logged-in .view-order__row .col-2 .completed {
  color: #00a656;
  font-weight: bold;
}
.woocommerce-account__logged-in .view-order__row .col-2 .cancelled,
.woocommerce-account__logged-in .view-order__row .col-2 .failed {
  color: red;
  font-weight: bold;
}
.woocommerce-account__logged-in .view-order__row .col-2 .refunded {
  color: #03a9f4;
  font-weight: bold;
}
.woocommerce-account__logged-in .view-order__row .col-2 .c-btn {
  border-radius: 5px;
  color: var(--secondary-color3);
  font-size: 1.4rem;
  font-weight: 700;
  padding: 7px 10px;
}
.woocommerce-account__logged-in .view-order__row .col-2 .c-btn:hover svg {
  transform: none;
}
.woocommerce-account__logged-in .woocommerce-order-details {
  display: flex;
  flex-wrap: wrap;
  padding-top: 10rem;
  width: 100%;
}
.woocommerce-account__logged-in .woocommerce-order-details__title {
  font-size: 2.1rem;
}
.woocommerce-account__logged-in .woocommerce-order-details .c-heading {
  text-align: left !important;
  margin-bottom: 20px;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details {
  width: 100%;
  border-top: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item {
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item .product-name a {
  font-weight: 700;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item .product-name .wc-item-meta strong {
  font-weight: 400;
  padding-right: 5px;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item .product-name .wc-item-meta li {
  color: var(--secondary-color3);
  color: #16275C;
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-basic-text-size);
  width: 100%;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item .product-total {
  color: var(--primary-color1);
  font-size: var(--wc-basic-text-size);
  text-align: right;
  vertical-align: top;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item td {
  padding: 19px 0;
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
  color: #16275C;
}
.woocommerce-account__logged-in .woocommerce-order-details .woocommerce-table--order-details .woocommerce-table__line-item td .wc-item-meta {
  margin-top: 5px;
}
.woocommerce-account__logged-in .woocommerce-order-details tfoot tr {
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .woocommerce-order-details tfoot tr th {
  color: var(--primary-color1);
  font-size: var(--wc-basic-text-size);
  font-weight: 600;
  padding: 20px 0;
  text-transform: uppercase;
}
.woocommerce-account__logged-in .woocommerce-order-details tfoot tr td {
  color: var(--primary-color1);
  font-size: var(--wc-basic-text-size);
  padding: 20px 0;
  text-align: right;
  vertical-align: top;
}
.woocommerce-account__logged-in .woocommerce-order-details tfoot tr:last-child th,
.woocommerce-account__logged-in .woocommerce-order-details tfoot tr:last-child td {
  font-size: var(--wc-l-text-size);
  font-weight: 800;
  color: var(--primary-color1);
  font-size: var(--wc-l-text-size);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.woocommerce-account__logged-in .account-details {
  align-items: flex-start;
  background-color: white;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  padding: 35px;
  position: relative;
  width: 100%;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .account-details {
    margin-top: 5rem;
  }
}
.woocommerce-account__logged-in .account-details:before {
  background: var(--secondary-color5);
  border-radius: 0 30px 30px 0;
  content: "";
  height: 40px;
  left: 0;
  position: absolute;
  top: 33px;
  width: 6px;
}
.woocommerce-account__logged-in .account-details .c-heading {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-account__logged-in .account-details .c-heading__title {
  font-size: 2.1rem !important;
  letter-spacing: initial;
  padding: 0 !important;
}
.woocommerce-account__logged-in .account-details .c-btn {
  border-radius: 5px;
  font-size: 1.4rem;
  font-weight: 700;
  margin-top: 25px;
  padding: 8px 10px;
}
.woocommerce-account__logged-in .account-details .c-btn:hover svg {
  transform: none;
}
.woocommerce-account__logged-in .account-details__fields {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
}
.woocommerce-account__logged-in .account-details__row {
  border-bottom: 1px solid #d0d4de;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 15px 0;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .account-details__row {
    width: calc(50% - 25px);
  }
}
.woocommerce-account__logged-in .account-details__row span {
  font-size: var(--wc-basic-text-size);
}
.woocommerce-account__logged-in .account-details__label {
  color: var(--secondary-color3);
  font-weight: 700;
  text-transform: capitalize;
}
.woocommerce-account__logged-in .account-details__key {
  color: rgba(33, 59, 140, 0.8);
}
.woocommerce-account__logged-in .account-details a .c-btn__ico {
  min-width: 20px;
  max-width: 20px;
  padding-right: 6px;
}
.woocommerce-account__logged-in .my_account_subscriptions {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 10px;
  width: 100%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header {
  align-items: center;
  background-color: var(--primary-color1);
  border: 1px solid var(--primary-color1);
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  padding: 13px clamp(12px, 1.6vw, 25px);
  width: 100%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header span {
  color: white;
  font-size: var(--wc-sm-text-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header .subscription-id {
  display: flex;
  flex-wrap: wrap;
  width: 27%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header .subscription-status {
  display: flex;
  flex-wrap: wrap;
  width: 16%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header .subscription-next-payment {
  display: flex;
  flex-wrap: wrap;
  width: 24%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header .subscription-total {
  display: flex;
  flex-wrap: wrap;
  width: 20%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-header .subscription-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: 13%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .-header {
  border-radius: 10px 0 0 10px;
  flex-direction: column;
  padding: 0;
  width: 100px;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .-header > div {
  border-bottom: 1px solid rgba(208, 212, 222, 0.2);
  justify-content: flex-end;
  padding: 5px 10px;
  text-align: right;
  width: 100%;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order {
  align-items: center;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  padding: 20px clamp(12px, 1.6vw, 25px);
  width: 100%;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order {
    border-radius: 0 10px 10px 0;
    padding: 0;
    width: calc(100% - 100px);
  }
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order > div {
    border-bottom: 1px solid rgba(208, 212, 222, 0.2);
    padding: 5px 10px 4px 10px;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-id {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-id {
    width: 27%;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-id span {
  font-size: var(--wc-basic-text-size);
  font-weight: 700;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-status {
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-basic-text-size);
  font-weight: 700;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-status {
    width: 16%;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-basic-text-size);
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment {
    width: 24%;
  }
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment {
    min-height: 47px;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment small {
  font-size: 1.2rem;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment small {
    padding-left: 5px;
  }
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-next-payment small {
    display: block;
    width: 100%;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-total {
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-basic-text-size);
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-total {
    width: 20%;
  }
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-total .amount {
    padding-right: 5px;
  }
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-total .amount {
    display: block;
    width: 100%;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-actions {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-actions {
    justify-content: flex-end;
    width: 13%;
  }
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-actions .button {
  border-radius: 5px;
  font-size: 1.4rem;
  font-weight: bold;
  padding: 10px;
}
.woocommerce-account__logged-in .my_account_subscriptions .-main-body .order .subscription-actions .button .icon {
  height: 11px;
  width: 11px;
}
@media (max-width: 767px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-desktop-only {
    display: none;
  }
}
@media (min-width: 768px) {
  .woocommerce-account__logged-in .my_account_subscriptions .-mobile-only {
    display: none;
  }
}
.woocommerce-account__logged-in .woocommerce_account_subscriptions__price-change {
  font-size: 1.4rem;
  margin-bottom: 60px;
}
.woocommerce-account__logged-in .subscription_details {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin-bottom: 73px;
}
.woocommerce-account__logged-in .subscription_details + h2 {
  color: var(--primary-color1);
  display: flex;
  flex-wrap: wrap;
  font-size: 2.1rem;
  font-weight: 800;
  text-align: left;
  width: 100%;
  margin-bottom: 20px;
}
.woocommerce-account__logged-in .subscription_details__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 5px;
  width: 100%;
}
.woocommerce-account__logged-in .subscription_details__label {
  align-items: center;
  background-color: #f5fafe;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  color: var(--secondary-color3);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-sm-text-size);
  font-weight: 600;
  justify-content: flex-end;
  padding: clamp(10px, 1.1vw, 18px) clamp(10px, 1.1vw, 20px);
  text-align: right;
  text-transform: uppercase;
  width: calc(30% - 5px);
  letter-spacing: 0.1em;
}
.woocommerce-account__logged-in .subscription_details__name {
  align-items: center;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  color: var(--secondary-color3);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-sm-text-size);
  padding: clamp(10px, 1.1vw, 18px) clamp(10px, 1.1vw, 20px);
  width: 70%;
}
.woocommerce-account__logged-in .subscription_details__name a {
  display: flex;
  border-radius: 5px;
  font-size: 1.4rem;
  padding: 7px 10px;
  margin: 0 9px 0 0;
  user-select: none;
}
.woocommerce-account__logged-in .subscription_details__name a.loading {
  opacity: 0.5;
}
.woocommerce-account__logged-in .subscription_details__name a:last-child {
  margin-right: 0;
}
.woocommerce-account__logged-in .subscription_details__name a:hover svg {
  transform: none !important;
}
.woocommerce-account__logged-in .subscription_details__name a .c-btn__ico {
  min-width: 20px;
  max-width: 20px;
  padding-right: 6px;
  margin: 0;
  transform-origin: center;
  animation: none !important;
}
.woocommerce-account__logged-in .subscription_details__name a.subscription-auto-renew-toggle {
  top: 0;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details {
  border-top: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details thead {
  background: none;
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details thead th {
  color: var(--primary-color1);
  font-size: var(--wc-l-text-size);
  text-transform: uppercase;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details td,
.woocommerce-account__logged-in .subscription_details ~ .order_details th {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
  padding: 19px 0;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details td:last-child,
.woocommerce-account__logged-in .subscription_details ~ .order_details th:last-child {
  color: var(--primary-color1);
  text-align: right;
  vertical-align: top;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item {
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name {
  color: #16275C;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name a {
  font-weight: 700;
  color: #16275C;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name .product-quantity {
  display: none;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name .wc-item-meta {
  display: flex;
  flex-wrap: wrap;
  margin-top: 5px;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name .wc-item-meta strong {
  font-weight: 400;
  padding-right: 5px;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details .order_item .product-name .wc-item-meta li {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details tfoot tr {
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details tfoot tr .amount {
  color: var(--primary-color1);
  font-size: var(--wc-l-text-size);
  font-weight: bold;
}
.woocommerce-account__logged-in .subscription_details ~ .order_details tfoot td:first-child,
.woocommerce-account__logged-in .subscription_details ~ .order_details tfoot th:first-child {
  color: var(--primary-color1);
  font-size: var(--wc-l-text-size);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.woocommerce-account__logged-in .status-cancelled,
.woocommerce-account__logged-in .status-expired,
.woocommerce-account__logged-in .status-pending-cancellation {
  font-weight: 700;
  color: #ff5353;
}
.woocommerce-account__logged-in .status-on-hold {
  font-weight: 700;
  color: #6a6c70;
}
.woocommerce-account__logged-in .status-active {
  font-weight: 700;
  color: #00A656;
}

.woocommerce-MyAccount-navigation a {
  display: block;
  font-size: var(--wc-acc-nav-link-font-size);
  font-weight: 700;
  line-height: var(--wc-acc-nav-link-line-height);
  padding: var(--wc-acc-nav-link-ptb, 0) var(--wc-acc-nav-link-plr, 0);
  text-transform: capitalize;
}
.woocommerce-MyAccount-navigation-link:first-child a {
  border-radius: 10px 10px 0 0;
  border-top: 1px solid var(--secondary-color2);
}
.woocommerce-MyAccount-navigation-link:last-child a {
  border-radius: 0 0 10px 10px;
}
.woocommerce-MyAccount-navigation-link.is-active a {
  color: #ffffff;
}
.woocommerce-MyAccount-navigation-link.is-active a:before {
  opacity: 1;
}
.woocommerce-MyAccount-navigation-link.is-active a:after {
  background-color: #ffffff;
  opacity: 1;
}
.woocommerce-MyAccount-navigation-link a {
  align-items: center;
  background: #f5fafe;
  border-bottom: 1px solid var(--secondary-color2);
  border-left: 1px solid var(--secondary-color2);
  border-right: 1px solid var(--secondary-color2);
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  position: relative;
}
.woocommerce-MyAccount-navigation-link a:before {
  background-color: var(--primary-color1);
  border-radius: 10px;
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transform: scale(1.05);
}
.woocommerce-MyAccount-navigation-link a:after {
  background-color: var(--primary-color1);
  content: "";
  display: block;
  height: var(--wc-acc-nav-link-icon-size);
  margin-right: 2rem;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  opacity: 0.3;
  transition: opacity var(--base-transition) ease;
  width: var(--wc-acc-nav-link-icon-size);
  -webkit-mask-image: url("../../images/woocommerce/icon-dashboard.svg");
  mask-image: url("../../images/woocommerce/icon-dashboard.svg");
}
.woocommerce-MyAccount-navigation-link a span {
  position: relative;
  z-index: 1;
}
.woocommerce-MyAccount-navigation-link a:hover:after {
  opacity: 1;
}
.woocommerce-MyAccount-navigation-link--dashboard a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='22' height='23' viewBox='0 0 22 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5391 12.4583C13.7102 12.4583 16.2891 9.87946 16.2891 6.70833V5.75C16.2891 2.57887 13.7102 0 10.5391 0C7.36794 0 4.78906 2.57887 4.78906 5.75V6.70833C4.78906 9.87946 7.36794 12.4583 10.5391 12.4583Z' fill='%23D0D4DE'/%3E%3Cpath d='M17.5586 15.3153C13.0506 14.0666 8.03371 14.0666 3.52475 15.3153C1.44996 15.8903 0 17.7907 0 19.9383V23.0002H21.0833V19.9383C21.0833 17.7907 19.6334 15.8903 17.5586 15.3153Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='22' height='23' viewBox='0 0 22 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5391 12.4583C13.7102 12.4583 16.2891 9.87946 16.2891 6.70833V5.75C16.2891 2.57887 13.7102 0 10.5391 0C7.36794 0 4.78906 2.57887 4.78906 5.75V6.70833C4.78906 9.87946 7.36794 12.4583 10.5391 12.4583Z' fill='%23D0D4DE'/%3E%3Cpath d='M17.5586 15.3153C13.0506 14.0666 8.03371 14.0666 3.52475 15.3153C1.44996 15.8903 0 17.7907 0 19.9383V23.0002H21.0833V19.9383C21.0833 17.7907 19.6334 15.8903 17.5586 15.3153Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
  transform: scale(0.85);
}
.woocommerce-MyAccount-navigation-link--orders a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='28' height='25' viewBox='0 0 28 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.3891 8.33323H18.9141L15.1313 0.76774C14.896 0.297132 14.4152 0 13.889 0C13.3628 0 12.8819 0.297156 12.6466 0.76774L8.86383 8.33323H1.38881C0.621728 8.33323 0 8.95496 0 9.72205C0 10.4891 0.621728 11.1111 1.38881 11.1111H1.639L3.74698 21.6504C4.13644 23.5982 5.84657 25 7.83276 25H19.9447C21.9308 25 23.641 23.5982 24.0305 21.6504L26.1385 11.1111H26.3886C27.1557 11.1111 27.7775 10.4891 27.7775 9.72205C27.7775 8.95496 27.1557 8.33323 26.3886 8.33323H26.3891ZM13.8891 4.49441L15.8085 8.33323H11.9697L13.8891 4.49441ZM16.6669 18.0552C17.434 18.0552 18.0558 17.4334 18.0558 16.6663C18.0558 15.8993 17.434 15.2775 16.6669 15.2775H11.1112C10.3441 15.2775 9.7224 15.8993 9.7224 16.6663C9.7224 17.4334 10.3441 18.0552 11.1112 18.0552H16.6669Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='28' height='25' viewBox='0 0 28 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.3891 8.33323H18.9141L15.1313 0.76774C14.896 0.297132 14.4152 0 13.889 0C13.3628 0 12.8819 0.297156 12.6466 0.76774L8.86383 8.33323H1.38881C0.621728 8.33323 0 8.95496 0 9.72205C0 10.4891 0.621728 11.1111 1.38881 11.1111H1.639L3.74698 21.6504C4.13644 23.5982 5.84657 25 7.83276 25H19.9447C21.9308 25 23.641 23.5982 24.0305 21.6504L26.1385 11.1111H26.3886C27.1557 11.1111 27.7775 10.4891 27.7775 9.72205C27.7775 8.95496 27.1557 8.33323 26.3886 8.33323H26.3891ZM13.8891 4.49441L15.8085 8.33323H11.9697L13.8891 4.49441ZM16.6669 18.0552C17.434 18.0552 18.0558 17.4334 18.0558 16.6663C18.0558 15.8993 17.434 15.2775 16.6669 15.2775H11.1112C10.3441 15.2775 9.7224 15.8993 9.7224 16.6663C9.7224 17.4334 10.3441 18.0552 11.1112 18.0552H16.6669Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
}
.woocommerce-MyAccount-navigation-link--edit-address a:after {
  -webkit-mask-image: url("../../images/woocommerce/icon-addresses.svg");
  mask-image: url("../../images/woocommerce/icon-addresses.svg");
}
.woocommerce-MyAccount-navigation-link--subscriptions a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='27' height='21' viewBox='0 0 27 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.3336 0H7.9164C5.79238 0 3.99029 1.4481 3.41115 3.41115C1.4481 3.9582 0 5.76031 0 7.9164V15.8651C0 18.4397 2.09166 20.5314 4.66621 20.5314H19.0834C21.2074 20.5314 23.0095 19.0833 23.5886 17.1202C25.5517 16.5732 26.9998 14.771 26.9998 12.615L27 4.66621C27 2.09166 24.9081 0 22.3338 0H22.3336ZM25.3907 12.5828C25.3907 13.7414 24.7472 14.771 23.7817 15.286V7.88433C23.7817 5.30978 21.69 3.21812 19.1154 3.21812L5.21318 3.21834C5.72813 2.25285 6.75782 1.60928 7.91634 1.60928H22.3335C24.007 1.60928 25.3907 2.99296 25.3907 4.66644L25.3907 12.5828ZM10.1368 17.1849C10.0403 17.1849 9.94379 17.1528 9.84726 17.1204C7.01526 16.0585 5.56717 12.9048 6.62914 10.1049C7.14409 8.72126 8.14166 7.65923 9.46114 7.04779C10.7806 6.43629 12.2609 6.37187 13.6448 6.88683C15.1573 7.43388 16.3479 8.65686 16.895 10.1694H18.0856L16.1226 13.6771L14.0951 10.2336H15.1571C14.7066 9.42903 13.9986 8.78547 13.0975 8.46354C12.132 8.10954 11.07 8.14164 10.1368 8.56007C9.20364 8.9785 8.49565 9.75071 8.14166 10.7162C7.40155 12.7114 8.43124 14.9319 10.4266 15.672C10.8451 15.8329 11.0702 16.2835 10.9093 16.7019C10.7483 16.9594 10.4587 17.1848 10.1369 17.1848L10.1368 17.1849Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='27' height='21' viewBox='0 0 27 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.3336 0H7.9164C5.79238 0 3.99029 1.4481 3.41115 3.41115C1.4481 3.9582 0 5.76031 0 7.9164V15.8651C0 18.4397 2.09166 20.5314 4.66621 20.5314H19.0834C21.2074 20.5314 23.0095 19.0833 23.5886 17.1202C25.5517 16.5732 26.9998 14.771 26.9998 12.615L27 4.66621C27 2.09166 24.9081 0 22.3338 0H22.3336ZM25.3907 12.5828C25.3907 13.7414 24.7472 14.771 23.7817 15.286V7.88433C23.7817 5.30978 21.69 3.21812 19.1154 3.21812L5.21318 3.21834C5.72813 2.25285 6.75782 1.60928 7.91634 1.60928H22.3335C24.007 1.60928 25.3907 2.99296 25.3907 4.66644L25.3907 12.5828ZM10.1368 17.1849C10.0403 17.1849 9.94379 17.1528 9.84726 17.1204C7.01526 16.0585 5.56717 12.9048 6.62914 10.1049C7.14409 8.72126 8.14166 7.65923 9.46114 7.04779C10.7806 6.43629 12.2609 6.37187 13.6448 6.88683C15.1573 7.43388 16.3479 8.65686 16.895 10.1694H18.0856L16.1226 13.6771L14.0951 10.2336H15.1571C14.7066 9.42903 13.9986 8.78547 13.0975 8.46354C12.132 8.10954 11.07 8.14164 10.1368 8.56007C9.20364 8.9785 8.49565 9.75071 8.14166 10.7162C7.40155 12.7114 8.43124 14.9319 10.4266 15.672C10.8451 15.8329 11.0702 16.2835 10.9093 16.7019C10.7483 16.9594 10.4587 17.1848 10.1369 17.1848L10.1368 17.1849Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
}
.woocommerce-MyAccount-navigation-link--edit-account a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='28' height='18' viewBox='0 0 28 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M25.4375 0H2.3125C1.0175 0 0 0.99 0 2.25V15.75C0 17.01 1.0175 18 2.3125 18H7.4V17.01C6.845 16.83 6.475 16.335 6.475 15.75C6.475 14.985 7.07625 14.4 7.8625 14.4C8.64875 14.4 9.25 14.985 9.25 15.75C9.25 16.335 8.88 16.83 8.325 17.01V18H19.425V17.01C18.87 16.83 18.5 16.335 18.5 15.75C18.5 14.985 19.1012 14.4 19.8875 14.4C20.6737 14.4 21.275 14.985 21.275 15.75C21.275 16.335 20.905 16.83 20.35 17.01V18H25.4375C26.7325 18 27.75 17.01 27.75 15.75V2.25C27.75 0.99 26.7325 0 25.4375 0ZM7.8625 12.6C5.04125 12.6 2.775 10.395 2.775 7.65C2.775 4.905 5.04125 2.7 7.8625 2.7C10.6837 2.7 12.95 4.905 12.95 7.65C12.95 10.395 10.6837 12.6 7.8625 12.6ZM24.5125 10.8H15.2625C14.985 10.8 14.8 10.62 14.8 10.35C14.8 10.08 14.985 9.9 15.2625 9.9H24.5125C24.79 9.9 24.975 10.08 24.975 10.35C24.975 10.62 24.79 10.8 24.5125 10.8ZM24.5125 8.1H15.2625C14.985 8.1 14.8 7.92 14.8 7.65C14.8 7.38 14.985 7.2 15.2625 7.2H24.5125C24.79 7.2 24.975 7.38 24.975 7.65C24.975 7.92 24.79 8.1 24.5125 8.1ZM24.5125 5.4H15.2625C14.985 5.4 14.8 5.22 14.8 4.95C14.8 4.68 14.985 4.5 15.2625 4.5H24.5125C24.79 4.5 24.975 4.68 24.975 4.95C24.975 5.22 24.79 5.4 24.5125 5.4ZM10.6375 10.35H5.0875C5.0875 9.36 5.92 8.55 6.9375 8.55H7.4V8.055C6.61375 7.875 6.0125 7.155 6.0125 6.3C6.0125 5.175 7.07625 4.275 8.325 4.545C8.9725 4.68 9.5275 5.22 9.66625 5.85C9.8975 6.885 9.25 7.785 8.325 8.01V8.55H8.7875C9.805 8.55 10.6375 9.36 10.6375 10.35Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='28' height='18' viewBox='0 0 28 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M25.4375 0H2.3125C1.0175 0 0 0.99 0 2.25V15.75C0 17.01 1.0175 18 2.3125 18H7.4V17.01C6.845 16.83 6.475 16.335 6.475 15.75C6.475 14.985 7.07625 14.4 7.8625 14.4C8.64875 14.4 9.25 14.985 9.25 15.75C9.25 16.335 8.88 16.83 8.325 17.01V18H19.425V17.01C18.87 16.83 18.5 16.335 18.5 15.75C18.5 14.985 19.1012 14.4 19.8875 14.4C20.6737 14.4 21.275 14.985 21.275 15.75C21.275 16.335 20.905 16.83 20.35 17.01V18H25.4375C26.7325 18 27.75 17.01 27.75 15.75V2.25C27.75 0.99 26.7325 0 25.4375 0ZM7.8625 12.6C5.04125 12.6 2.775 10.395 2.775 7.65C2.775 4.905 5.04125 2.7 7.8625 2.7C10.6837 2.7 12.95 4.905 12.95 7.65C12.95 10.395 10.6837 12.6 7.8625 12.6ZM24.5125 10.8H15.2625C14.985 10.8 14.8 10.62 14.8 10.35C14.8 10.08 14.985 9.9 15.2625 9.9H24.5125C24.79 9.9 24.975 10.08 24.975 10.35C24.975 10.62 24.79 10.8 24.5125 10.8ZM24.5125 8.1H15.2625C14.985 8.1 14.8 7.92 14.8 7.65C14.8 7.38 14.985 7.2 15.2625 7.2H24.5125C24.79 7.2 24.975 7.38 24.975 7.65C24.975 7.92 24.79 8.1 24.5125 8.1ZM24.5125 5.4H15.2625C14.985 5.4 14.8 5.22 14.8 4.95C14.8 4.68 14.985 4.5 15.2625 4.5H24.5125C24.79 4.5 24.975 4.68 24.975 4.95C24.975 5.22 24.79 5.4 24.5125 5.4ZM10.6375 10.35H5.0875C5.0875 9.36 5.92 8.55 6.9375 8.55H7.4V8.055C6.61375 7.875 6.0125 7.155 6.0125 6.3C6.0125 5.175 7.07625 4.275 8.325 4.545C8.9725 4.68 9.5275 5.22 9.66625 5.85C9.8975 6.885 9.25 7.785 8.325 8.01V8.55H8.7875C9.805 8.55 10.6375 9.36 10.6375 10.35Z' fill='%23D0D4DE'/%3E%3C/svg%3E%0A");
}
.woocommerce-MyAccount-navigation-link--tinv_wishlist a:after {
  -webkit-mask-image: url("../../images/woocommerce/icon-dashboard.svg");
  mask-image: url("../../images/woocommerce/icon-dashboard.svg");
}
.woocommerce-MyAccount-navigation-link--customer-logout a:after, .woocommerce-MyAccount-navigation-link--sso-logout a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 490.3 490.3' xml:space='preserve'%3E%3Cpath d='M0,121.05v248.2c0,34.2,27.9,62.1,62.1,62.1h200.6c34.2,0,62.1-27.9,62.1-62.1v-40.2c0-6.8-5.5-12.3-12.3-12.3 s-12.3,5.5-12.3,12.3v40.2c0,20.7-16.9,37.6-37.6,37.6H62.1c-20.7,0-37.6-16.9-37.6-37.6v-248.2c0-20.7,16.9-37.6,37.6-37.6h200.6 c20.7,0,37.6,16.9,37.6,37.6v40.2c0,6.8,5.5,12.3,12.3,12.3s12.3-5.5,12.3-12.3v-40.2c0-34.2-27.9-62.1-62.1-62.1H62.1 C27.9,58.95,0,86.75,0,121.05z' fill='currentColor'/%3E%3Cpath d='M385.4,337.65c2.4,2.4,5.5,3.6,8.7,3.6s6.3-1.2,8.7-3.6l83.9-83.9c4.8-4.8,4.8-12.5,0-17.3l-83.9-83.9 c-4.8-4.8-12.5-4.8-17.3,0s-4.8,12.5,0,17.3l63,63H218.6c-6.8,0-12.3,5.5-12.3,12.3c0,6.8,5.5,12.3,12.3,12.3h229.8l-63,63 C380.6,325.15,380.6,332.95,385.4,337.65z' fill='%23D0D4DE'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 490.3 490.3' xml:space='preserve'%3E%3Cpath d='M0,121.05v248.2c0,34.2,27.9,62.1,62.1,62.1h200.6c34.2,0,62.1-27.9,62.1-62.1v-40.2c0-6.8-5.5-12.3-12.3-12.3 s-12.3,5.5-12.3,12.3v40.2c0,20.7-16.9,37.6-37.6,37.6H62.1c-20.7,0-37.6-16.9-37.6-37.6v-248.2c0-20.7,16.9-37.6,37.6-37.6h200.6 c20.7,0,37.6,16.9,37.6,37.6v40.2c0,6.8,5.5,12.3,12.3,12.3s12.3-5.5,12.3-12.3v-40.2c0-34.2-27.9-62.1-62.1-62.1H62.1 C27.9,58.95,0,86.75,0,121.05z' fill='currentColor'/%3E%3Cpath d='M385.4,337.65c2.4,2.4,5.5,3.6,8.7,3.6s6.3-1.2,8.7-3.6l83.9-83.9c4.8-4.8,4.8-12.5,0-17.3l-83.9-83.9 c-4.8-4.8-12.5-4.8-17.3,0s-4.8,12.5,0,17.3l63,63H218.6c-6.8,0-12.3,5.5-12.3,12.3c0,6.8,5.5,12.3,12.3,12.3h229.8l-63,63 C380.6,325.15,380.6,332.95,385.4,337.65z' fill='%23D0D4DE'/%3E%3C/svg%3E");
}
.woocommerce-MyAccount-navigation-link--custom-logout a:after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 490.3 490.3' xml:space='preserve'%3E%3Cpath d='M0,121.05v248.2c0,34.2,27.9,62.1,62.1,62.1h200.6c34.2,0,62.1-27.9,62.1-62.1v-40.2c0-6.8-5.5-12.3-12.3-12.3 s-12.3,5.5-12.3,12.3v40.2c0,20.7-16.9,37.6-37.6,37.6H62.1c-20.7,0-37.6-16.9-37.6-37.6v-248.2c0-20.7,16.9-37.6,37.6-37.6h200.6 c20.7,0,37.6,16.9,37.6,37.6v40.2c0,6.8,5.5,12.3,12.3,12.3s12.3-5.5,12.3-12.3v-40.2c0-34.2-27.9-62.1-62.1-62.1H62.1 C27.9,58.95,0,86.75,0,121.05z' fill='currentColor'/%3E%3Cpath d='M385.4,337.65c2.4,2.4,5.5,3.6,8.7,3.6s6.3-1.2,8.7-3.6l83.9-83.9c4.8-4.8,4.8-12.5,0-17.3l-83.9-83.9 c-4.8-4.8-12.5-4.8-17.3,0s-4.8,12.5,0,17.3l63,63H218.6c-6.8,0-12.3,5.5-12.3,12.3c0,6.8,5.5,12.3,12.3,12.3h229.8l-63,63 C380.6,325.15,380.6,332.95,385.4,337.65z' fill='%23D0D4DE'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 490.3 490.3' xml:space='preserve'%3E%3Cpath d='M0,121.05v248.2c0,34.2,27.9,62.1,62.1,62.1h200.6c34.2,0,62.1-27.9,62.1-62.1v-40.2c0-6.8-5.5-12.3-12.3-12.3 s-12.3,5.5-12.3,12.3v40.2c0,20.7-16.9,37.6-37.6,37.6H62.1c-20.7,0-37.6-16.9-37.6-37.6v-248.2c0-20.7,16.9-37.6,37.6-37.6h200.6 c20.7,0,37.6,16.9,37.6,37.6v40.2c0,6.8,5.5,12.3,12.3,12.3s12.3-5.5,12.3-12.3v-40.2c0-34.2-27.9-62.1-62.1-62.1H62.1 C27.9,58.95,0,86.75,0,121.05z' fill='currentColor'/%3E%3Cpath d='M385.4,337.65c2.4,2.4,5.5,3.6,8.7,3.6s6.3-1.2,8.7-3.6l83.9-83.9c4.8-4.8,4.8-12.5,0-17.3l-83.9-83.9 c-4.8-4.8-12.5-4.8-17.3,0s-4.8,12.5,0,17.3l63,63H218.6c-6.8,0-12.3,5.5-12.3,12.3c0,6.8,5.5,12.3,12.3,12.3h229.8l-63,63 C380.6,325.15,380.6,332.95,385.4,337.65z' fill='%23D0D4DE'/%3E%3C/svg%3E");
}
.woocommerce-MyAccount-content {
  flex: 1;
}
.woocommerce-MyAccount-content h2 {
  font-size: 2em;
  font-weight: 600;
}
.woocommerce-MyAccount-content h3 {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin-bottom: 1em;
}
.woocommerce-MyAccount-content mark {
  background-color: transparent;
  font-weight: bold;
}
.woocommerce-MyAccount-content .woocommerce-Pagination {
  text-align: center;
}
.woocommerce-MyAccount-content .edit-account fieldset {
  margin-top: 2em;
}
.woocommerce-MyAccount-content .edit-account legend {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin: 0 0 1em 0;
  text-transform: capitalize;
}
@media (max-width: 1280px) {
  .woocommerce-MyAccount-content .edit-account legend {
    margin: 0 0 0.5em 0;
  }
}
.woocommerce-MyAccount-orders {
  display: flex;
  flex-wrap: wrap;
  padding-top: 10rem;
  width: 100%;
}
@media (max-width: 1112px) and (min-width: 768px) {
  .woocommerce-MyAccount-orders {
    padding: 7rem 0 0 2rem;
  }
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-orders {
    padding-top: 5rem;
  }
}
.woocommerce-MyAccount-orders .orders__header {
  align-items: center;
  background-color: var(--primary-color1);
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  padding: 14px 10px;
  width: 100%;
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-orders .orders__header.-desktop-only {
    display: none;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .orders__header.-mobile-only {
    display: none;
  }
}
.woocommerce-MyAccount-orders .orders__header span {
  color: white;
  font-size: var(--wc-sm-text-size);
  font-weight: 600;
  text-transform: uppercase;
}
.woocommerce-MyAccount-orders .orders__header > div {
  display: flex;
  flex-wrap: wrap;
}
.woocommerce-MyAccount-orders .orders__body {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.woocommerce-MyAccount-orders .orders__body .orders__header {
  border-radius: 10px 0 0 10px;
  flex-direction: column;
  margin-bottom: 20px;
  padding: 0;
  width: 30%;
}
.woocommerce-MyAccount-orders .orders__body .orders__header > div {
  border-bottom: 1px solid rgba(208, 212, 222, 0.5);
  justify-content: flex-end;
  padding: 10px 16px;
  text-align: right;
  width: 100%;
}
.woocommerce-MyAccount-orders .orders__body .orders__header > div:last-child {
  border: none;
}
@media (min-width: 1113px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-number, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number {
    padding-left: 20px;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-number, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number {
    width: 16%;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-date, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-date {
    width: 24%;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-status, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status {
    width: 22%;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-total, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total {
    width: 12%;
  }
}
@media (min-width: 768px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__header-order-actions, .woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions {
    width: 26%;
  }
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__row {
  align-items: center;
  border: 1px solid #d0d4de;
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 5px;
  padding: 14px 0;
  width: 100%;
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__row {
    border-radius: 0 10px 10px 0;
    flex-direction: column;
    margin-bottom: 20px;
    padding: 0;
    width: 70%;
  }
}
@media (max-width: 1112px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__row > div {
    padding-left: 10px;
  }
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-orders .woocommerce-orders-table__row > div {
    align-items: center;
    border-bottom: 1px solid rgba(208, 212, 222, 0.5);
    display: flex;
    flex-wrap: wrap;
    min-height: 39px;
    padding: 7px 16px;
    width: 100%;
  }
  .woocommerce-MyAccount-orders .woocommerce-orders-table__row > div:last-child {
    border: none;
  }
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number a {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
  font-weight: 700;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-date time {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total span,
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total del {
  color: var(--secondary-color3);
  font-size: var(--wc-basic-text-size);
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button {
  background-position: left 10px center;
  background-repeat: no-repeat;
  border-radius: 5px;
  color: var(--secondary-color3);
  font-size: 1.4rem;
  font-weight: 700;
  padding: 7px 10px;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button.cancel {
  background-color: var(--secondary-color2);
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button.view {
  background-image: url("data:image/svg+xml,%3Csvg width='17' height='11' viewBox='0 0 17 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.5 0.591797C4.86708 0.591797 1.69691 2.56644 0 5.50008C1.69691 8.4333 4.86708 10.4084 8.5 10.4084C12.1329 10.4084 15.3031 8.4333 17 5.50008C15.3031 2.56644 12.1329 0.591797 8.5 0.591797ZM8.5 9.31115C6.39571 9.31115 4.68936 7.6048 4.68936 5.50008C4.68936 3.3958 6.39571 1.68901 8.5 1.68901C10.6043 1.68901 12.3115 3.3958 12.3115 5.50008C12.3115 7.6048 10.6043 9.31115 8.5 9.31115Z' fill='%23213B8C'/%3E%3Cpath d='M10.1179 4.94104C9.5354 4.94104 9.0632 4.46884 9.0632 3.88675C9.0632 3.53217 9.24006 3.21966 9.50749 3.02907C9.19799 2.90286 8.8593 2.83203 8.50386 2.83203C7.02974 2.83203 5.83594 4.02626 5.83594 5.50038C5.83594 6.9745 7.02974 8.16916 8.50386 8.16916C9.97798 8.16916 11.1726 6.9745 11.1726 5.50038C11.1726 5.14494 11.1022 4.80668 10.9756 4.49675C10.7846 4.76504 10.4725 4.94104 10.1179 4.94104Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  padding-left: 30px;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button.pay {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='11' viewBox='0 0 12 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.560767 0.699951H11.4391C11.7486 0.699951 11.9998 0.971231 11.9998 1.30575V3.28263H0V1.30575C0 0.971243 0.251063 0.699951 0.560655 0.699951H0.560767ZM12 4.51145V9.69415C12 10.0285 11.7487 10.3 11.4393 10.3H0.560962C0.25138 10.3 0.000306368 10.0284 0.000306368 9.69415V4.51145H12Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  padding-left: 30px;
}

.woocommerce-form-login,
.woocommerce-form-register {
  background: #ffffff;
  border-radius: clamp(10px, 1.05vw, 20px);
  box-shadow: 0 10px 60px rgba(22, 39, 92, 0.2);
  font-size: var(--smaller-text-size);
  margin-top: 35px;
  padding: 20px;
  justify-content: center;
}
@media (min-width: 768px) {
  .woocommerce-form-login,
.woocommerce-form-register {
    width: 100%;
    margin: 0 auto;
  }
}
@media (min-width: 1113px) {
  .woocommerce-form-login,
.woocommerce-form-register {
    padding: clamp(20px, 2.4vw, 48px) clamp(30px, 2.65vw, 52px);
    width: 100%;
  }
}

.addresses {
  display: flex;
  flex-wrap: wrap;
}
.addresses > * {
  margin-bottom: var(--wc-vertical-space);
  width: 100%;
}
@media (min-width: 768px) {
  .addresses > * {
    flex: 0 0 40%;
    margin-right: 10%;
  }
}
.addresses .title {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.5em;
}
.addresses .title h3 {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin: 0 0.2em 0 0;
  text-transform: capitalize;
}
.addresses .title .edit {
  background-image: url(../../images/woocommerce/icon-pen.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--wc-acc-nav-link-icon-size);
  color: transparent;
  font-size: 0;
  height: var(--wc-acc-nav-link-icon-size);
  padding: var(--wc-acc-nav-link-icon-size);
  width: var(--wc-acc-nav-link-icon-size);
}
.addresses .woocommerce-column__title {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin-bottom: 1.5em;
  text-transform: capitalize;
}
.addresses address {
  color: var(--primary-color2);
  font-size: var(--larger-text-size);
  font-style: normal;
  font-weight: normal;
  line-height: 1.55;
}

#customer_login {
  display: flex;
  flex: 0 0 100%;
  gap: 30px;
}
@media (max-width: 767px) {
  #customer_login {
    flex-direction: column;
  }
  #customer_login h2 {
    text-align: center;
  }
}
@media (min-width: 768px) {
  #customer_login > div {
    width: 50%;
  }
  #customer_login > div.u-column1 {
    margin-left: auto;
    margin-right: auto;
  }
}
#customer_login h2 {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin-bottom: 1em;
}
@media (max-width: 766px) {
  #customer_login h2 {
    font-size: 24px;
  }
}

@media (max-width: 767px) {
  .woocommerce-nav-toggle {
    position: absolute;
  }
  .woocommerce-nav-toggle .filter-btn {
    display: none;
  }
  .woocommerce-nav-toggle .filter-btn.is-active {
    display: block;
  }
  .woocommerce-navigation-wrapper.is-visible .woocommerce-MyAccount-navigation {
    left: 0;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .woocommerce-MyAccount-navigation {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .woocommerce-MyAccount-content {
    padding-top: 40px;
  }
}
@media (max-width: 767px) and (min-width: 767px) {
  .woocommerce-MyAccount-content {
    min-height: 440px;
  }
}
@media (max-width: 767px) and (max-width: 766px) {
  .woocommerce-MyAccount-content {
    max-width: 100%;
    overflow: auto;
  }
}
/* Impact referral my account page */
.impact-referral-my-account {
  background: #fff;
  border: 1px solid var(--secondary-color2);
  border-radius: 10px;
  padding: var(--wc-acc-nav-link-ptb, 0) var(--wc-acc-nav-link-plr, 0);
  display: block;
  width: 100%;
}
.impact-referral-my-account iframe,
.impact-referral-my-account impact-embed {
  min-height: 400px;
  width: 100%;
  border: none;
}

/**
 * Cart page
 * TODO: Refactor this...WIP
 */
body.woocommerce-cart {
  --wc-cart-img-size: 109px;
  --wc-cart-related-col: 50%;
  --wc-cart-total-col: 100%;
  --wc-quantity-input-size: 59px;
  --wc-related-product-col-items: 3;
  --wc-related-product-gap: 30px;
  --wc-related-product-image-height: 200px;
  --wc-cart-base-font: clamp(1.3rem, 0.84vw, 1.6rem);
}
@media (max-width: 1280px) {
  body.woocommerce-cart {
    --wc-cart-img-size: 90px;
    --wc-cart-total-col: 100%;
  }
}
@media (max-width: 767px) {
  body.woocommerce-cart {
    --wc-cart-related-col: 100%;
    --wc-cart-total-col: 100%;
  }
}
body.woocommerce-cart .woocommerce {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-top: 7rem;
}
body.woocommerce-cart .woocommerce > .container {
  margin: 0;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
@media (min-width: 1113px) {
  body.woocommerce-cart .woocommerce > .container {
    width: 58%;
  }
}
body.woocommerce-cart .woocommerce > .c-heading {
  width: 100%;
}
@media (max-width: 1112px) {
  body.woocommerce-cart .woocommerce > .c-heading {
    text-align: center;
  }
}
body.woocommerce-cart .cart-collaterals {
  width: 100%;
}
@media (min-width: 1113px) {
  body.woocommerce-cart .cart-collaterals {
    width: 36%;
  }
}
body.woocommerce-cart .variation {
  display: flex;
  flex-wrap: wrap;
}
body.woocommerce-cart .variation .variation-item {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: var(--wc-cart-base-font);
  margin-bottom: 0.25em;
}
body.woocommerce-cart .variation .variation-item:last-child {
  margin-bottom: 0;
}
body.woocommerce-cart .variation .variation-item dt {
  font-weight: 400;
}
body.woocommerce-cart .variation .variation-item dd {
  color: var(--primary-color1);
  font-weight: 800;
  margin-bottom: 0;
  margin-left: 0.2em;
}
body.woocommerce-cart .cart-empty {
  background-color: transparent;
  border: none;
  color: var(--secondary-color3);
  display: flex;
  flex-wrap: wrap;
  font-size: 21px;
  font-weight: 800;
  justify-content: center;
  margin-bottom: 30px;
  padding: 80px 0 0 0;
  position: relative;
  text-align: center;
  width: 100%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cart-empty {
    font-size: 16px;
  }
}
body.woocommerce-cart .cart-empty:before {
  background-image: url("data:image/svg+xml,%3Csvg width='43' height='40' viewBox='0 0 43 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M38.4015 7.38846H13.3337C12.9815 7.38846 12.6437 7.52838 12.3946 7.77744C12.1456 8.0265 12.0056 8.3643 12.0056 8.71652C12.0056 9.06875 12.1456 9.40655 12.3946 9.65561C12.6437 9.90467 12.9815 10.0446 13.3337 10.0446H38.4015C38.6476 10.0444 38.8896 10.1071 39.1046 10.2269C39.3195 10.3466 39.5002 10.5194 39.6296 10.7287C39.7589 10.938 39.8325 11.177 39.8433 11.4228C39.8542 11.6686 39.802 11.9131 39.6916 12.1331C38.1739 15.1793 36.0065 21.9744 34.9243 24.1373C34.8045 24.3768 34.6203 24.5782 34.3924 24.719C34.1645 24.8597 33.902 24.9342 33.6341 24.9341H15.1793C14.89 24.9345 14.6071 24.8478 14.3676 24.6854C14.1281 24.523 13.9429 24.2924 13.8361 24.0234C13.8361 24.0083 9.68494 5.38498 9.68494 5.38498C9.34706 3.85859 8.49853 2.49316 7.27958 1.5143C6.06063 0.535442 4.5442 0.00173656 2.98086 0.00137476H1.33103C1.15411 -0.0068574 0.977421 0.02195 0.81228 0.0859519C0.647139 0.149954 0.497184 0.247739 0.37202 0.373046C0.246856 0.498353 0.149242 0.648419 0.0854282 0.813634C0.0216147 0.978848 -0.00699095 1.15557 0.00144304 1.33248C0.00224482 1.68446 0.142423 2.02179 0.39131 2.27068C0.640197 2.51956 0.977531 2.65974 1.32951 2.66054H2.98086C3.93856 2.66028 4.86775 2.98641 5.61521 3.58515C6.36267 4.18389 6.88376 5.01949 7.09256 5.95415L11.2559 24.6579C11.2665 24.7004 11.2786 24.7459 11.2923 24.7884C11.5643 25.6042 12.086 26.3138 12.7836 26.8166C13.4813 27.3195 14.3194 27.5901 15.1793 27.5902H33.6341C34.3953 27.5902 35.1414 27.3782 35.7888 26.9779C36.4362 26.5777 36.9594 26.005 37.2996 25.3242C38.3803 23.1613 40.5431 16.3692 42.067 13.32C42.3796 12.6952 42.5272 12.0008 42.4959 11.3028C42.4646 10.6049 42.2554 9.92653 41.8881 9.33221C41.5208 8.73788 41.0077 8.24732 40.3975 7.90712C39.7872 7.56692 39.1002 7.38838 38.4015 7.38846Z' fill='%23D2D8E0'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16.6214 29.1473C15.5482 29.1473 14.499 29.4656 13.6067 30.0619C12.7143 30.6582 12.0189 31.5057 11.6082 32.4973C11.1976 33.4889 11.0902 34.58 11.2997 35.6326C11.5092 36.6852 12.0261 37.652 12.7851 38.4108C13.5441 39.1696 14.5111 39.6863 15.5638 39.8955C16.6164 40.1047 17.7075 39.997 18.6989 39.5861C19.6904 39.1751 20.5377 38.4794 21.1338 37.5869C21.7298 36.6944 22.0478 35.6452 22.0475 34.5719C22.0463 33.1333 21.4742 31.754 20.4568 30.737C19.4394 29.7199 18.06 29.1481 16.6214 29.1473ZM16.6214 37.3434C16.0736 37.3434 15.5381 37.181 15.0827 36.8767C14.6272 36.5724 14.2721 36.1399 14.0624 35.6338C13.8527 35.1278 13.7978 34.5709 13.9046 34.0336C14.0113 33.4963 14.275 33.0028 14.6622 32.6153C15.0495 32.2279 15.5429 31.9639 16.0801 31.8569C16.6173 31.7498 17.1742 31.8045 17.6804 32.0139C18.1866 32.2233 18.6193 32.5781 18.9238 33.0334C19.2284 33.4887 19.3911 34.0241 19.3914 34.5719C19.391 35.3066 19.0991 36.0111 18.5797 36.5307C18.0604 37.0503 17.3561 37.3426 16.6214 37.3434Z' fill='%23D2D8E0'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.7386 29.1473C30.6654 29.1473 29.6162 29.4656 28.7239 30.0619C27.8315 30.6582 27.136 31.5057 26.7254 32.4973C26.3148 33.4889 26.2074 34.58 26.4169 35.6326C26.6264 36.6852 27.1433 37.652 27.9023 38.4108C28.6613 39.1696 29.6283 39.6863 30.681 39.8955C31.7336 40.1047 32.8247 39.997 33.8161 39.5861C34.8076 39.1751 35.6549 38.4794 36.251 37.5869C36.847 36.6944 37.165 35.6452 37.1647 34.5719C37.1639 33.1332 36.5919 31.7537 35.5745 30.7365C34.557 29.7193 33.1773 29.1477 31.7386 29.1473ZM31.7386 37.3434C31.1908 37.3434 30.6553 37.181 30.1998 36.8767C29.7444 36.5724 29.3893 36.1399 29.1796 35.6338C28.9699 35.1278 28.915 34.5709 29.0217 34.0336C29.1285 33.4963 29.3922 33.0028 29.7794 32.6153C30.1666 32.2279 30.6601 31.9639 31.1973 31.8569C31.7345 31.7498 32.2914 31.8045 32.7976 32.0139C33.3037 32.2233 33.7365 32.5781 34.041 33.0334C34.3456 33.4887 34.5083 34.0241 34.5086 34.5719C34.5082 35.3066 34.2162 36.0111 33.6969 36.5307C33.1776 37.0503 32.4733 37.3426 31.7386 37.3434Z' fill='%23D2D8E0'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  display: block;
  height: 45px;
  left: 0;
  margin: 0 auto;
  position: absolute;
  right: 0;
  top: 15px;
  width: 45px;
}
body.woocommerce-cart .wc-empty-cart-message {
  width: 100%;
}
body.woocommerce-cart .return-to-shop {
  margin: 0 auto 180px auto;
}
body.woocommerce-cart .return-to-shop .button {
  display: inline-flex;
  font-size: 1.8rem;
  font-weight: 600;
  padding-left: clamp(45px, 3.5vw, 70px);
  padding-right: clamp(45px, 3.5vw, 70px);
  position: relative;
  text-transform: capitalize;
}
body.woocommerce-cart .return-to-shop .button:before {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.52092 4.56291C0.680938 3.72293 0.680938 2.36105 1.52092 1.52107C2.3609 0.681095 3.72277 0.681095 4.56275 1.52107L8.45347 5.41179C9.29345 6.25177 9.29345 7.61365 8.45347 8.45363C7.61349 9.29361 6.25162 9.29361 5.41164 8.45363L1.52092 4.56291Z' fill='%232455C9'/%3E%3Cpath d='M17.9791 14.8912C18.8191 15.7312 18.8191 17.093 17.9791 17.933C17.1391 18.773 15.7772 18.773 14.9372 17.933L11.0465 14.0423C10.2065 13.2023 10.2065 11.8405 11.0465 11.0005C11.8865 10.1605 13.2484 10.1605 14.0884 11.0005L17.9791 14.8912Z' fill='%23EB8B34'/%3E%3Cpath d='M17.9791 4.56291C18.8191 3.72293 18.8191 2.36105 17.9791 1.52107C17.1391 0.681095 15.7772 0.681095 14.9372 1.52107L11.0465 5.41179C10.2065 6.25177 10.2065 7.61365 11.0465 8.45363C11.8865 9.29361 13.2484 9.29361 14.0884 8.45363L17.9791 4.56291Z' fill='%2381B25C'/%3E%3Cpath d='M1.52092 14.8912C0.680938 15.7312 0.680938 17.093 1.52092 17.933C2.3609 18.773 3.72277 18.773 4.56275 17.933L8.45347 14.0423C9.29345 13.2023 9.29345 11.8405 8.45347 11.0005C7.61349 10.1605 6.25162 10.1605 5.41164 11.0005L1.52092 14.8912Z' fill='%235E328B'/%3E%3C/svg%3E%0A");
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  display: block;
  transform-origin: center;
  transition: transform 0.3s;
  height: 24px;
  min-width: 24px;
  max-width: 24px;
  margin-right: calc(var(--btn-padding-left-right, 20px) / 2);
}
body.woocommerce-cart .return-to-shop .button:hover:before {
  transform: rotate(180deg);
}
body.woocommerce-cart .cards-programs__wrap {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: -10vmin;
  max-width: 100%;
  position: relative;
}
body.woocommerce-cart .cards-programs__wrap:before {
  background-color: var(--primary-color1);
  content: "";
  display: block;
  height: 100%;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: 100vw;
  position: absolute;
  right: 50%;
  top: 0;
  width: 100vw;
  z-index: 15;
}
body.woocommerce-cart .cards-programs__wrap .container {
  position: relative;
  z-index: 20;
}
body.woocommerce-cart .c-heading h1 {
  font-size: clamp(3.6rem, 2.82vw, 5.5rem);
}
body.woocommerce-cart .woocommerce-notices-wrapper {
  position: relative;
  top: auto;
  width: 100%;
  z-index: 20;
}
body.woocommerce-cart .cross-sells {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
body.woocommerce-cart .cross-sells .products {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin-bottom: 0;
}
body.woocommerce-cart .cross-sells .products .l-rcbl__col {
  border: 1px solid var(--secondary-color2);
  border-radius: 10px;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  width: 100%;
  margin-bottom: 0;
}
body.woocommerce-cart .cross-sells .products .sale-flash {
  background-image: linear-gradient(135deg, #bef557 0%, #bef557 50%, transparent 50%, transparent 100%);
  border-radius: 10px 0 0 0;
  height: 100px;
  left: -5px;
  padding: 6px 14px;
  position: absolute;
  top: -5px;
  width: 100px;
  z-index: 20;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .sale-flash {
    height: 60px;
    padding: 2px 3px;
    width: 60px;
  }
}
body.woocommerce-cart .cross-sells .products .sale-flash:before, body.woocommerce-cart .cross-sells .products .sale-flash:after {
  background-image: linear-gradient(315deg, #95c045 0%, #95c045 50%, transparent 50%, transparent 100%);
  content: "";
  display: block;
  height: 5px;
  position: absolute;
  width: 5px;
}
body.woocommerce-cart .cross-sells .products .sale-flash:before {
  bottom: 0;
  left: -1px;
}
body.woocommerce-cart .cross-sells .products .sale-flash:after {
  right: 1px;
  top: 0;
}
body.woocommerce-cart .cross-sells .products .sale-flash__discount {
  color: var(--secondary-color3);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1;
}
body.woocommerce-cart .cross-sells .products .sale-flash__percent {
  color: var(--secondary-color3);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
}
body.woocommerce-cart .cross-sells .products .sale-flash__off {
  color: var(--secondary-color3);
  display: block;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1;
  text-transform: uppercase;
  width: 100%;
}
body.woocommerce-cart .cross-sells .products .c-block__title {
  color: var(--secondary-color3);
  display: flex;
  flex-wrap: wrap;
  width: 60%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__title {
    font-size: 13px;
    font-weight: 400;
    padding-left: 110px;
    width: 100%;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__media {
  border-right: 1px solid var(--secondary-color2);
  display: flex;
  flex-wrap: wrap;
  height: 100%;
  width: 200px;
  z-index: 15;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__media {
    height: 70px;
    position: absolute;
    width: 110px;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__media a {
  display: flex;
  flex-wrap: wrap;
  height: 100%;
  padding: 20px;
  width: 100%;
}
body.woocommerce-cart .cross-sells .products .c-block__media a img {
  object-fit: contain;
}
body.woocommerce-cart .cross-sells .products .c-block__price {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__price {
    border-bottom: 1px solid var(--secondary-color2);
    min-height: 70px;
    padding: 10px 15px;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__price .price {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: 40%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__price .price {
    justify-content: flex-start;
    padding-left: 110px;
    width: 100%;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__price .price .from {
  color: var(--primary-color1);
  font-size: var(--wc-cart-base-font);
}
body.woocommerce-cart .cross-sells .products .c-block__price .price .from {
  padding-right: 5px;
}
body.woocommerce-cart .cross-sells .products .c-block__price .price ins,
body.woocommerce-cart .cross-sells .products .c-block__price .price bdi {
  color: var(--primary-color1);
  font-weight: 800;
  text-decoration: none;
}
body.woocommerce-cart .cross-sells .products .c-block__price .price del {
  color: #8a93ae;
  font-size: var(--wc-cart-base-font);
  position: relative;
  text-decoration: none;
}
body.woocommerce-cart .cross-sells .products .c-block__price .price del:after {
  background-color: #8a93ae;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  top: 12px;
  transform: rotateZ(-10deg);
  width: 100%;
  z-index: 20;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__price .price del:after {
    left: 5px;
    top: 9px;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__price .price del bdi {
  color: #8a93ae;
  font-weight: 400;
  text-decoration: none;
}
body.woocommerce-cart .cross-sells .products .c-block__price .price .subscription-details,
body.woocommerce-cart .cross-sells .products .c-block__price .price .from {
  color: var(--primary-color1);
  font-size: var(--wc-cart-base-font);
}
body.woocommerce-cart .cross-sells .products .c-block__text {
  color: var(--primary-color1);
  font-size: var(--wc-cart-base-font);
  padding-right: 30%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__text {
    padding: 15px;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__body {
  display: flex;
  flex-wrap: wrap;
  padding-left: 35px;
  width: calc(100% - 200px);
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__body {
    padding: 0;
    width: 100%;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__btn {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 0;
  width: 100%;
}
@media (max-width: 767px) {
  body.woocommerce-cart .cross-sells .products .c-block__btn {
    padding: 10px 15px 10px 15px;
  }
}
body.woocommerce-cart .cross-sells .products .c-block__btn a {
  color: var(--primary-color1);
  font-size: var(--wc-cart-base-font);
  font-weight: 700;
}
body.woocommerce-cart .cross-sells .products .c-block__btn a.read-more {
  display: flex;
  align-items: center;
}
body.woocommerce-cart .cross-sells .products .c-block__btn a.read-more:after {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg width='11' height='6' viewBox='0 0 11 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.49972 3.67925L1.79136 0.27975C1.38115 -0.0932504 0.717451 -0.0932504 0.307244 0.279749C-0.102414 0.656749 -0.102414 1.26575 0.307244 1.64275L4.75794 5.72025C5.16815 6.09325 5.8324 6.09325 6.24206 5.72025L10.6928 1.64275C11.103 1.26575 11.1019 0.65675 10.6928 0.27975C10.2831 -0.09325 9.6194 -0.0932501 9.20919 0.27975L5.49972 3.67925Z' fill='%233397EF'/%3E%3C/svg%3E%0A");
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: 50%;
  width: 11px;
  height: 6px;
  margin-left: 5px;
  position: relative;
  top: 1px;
}
.is-active body.woocommerce-cart .cross-sells .products .c-block__btn a.read-more:after {
  transform: rotate(180deg);
}
body.woocommerce-cart .cross-sells .products .c-block__btn .button {
  background-image: url("data:image/svg+xml,%3Csvg width='11' height='12' viewBox='0 0 11 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.8125 7.3125V11.5H6.8125V7.3125L11 7.3125V5.3125L6.8125 5.3125V0.5H4.8125V5.3125L0 5.3125V7.3125L4.8125 7.3125Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: left 20px center;
  background-repeat: no-repeat;
  background-size: 11px;
  font-weight: 600;
  padding-left: 40px;
}

.woocommerce-cart-form {
  margin-bottom: var(--wc-vertical-space);
}
.woocommerce-cart-form .cart_item {
  background-color: #ffffff;
  border: 1px solid var(--secondary-color2);
  border-radius: 10px;
  display: flex;
  flex-direction: row;
  margin-bottom: 2em;
  position: relative;
  width: 100%;
}
.woocommerce-cart-form .cart_item .product-thumbnail {
  align-items: center;
  border-right: 1px solid var(--secondary-color2);
  display: flex;
  padding: 20px;
  width: 24%;
}
.woocommerce-cart-form .cart_item .product-thumbnail a img {
  object-fit: contain;
  width: 100%;
}
.woocommerce-cart-form .cart_item .product-wrapper {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 2.4rem 3.5rem;
  flex: 1;
}
.woocommerce-cart-form .cart_item .product-name {
  flex: 1;
}
.woocommerce-cart-form .cart_item .product-name > a {
  color: var(--secondary-color3);
  display: block;
  font-size: clamp(1.6rem, 1.05vw, 2rem);
  padding: 0 20px 0 0;
}
@media (min-width: 768px) {
  .woocommerce-cart-form .cart_item .product-name > a {
    font-weight: 700;
  }
}
.woocommerce-cart-form .cart_item .product-name ul {
  margin-top: 0.7em;
}
.woocommerce-cart-form .cart_item .product-name ul .variation {
  gap: 5px 10px;
}
.woocommerce-cart-form .cart_item .product-name ul .variation .variation-item {
  margin: 0;
}
.woocommerce-cart-form .cart_item .product-name ul .variation .variation-item:not(:first-child):not(:last-child) {
  margin: 0;
}
.woocommerce-cart-form .cart_item .product-subtotal {
  text-align: right;
}
.woocommerce-cart-form .cart_item .product-subtotal .woocommerce-Price-amount {
  color: var(--primary-color1);
  font-size: 1.9rem;
  font-weight: 800;
}
.woocommerce-cart-form .cart_item .product-subtotal .subscription-details {
  font-size: var(--wc-cart-base-font);
}
.woocommerce-cart-form .cart_item .product-subtotal .subscription-switch-direction {
  display: block;
  font-size: 1.4rem;
}
.woocommerce-cart-form .cart_item .product-remove {
  align-items: center;
  background-color: var(--secondary-color2);
  border-radius: 100%;
  display: flex;
  height: 3.3rem;
  justify-content: center;
  overflow: hidden;
  position: absolute;
  right: -17px;
  text-align: center;
  top: -18px;
  width: 3.3rem;
  z-index: 1;
}
.woocommerce-cart-form .cart_item .product-remove:hover {
  opacity: 0.8;
}
.woocommerce-cart-form .cart_item .product-remove a {
  display: block;
  font-size: 26px;
  position: relative;
  top: -1px;
  width: 100%;
}
.woocommerce-cart-form table {
  border-collapse: collapse;
}
.woocommerce-cart-form thead {
  background-color: transparent;
  border-bottom: 1px solid var(--border-color);
}
.woocommerce-cart-form thead th {
  color: var(--label-color);
  font-size: var(--larger-text-size);
  font-weight: bold;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}
.woocommerce-cart-form thead th.product-name {
  text-align: left;
}
.woocommerce-cart-form tbody tr {
  background-color: transparent !important;
  border-bottom: 1px solid var(--border-color);
}
.woocommerce-cart-form tbody tr:last-child {
  border: none;
}
.woocommerce-cart-form tbody td {
  padding-bottom: 24px;
  padding-top: 24px;
  vertical-align: middle;
}
.woocommerce-cart-form td.product-thumbnail img {
  height: var(--wc-cart-img-size);
  width: var(--wc-cart-img-size);
}
.woocommerce-cart-form td.product-name {
  color: var(--primary-color2);
  font-size: 1.8rem;
  line-height: 1.67;
}
.woocommerce-cart-form td.product-price {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.33;
  text-align: center;
  text-transform: uppercase;
}
.woocommerce-cart-form td.product-quantity {
  text-align: center;
}
.woocommerce-cart-form td.product-quantity .quantity {
  background: var(--input-background-color);
  border: 1px solid var(--border-color);
  display: inline-flex;
}
.woocommerce-cart-form td.product-quantity .quantity .item_qty {
  color: var(--input-color);
  cursor: pointer;
  display: block;
  padding: 10px 12px;
}
.woocommerce-cart-form td.product-quantity .quantity .item_qty.minus {
  border-right: 1px solid var(--border-color);
}
.woocommerce-cart-form td.product-quantity .quantity .item_qty.plus {
  border-left: 1px solid var(--border-color);
}
.woocommerce-cart-form td.product-quantity input[type=number] {
  -moz-appearance: textfield;
  -moz-appearance: textfield;
  border: none;
  text-align: center;
  width: var(--wc-quantity-input-size);
}
.woocommerce-cart-form td.product-quantity input[type=number]::-webkit-outer-spin-button, .woocommerce-cart-form td.product-quantity input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce-cart-form td.product-quantity .screen-reader-text {
  display: none;
}
.woocommerce-cart-form td.product-subtotal {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.33;
  text-align: center;
  text-transform: uppercase;
}
.woocommerce-cart-form td.product-remove .remove {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.78807 11.9099L6 8.12183L2.21193 11.9099C1.79524 12.3266 1.11339 12.3266 0.696699 11.9099C0.280011 11.4932 0.280012 10.8114 0.6967 10.3947L4.48477 6.6066L0.696699 2.81853C0.280011 2.40184 0.280011 1.71999 0.696699 1.3033C1.11339 0.886613 1.79524 0.886613 2.21193 1.3033L6 5.09137L9.78807 1.3033C10.2048 0.886613 10.8866 0.886613 11.3033 1.3033C11.72 1.71999 11.72 2.40184 11.3033 2.81853L7.51523 6.6066L11.3033 10.3947C11.72 10.8114 11.72 11.4932 11.3033 11.9099C10.8866 12.3266 10.2048 12.3266 9.78807 11.9099Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 16px auto;
  color: transparent;
  display: block;
  font-size: 0;
  padding: 10px;
}
.woocommerce-cart-form .actions {
  background: var(--primary-color3);
  border: 2px dashed var(--secondary-color2);
  border-radius: clamp(10px, 1.05vw, 20px);
  padding: 2rem 1.5rem;
}
@media (max-width: 767px) {
  .woocommerce-cart-form .actions {
    display: flex;
    flex-wrap: wrap;
  }
}
.woocommerce-cart-form .actions .coupon {
  align-items: center;
  display: inline-flex;
}
@media (min-width: 768px) {
  .woocommerce-cart-form .actions .coupon {
    width: 50%;
  }
}
@media (max-width: 767px) {
  .woocommerce-cart-form .actions .coupon {
    width: 100%;
  }
}
.woocommerce-cart-form .actions .coupon label {
  display: none;
}
.woocommerce-page:not(.woocommerce-shop) .site-content .woocommerce-cart-form .actions .coupon .input-text {
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='14' viewBox='0 0 19 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5 12V2C17.5 1.44772 17.0523 1 16.5 1H5.11803C4.73926 1 4.393 1.214 4.22361 1.55279L1.72361 6.55279C1.58284 6.83431 1.58284 7.16569 1.72361 7.44721L4.22361 12.4472C4.393 12.786 4.73926 13 5.11803 13H16.5C17.0523 13 17.5 12.5523 17.5 12Z' stroke='%23213B8C' stroke-width='1.3'/%3E%3Cpath d='M8.4125 3.40039C9.2965 3.40039 10.0125 4.11639 10.0125 5.00039C10.0125 5.88439 9.2965 6.60039 8.4125 6.60039C7.5285 6.60039 6.8125 5.88439 6.8125 5.00039C6.8125 4.11639 7.5285 3.40039 8.4125 3.40039ZM13.2125 11.4004C12.3285 11.4004 11.6125 10.6844 11.6125 9.80039C11.6125 8.91639 12.3285 8.20039 13.2125 8.20039C14.0965 8.20039 14.8125 8.91639 14.8125 9.80039C14.8125 10.6844 14.0957 11.4004 13.2125 11.4004ZM7.9437 11.4004L6.8125 10.2692L13.6813 3.40039L14.8125 4.53159L7.9437 11.4004Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-position: 20px 50%;
  background-repeat: no-repeat;
  border: 1px solid var(--secondary-color2);
  border-radius: 100px 0 0 100px;
  border-right: 0;
  color: var(--secondary-color3);
  font-size: 13px;
  font-weight: 400;
  line-height: 21px;
  margin-right: 0;
  padding-left: 4.8rem;
  width: 240px;
}
@media (max-width: 767px) {
  .woocommerce-page:not(.woocommerce-shop) .site-content .woocommerce-cart-form .actions .coupon .input-text {
    padding-left: 5.8rem;
  }
}
.woocommerce-cart-form .actions .coupon .input-text + .button {
  border-radius: 0 100px 100px 0;
}
@media (max-width: 767px) {
  .woocommerce-cart-form .actions .coupon .input-text + .button {
    font-size: 14px;
    width: calc(100% - 240px);
    padding: 0;
  }
}
.woocommerce-cart-form .actions .button {
  font-size: 1.4rem;
  height: 43px;
  line-height: 21px;
  margin: 0;
  padding: 0 30px;
}
.woocommerce-cart-form .actions .button[name=update_cart] {
  background-color: var(--secondary-color3);
  color: #ffffff;
}
@media (max-width: 767px) {
  .woocommerce-cart-form .actions .button[name=update_cart] {
    font-size: 14px;
    margin-top: 10px;
    width: 100%;
  }
}
.woocommerce-cart-form .actions > .button {
  float: right;
}

.cart-collaterals {
  display: flex;
  justify-content: space-between;
}
.cart-collaterals .cross-sells {
  width: var(--wc-cart-related-col);
}
.cart-collaterals .cross-sells > h2 {
  color: var(--primary-color1);
  font-size: var(--larger-text-size);
  font-weight: bold;
  line-height: 1.45;
  margin: 0.7em 0;
  text-transform: capitalize;
}
.cart-collaterals .cross-sells ul.products {
  display: grid;
  gap: var(--wc-related-product-gap);
  grid-template-columns: repeat(var(--wc-related-product-col-items), minmax(0, 1fr));
}
.cart-collaterals .cross-sells ul.products li.product {
  text-align: center;
}
.cart-collaterals .cross-sells ul.products li.product img {
  margin-bottom: 15px;
  max-height: var(--wc-related-product-image-height);
  object-fit: cover;
  width: 100%;
}
.cart-collaterals .cross-sells .woocommerce-loop-product__title {
  color: #3d3d3d;
  font-size: var(--smaller-text-size);
  font-weight: normal;
  line-height: 1.5;
}
.cart-collaterals .cross-sells .star-rating {
  place-content: center;
}
.cart-collaterals .cross-sells .price {
  color: #3d3d3d;
  font-size: var(--smaller-text-size);
  font-weight: 500;
  line-height: 1.4;
}
.cart-collaterals .cross-sells .button,
.cart-collaterals .cross-sells .tinv-wraper {
  display: none;
}
.cart-collaterals .cart_totals {
  background-color: #ffffff;
  border: 1px solid var(--secondary-color2);
  border-radius: clamp(10px, 1.05vw, 20px);
  box-shadow: 0 10px 60px rgba(89, 119, 215, 0.2);
  height: max-content;
  margin-left: auto;
  width: var(--wc-cart-total-col);
}
.cart-collaterals .cart_totals .c-heading {
  margin-bottom: 0;
  padding: 3rem clamp(3rem, 3.12vw, 6rem) 0.8rem;
  position: relative;
}
.cart-collaterals .cart_totals .c-heading:after {
  background: var(--secondary-color5);
  border-radius: 0 50px 50px 0;
  content: "";
  height: 40px;
  left: 0;
  position: absolute;
  top: 30px;
  transition: width 0.3s, height 0.3s;
  width: 6px;
}
.cart-collaterals .shop_table {
  width: calc(100% - clamp(6rem, 6.25vw, 12rem));
  font-size: var(--wc-cart-base-font);
}
.cart-collaterals .woocommerce-shipping-methods li {
  justify-content: flex-end;
}
.cart-collaterals .shipping-calculator-form {
  width: calc(100% + 100px);
  margin-left: -100px;
  padding-top: 20px;
}
.cart-collaterals .shipping-calculator-form .form-row {
  text-align: left;
  max-width: 100% !important;
  margin-bottom: 10px;
}
.cart-collaterals .wc-proceed-to-checkout {
  margin-bottom: 1.5rem;
  text-align: center;
}
.cart-collaterals .wc-proceed-to-checkout a {
  font-size: clamp(1.4rem, 0.95vw, 1.8rem);
  font-weight: 700;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2rem;
  padding-left: clamp(40px, 2.6vw, 60px);
  padding-right: clamp(40px, 2.6vw, 60px);
  position: relative;
  width: calc(100% - clamp(6rem, 6.24vw, 12rem));
}
.cart-collaterals .wc-proceed-to-checkout a:before {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.52092 4.56291C0.680938 3.72293 0.680938 2.36105 1.52092 1.52107C2.3609 0.681095 3.72277 0.681095 4.56275 1.52107L8.45347 5.41179C9.29345 6.25177 9.29345 7.61365 8.45347 8.45363C7.61349 9.29361 6.25162 9.29361 5.41164 8.45363L1.52092 4.56291Z' fill='%232455C9'/%3E%3Cpath d='M17.9791 14.8912C18.8191 15.7312 18.8191 17.093 17.9791 17.933C17.1391 18.773 15.7772 18.773 14.9372 17.933L11.0465 14.0423C10.2065 13.2023 10.2065 11.8405 11.0465 11.0005C11.8865 10.1605 13.2484 10.1605 14.0884 11.0005L17.9791 14.8912Z' fill='%23EB8B34'/%3E%3Cpath d='M17.9791 4.56291C18.8191 3.72293 18.8191 2.36105 17.9791 1.52107C17.1391 0.681095 15.7772 0.681095 14.9372 1.52107L11.0465 5.41179C10.2065 6.25177 10.2065 7.61365 11.0465 8.45363C11.8865 9.29361 13.2484 9.29361 14.0884 8.45363L17.9791 4.56291Z' fill='%2381B25C'/%3E%3Cpath d='M1.52092 14.8912C0.680938 15.7312 0.680938 17.093 1.52092 17.933C2.3609 18.773 3.72277 18.773 4.56275 17.933L8.45347 14.0423C9.29345 13.2023 9.29345 11.8405 8.45347 11.0005C7.61349 10.1605 6.25162 10.1605 5.41164 11.0005L1.52092 14.8912Z' fill='%235E328B'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  display: block;
  height: 22px;
  left: clamp(26px, 2vw, 38px);
  position: absolute;
  top: clamp(11px, 0.79vw, 15px);
  transform-origin: center;
  transition: transform 0.3s;
  width: 22px;
}
.cart-collaterals .wc-proceed-to-checkout a:hover:before {
  transform: rotate(180deg);
}
.cart-collaterals .wc-proceed-to-checkout a.loading {
  opacity: 0.75;
  cursor: not-allowed;
}
.cart-collaterals .wc-proceed-to-checkout a.loading .c-btn__ico {
  animation: none;
}
.cart-collaterals .wc-cart-totals-additional {
  font-size: var(--wc-cart-base-font);
  margin-bottom: 3rem;
  margin-top: 0;
  padding: 0 clamp(3rem, 3.12vw, 6rem);
  text-align: center;
}
.cart-collaterals .wc-cart-totals-additional a {
  font-weight: 600;
  text-decoration: underline;
}

@media (max-width: 767px) {
  .woocommerce-cart-form thead th:not(.product-name) {
    display: none;
  }
  .woocommerce-cart-form thead th.product-name {
    text-align: center;
  }
  .woocommerce-cart-form tbody tr {
    display: flex;
    flex-direction: column;
    padding: 10px 0;
  }
  .woocommerce-cart-form tbody td {
    display: block;
    padding: 0.2em 0.5em !important;
    text-align: center;
    width: 100%;
  }
  .woocommerce-cart-form tbody td.product-thumbnail img {
    height: auto;
    width: 120px;
  }
  .woocommerce-cart-form tbody td.product-name {
    font-size: 2.4rem;
    font-weight: bold;
  }
  .woocommerce-cart-form tbody td.product-price, .woocommerce-cart-form tbody td.product-subtotal {
    font-weight: normal;
  }
  .woocommerce-cart-form tbody td.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
  }
}
/**
 * Woocommerce: Checkout page
 * TODO: Refactor this...WIP
 */
:root {
  --wc-checkout-review-col: 41.666666%;
  --wc-payment-accordion-padding: 1.6rem 3.2rem;
  --wc-checkout-text-size: clamp(1.3rem, 0.84vw, 1.6rem);
}
@media (max-width: 1280px) {
  :root {
    --wc-checkout-review-col: 50%;
  }
}

body.woocommerce-checkout .woocommerce {
  padding-top: 7rem;
}
body.woocommerce-checkout .variation {
  display: flex;
  flex-wrap: wrap;
}
body.woocommerce-checkout .variation .variation-item {
  align-items: center;
  display: flex;
  font-size: var(--wc-checkout-text-size);
  margin-top: 0.25em;
}
body.woocommerce-checkout .variation .variation-item dt {
  font-weight: 400;
}
body.woocommerce-checkout .variation .variation-item dd {
  color: var(--primary-color1);
  font-weight: 700;
  margin-bottom: 0;
  margin-left: 0.2em;
}

form.woocommerce-checkout::after {
  clear: both;
  content: "";
  display: block;
}
form.woocommerce-checkout h3 {
  color: var(--primary-color1);
  font-family: var(--h3-font);
  font-size: clamp(var(--h3-font-size-mobile), 1.6vw, var(--h3-font-size));
  font-weight: var(--h3-font-weight, 600);
  letter-spacing: var(--h3-letter-spacing, 0);
  line-height: var(--h3-line-height, 1);
  margin-bottom: var(--h3-margin-bottom, 0.5em);
  text-transform: capitalize;
}
@media (min-width: 1112px) {
  form.woocommerce-checkout #customer_details {
    float: left;
    padding-right: var(--page-gutter);
    width: 50%;
  }
  form.woocommerce-checkout #order_review_heading,
form.woocommerce-checkout #order_review {
    float: right;
    padding-left: var(--page-gutter);
    width: var(--wc-checkout-review-col);
  }
  form.woocommerce-checkout #order_review_heading .shop_table,
form.woocommerce-checkout #order_review .shop_table {
    font-size: var(--wc-checkout-text-size);
  }
}
form.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row label {
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
form.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row label .error-message {
  text-transform: none;
  font-size: 1.2rem;
  color: #e2401c;
  letter-spacing: normal;
  font-weight: 400;
}
form.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row.disabled label {
  display: flex;
  align-items: center;
}
form.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row.disabled label abbr.required {
  display: none;
}
form.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row .woocommerce-input-wrapper {
  display: block;
}
form.woocommerce-checkout #customer_details {
  margin-bottom: var(--wc-vertical-space);
}
form.woocommerce-checkout .woocommerce-error {
  display: block;
}
form.woocommerce-checkout .woocommerce-additional-fields .c-heading {
  align-items: center;
}
form.woocommerce-checkout .woocommerce-additional-fields .c-heading__title {
  font-size: 2.1rem;
  margin: 0;
}
form.woocommerce-checkout .woocommerce-additional-fields .is-wysiwyg {
  color: var(--primary-color1);
}
form.woocommerce-checkout .woocommerce-additional-fields .is-wysiwyg a {
  color: var(--primary-color1);
  font-weight: 700;
}
form.woocommerce-checkout .woocommerce-checkout-payment__trust-badges {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}
form.woocommerce-checkout .woocommerce-checkout-payment__trust-text {
  color: var(--primary-color1);
  font-size: var(--wc-checkout-text-size);
}
form.woocommerce-checkout .woocommerce-checkout-payment__trust-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  padding: 10px 0 0 0;
}
form.woocommerce-checkout .woocommerce-checkout-payment__trust-logos img {
  height: 60px;
  object-fit: contain;
  padding: 12px;
  width: 130px;
}

.woocommerce-billing-fields__field-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.woocommerce-billing-fields__field-wrapper .form-row {
  flex: 0 0 calc(50% - 15px);
  margin-bottom: 3rem;
  width: calc(50% - 15px);
}
@media (max-width: 766px) {
  .woocommerce-billing-fields__field-wrapper .form-row {
    flex: 0 0 100%;
    width: 100%;
  }
}
.woocommerce-billing-fields__field-wrapper .form-row#billing_company_field {
  display: none;
  flex: 0 0 100%;
  width: 100%;
}
.woocommerce-billing-fields__field-wrapper #billing_address_1_field,
.woocommerce-billing-fields__field-wrapper #billing_address_2_field {
  flex: 0 0 100%;
  width: 100%;
}

.woocommerce-terms-and-conditions-wrapper {
  font-size: var(--wc-checkout-text-size);
  padding: 1em;
}
.woocommerce-terms-and-conditions-wrapper .validate-required {
  margin: 0;
}

#payment .place-order {
  border-radius: clamp(10px, 1.05vw, 20px);
  float: none;
  margin-bottom: 0;
  width: 100%;
}
#payment .place-order .button {
  white-space: pre-wrap;
  width: 100%;
}

#payment {
  margin-bottom: var(--wc-vertical-space);
  margin-top: 60px;
}
#payment .create-account {
  clear: both;
}
#payment .place-order {
  background-color: #fafafa;
}
#payment .payment_methods {
  background-color: var(--secondary-color1);
  border: 1px solid var(--border-color);
  border-radius: clamp(10px, 1.05vw, 20px);
  margin-bottom: var(--wc-vertical-space);
  overflow: hidden;
}
#payment .payment_methods > .woocommerce-PaymentMethod,
#payment .payment_methods > .wc_payment_method {
  border-bottom: 1px solid var(--border-color);
}
#payment .payment_methods > .woocommerce-PaymentMethod > label,
#payment .payment_methods > .wc_payment_method > label {
  color: var(--primary-color1);
  cursor: pointer;
  font-size: var(--smaller-text-size);
  font-weight: bold;
  line-height: 2.2;
  margin: 0;
  padding: var(--wc-payment-accordion-padding);
  text-transform: uppercase;
}
#payment .payment_methods > .woocommerce-PaymentMethod > label a,
#payment .payment_methods > .wc_payment_method > label a {
  text-decoration: underline;
}
#payment .payment_methods li img {
  display: none;
}
#payment .payment_methods li.woocommerce-PaymentMethod > input[type=radio]:first-child, #payment .payment_methods li.wc_payment_method > input[type=radio]:first-child {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px !important;
  word-wrap: normal !important;
}
#payment .payment_methods li:last-child:not(.woocommerce-notice) {
  border-bottom: 0;
  padding-bottom: 0;
}
#payment .payment_methods li p {
  margin: 0;
}
#payment .payment_methods li .payment_box {
  background-color: white;
  border-top: 1px solid var(--border-color);
  padding: var(--wc-payment-accordion-padding);
}
#payment .payment_methods li .payment_box fieldset {
  border: 0;
  margin: 0;
}
#payment .payment_methods li .payment_box fieldset label {
  margin-left: 0;
  width: auto;
}
#payment .payment_methods li .payment_box fieldset .form-row {
  margin-bottom: 1em;
}
#payment .payment_methods li .payment_box fieldset .form-row input[type=checkbox] {
  margin-right: 5px;
}
#payment .payment_methods li .payment_box fieldset #cvv {
  width: 22% !important;
}
#payment .payment_methods li .payment_box fieldset .help {
  float: right;
  width: 75%;
}
#payment .payment_methods li .payment_box .woocommerce-SavedPaymentMethods {
  margin: 0;
  padding-top: 1em;
}
#payment .payment_methods li .payment_box ul.wc-saved-payment-methods {
  margin-left: 0;
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number,
#payment .payment_methods li .payment_box .wc-credit-card-form-card-expiry,
#payment .payment_methods li .payment_box .wc-credit-card-form-card-cvc {
  font-size: ms(2);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number {
  background-image: url(../../../assets/images/credit-cards/unknown.svg);
  background-position: right ms(-2) center;
  background-repeat: no-repeat;
  background-size: 31px 20px;
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.visa {
  background-image: url(../../../assets/images/credit-cards/visa.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.mastercard {
  background-image: url(../../../assets/images/credit-cards/mastercard.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.laser {
  background-image: url(../../../assets/images/credit-cards/laser.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.dinersclub {
  background-image: url(../../../assets/images/credit-cards/diners.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.maestro {
  background-image: url(../../../assets/images/credit-cards/maestro.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.jcb {
  background-image: url(../../../assets/images/credit-cards/jcb.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.amex {
  background-image: url(../../../assets/images/credit-cards/amex.svg);
}
#payment .payment_methods li .payment_box .wc-credit-card-form-card-number.discover {
  background-image: url(../../../assets/images/credit-cards/discover.svg);
}
#payment .payment_methods li .payment_box label.sv-wc-payment-gateway-payment-form-saved-payment-method {
  width: calc(100% - 25px);
}
#payment .terms {
  clear: both;
  float: none;
  margin-bottom: 1em;
  width: 100%;
}
#payment .terms label {
  cursor: pointer;
  display: block;
}
#payment .button {
  font-size: 1.8rem;
  font-weight: 600;
  margin: 0 auto;
  padding-left: clamp(60px, 4vw, 80px);
  padding-right: clamp(60px, 4vw, 80px);
  position: relative;
}
#payment .button:before {
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.52092 4.56291C0.680938 3.72293 0.680938 2.36105 1.52092 1.52107C2.3609 0.681095 3.72277 0.681095 4.56275 1.52107L8.45347 5.41179C9.29345 6.25177 9.29345 7.61365 8.45347 8.45363C7.61349 9.29361 6.25162 9.29361 5.41164 8.45363L1.52092 4.56291Z' fill='%232455C9'/%3E%3Cpath d='M17.9791 14.8912C18.8191 15.7312 18.8191 17.093 17.9791 17.933C17.1391 18.773 15.7772 18.773 14.9372 17.933L11.0465 14.0423C10.2065 13.2023 10.2065 11.8405 11.0465 11.0005C11.8865 10.1605 13.2484 10.1605 14.0884 11.0005L17.9791 14.8912Z' fill='%23EB8B34'/%3E%3Cpath d='M17.9791 4.56291C18.8191 3.72293 18.8191 2.36105 17.9791 1.52107C17.1391 0.681095 15.7772 0.681095 14.9372 1.52107L11.0465 5.41179C10.2065 6.25177 10.2065 7.61365 11.0465 8.45363C11.8865 9.29361 13.2484 9.29361 14.0884 8.45363L17.9791 4.56291Z' fill='%2381B25C'/%3E%3Cpath d='M1.52092 14.8912C0.680938 15.7312 0.680938 17.093 1.52092 17.933C2.3609 18.773 3.72277 18.773 4.56275 17.933L8.45347 14.0423C9.29345 13.2023 9.29345 11.8405 8.45347 11.0005C7.61349 10.1605 6.25162 10.1605 5.41164 11.0005L1.52092 14.8912Z' fill='%235E328B'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  display: block;
  height: 22px;
  left: clamp(26px, 2vw, 38px);
  position: absolute;
  top: 15px;
  transform-origin: center;
  transition: transform 0.3s;
  width: 22px;
}
#payment .button:hover:before {
  transform: rotate(180deg);
}

.assistance-info {
  border: 2px dashed var(--secondary-color2);
  border-radius: clamp(10px, 1.05vw, 20px);
  padding: 2.5rem 3rem;
}
.assistance-info .c-heading {
  display: flex;
  font-size: 2.1rem;
}
.assistance-info .c-heading svg {
  margin-right: 1rem;
  margin-top: 0.2rem;
}
.assistance-info .content-single {
  font-size: var(--wc-checkout-text-size);
}
.assistance-info .content-single a {
  font-weight: 600;
  text-decoration: underline;
}
.assistance-info .content-single p:last-child {
  margin-bottom: 0;
}

.woocommerce-checkout #order_review .shop_table,
.woocommerce-cart .cart-collaterals .shop_table,
.woocommerce-order-details .shop_table {
  display: block;
  padding-top: 1.8rem;
  background: #ffffff;
  border-top: 1px solid var(--secondary-color2);
  margin: auto;
}
.woocommerce-checkout #order_review .shop_table tbody,
.woocommerce-checkout #order_review .shop_table tfoot,
.woocommerce-cart .cart-collaterals .shop_table tbody,
.woocommerce-cart .cart-collaterals .shop_table tfoot,
.woocommerce-order-details .shop_table tbody,
.woocommerce-order-details .shop_table tfoot {
  display: block;
}
.woocommerce-checkout #order_review .shop_table tbody > tr,
.woocommerce-checkout #order_review .shop_table tfoot > tr,
.woocommerce-cart .cart-collaterals .shop_table tbody > tr,
.woocommerce-cart .cart-collaterals .shop_table tfoot > tr,
.woocommerce-order-details .shop_table tbody > tr,
.woocommerce-order-details .shop_table tfoot > tr {
  display: flex;
  justify-content: space-between;
  gap: 15px;
}
.woocommerce-checkout #order_review .shop_table .product-name,
.woocommerce-cart .cart-collaterals .shop_table .product-name,
.woocommerce-order-details .shop_table .product-name {
  color: var(--secondary-color3);
  font-weight: bold;
}
.woocommerce-checkout #order_review .shop_table .product-name .product-quantity,
.woocommerce-cart .cart-collaterals .shop_table .product-name .product-quantity,
.woocommerce-order-details .shop_table .product-name .product-quantity {
  display: none;
}
.woocommerce-checkout #order_review .shop_table .product-name ul,
.woocommerce-cart .cart-collaterals .shop_table .product-name ul,
.woocommerce-order-details .shop_table .product-name ul {
  margin-top: 0.7em;
}
.woocommerce-checkout #order_review .shop_table .product-name ul .variation,
.woocommerce-cart .cart-collaterals .shop_table .product-name ul .variation,
.woocommerce-order-details .shop_table .product-name ul .variation {
  display: block;
}
.woocommerce-checkout #order_review .shop_table .variation-item dd,
.woocommerce-cart .cart-collaterals .shop_table .variation-item dd,
.woocommerce-order-details .shop_table .variation-item dd {
  color: var(--secondary-color3);
}
.woocommerce-checkout #order_review .shop_table tbody tr,
.woocommerce-cart .cart-collaterals .shop_table tbody tr,
.woocommerce-order-details .shop_table tbody tr {
  border-top: 1px solid #d0d4de;
}
.woocommerce-checkout #order_review .shop_table tbody tr:first-child,
.woocommerce-cart .cart-collaterals .shop_table tbody tr:first-child,
.woocommerce-order-details .shop_table tbody tr:first-child {
  border-top: none;
}
.woocommerce-checkout #order_review .shop_table tbody tr:first-child th,
.woocommerce-checkout #order_review .shop_table tbody tr:first-child td,
.woocommerce-cart .cart-collaterals .shop_table tbody tr:first-child th,
.woocommerce-cart .cart-collaterals .shop_table tbody tr:first-child td,
.woocommerce-order-details .shop_table tbody tr:first-child th,
.woocommerce-order-details .shop_table tbody tr:first-child td {
  padding-top: 0;
}
.woocommerce-checkout #order_review .shop_table tr,
.woocommerce-cart .cart-collaterals .shop_table tr,
.woocommerce-order-details .shop_table tr {
  border-top: 1px solid #d0d4de;
}
.woocommerce-checkout #order_review .shop_table tr th,
.woocommerce-checkout #order_review .shop_table tr td,
.woocommerce-cart .cart-collaterals .shop_table tr th,
.woocommerce-cart .cart-collaterals .shop_table tr td,
.woocommerce-order-details .shop_table tr th,
.woocommerce-order-details .shop_table tr td {
  padding: 1.5rem 0;
}
.woocommerce-checkout #order_review .shop_table tr th,
.woocommerce-cart .cart-collaterals .shop_table tr th,
.woocommerce-order-details .shop_table tr th {
  color: var(--primary-color1);
  font-size: var(--wc-checkout-text-size);
  vertical-align: top;
}
@media (min-width: 1113px) {
  .woocommerce-checkout #order_review .shop_table tr th,
.woocommerce-cart .cart-collaterals .shop_table tr th,
.woocommerce-order-details .shop_table tr th {
    text-transform: uppercase;
  }
}
.woocommerce-checkout #order_review .shop_table .fee.estimated td,
.woocommerce-cart .cart-collaterals .shop_table .fee.estimated td,
.woocommerce-order-details .shop_table .fee.estimated td {
  opacity: 0.6;
  cursor: default;
}
.woocommerce-checkout #order_review .shop_table .cart-discount td,
.woocommerce-cart .cart-collaterals .shop_table .cart-discount td,
.woocommerce-order-details .shop_table .cart-discount td {
  color: #729334;
  font-weight: 700;
}
.woocommerce-checkout #order_review .shop_table .order-total,
.woocommerce-cart .cart-collaterals .shop_table .order-total,
.woocommerce-order-details .shop_table .order-total {
  border-bottom: 1px solid #d0d4de;
}
.woocommerce-checkout #order_review .shop_table .order-total th,
.woocommerce-cart .cart-collaterals .shop_table .order-total th,
.woocommerce-order-details .shop_table .order-total th {
  color: var(--primary-color1);
  font-size: clamp(1.4rem, 0.95vw, 1.8rem);
  font-weight: 800;
  vertical-align: top;
}
@media (min-width: 1113px) {
  .woocommerce-checkout #order_review .shop_table .order-total th,
.woocommerce-cart .cart-collaterals .shop_table .order-total th,
.woocommerce-order-details .shop_table .order-total th {
    text-transform: uppercase;
  }
}
.woocommerce-checkout #order_review .shop_table .order-total td,
.woocommerce-cart .cart-collaterals .shop_table .order-total td,
.woocommerce-order-details .shop_table .order-total td {
  text-align: right;
}
.woocommerce-checkout #order_review .shop_table .order-total td .amount,
.woocommerce-cart .cart-collaterals .shop_table .order-total td .amount,
.woocommerce-order-details .shop_table .order-total td .amount {
  font-size: clamp(1.4rem, 0.95vw, 1.8rem);
}
.woocommerce-checkout #order_review .shop_table .cart_item td,
.woocommerce-cart .cart-collaterals .shop_table .cart_item td,
.woocommerce-order-details .shop_table .cart_item td {
  padding-bottom: 1.8rem;
}
.woocommerce-checkout #order_review .shop_table .cart_item td.product-total,
.woocommerce-cart .cart-collaterals .shop_table .cart_item td.product-total,
.woocommerce-order-details .shop_table .cart_item td.product-total {
  text-align: right;
  justify-content: flex-end;
  flex: 1;
}
.woocommerce-checkout #order_review .shop_table .cart_item td.product-total .amount,
.woocommerce-cart .cart-collaterals .shop_table .cart_item td.product-total .amount,
.woocommerce-order-details .shop_table .cart_item td.product-total .amount {
  color: var(--primary-color1);
}
.woocommerce-checkout #order_review .shop_table .cart_item td.product-total .subscription-switch-direction,
.woocommerce-cart .cart-collaterals .shop_table .cart_item td.product-total .subscription-switch-direction,
.woocommerce-order-details .shop_table .cart_item td.product-total .subscription-switch-direction {
  display: block;
  font-size: 1.4rem;
}
.woocommerce-checkout #order_review .shop_table .shipping p,
.woocommerce-cart .cart-collaterals .shop_table .shipping p,
.woocommerce-order-details .shop_table .shipping p {
  font-size: 12px;
  margin-left: auto;
  max-width: 100px;
}
.woocommerce-checkout #order_review .shop_table .recurring-totals,
.woocommerce-cart .cart-collaterals .shop_table .recurring-totals,
.woocommerce-order-details .shop_table .recurring-totals {
  display: none;
}

/**
 * Woocommerce: Products
 * TODO: Refactor this...WIP
 */
:root {
  --wc-grid-col: 3;
  --wc-grid-gap-horizontal: 30px;
  --wc-grid-gap-vertical: clamp(15px, 1.57vw, 30px);
  --wc-grid-with-sidebar-col: 3;
  --wc-pagination-active-color: var(--primary-color1);
  --wc-pagination-bg: transparent;
  --wc-pagination-border: 1px solid;
  --wc-pagination-border-color: var(--primary-color2);
  --wc-pagination-color: var(--primary-color2);
  --wc-pagination-margin: 0;
  --wc-pagination-padding: 0 10px;
  --wc-product-border: 1px solid;
  --wc-product-border-color: transparent;
  --wc-product-border-radius: var(--c-block-radius);
  --wc-product-box-shadow: none;
  --wc-product-description-lines: 2;
  --wc-product-description-text-size: var(--smaller-text-size);
  --wc-product-img-height: 132px;
  --wc-product-padding: 0;
  --wc-product-text-align: left;
}
@media (max-width: 1660px) {
  :root {
    --wc-grid-gap-horizontal: 20px;
    --wc-grid-gap-vertical: 20px;
  }
}
@media (max-width: 1439px) {
  :root {
    --wc-grid-col: 2;
    --wc-grid-gap-horizontal: 20px;
    --wc-grid-gap-vertical: 20px;
    --wc-grid-with-sidebar-col: 2;
  }
}
@media (max-width: 767px) {
  :root {
    --wc-grid-col: 2;
    --wc-grid-with-sidebar-col: 2;
  }
}
@media (max-width: 575px) {
  :root {
    --wc-grid-col: 1;
    --wc-grid-with-sidebar-col: 1;
    --wc-product-img-height: initial;
  }
}

.woocommerce-archive-content.-has-sidebar {
  --wc-grid-col: var(--wc-grid-with-sidebar-col);
}

ul.products,
.wc-block-grid__products {
  column-gap: var(--wc-grid-gap-horizontal);
  display: grid;
  grid-template: auto/repeat(var(--wc-grid-col), minmax(0, 1fr));
  margin-bottom: var(--wc-vertical-space, 30px);
  row-gap: var(--wc-grid-gap-vertical);
}
ul.products li.product,
ul.products .wc-block-grid__product,
.wc-block-grid__products li.product,
.wc-block-grid__products .wc-block-grid__product {
  background: #ffffff;
  border: var(--wc-product-border) var(--wc-product-border-color);
  border: 1px solid #dee2e8;
  border-radius: var(--wc-product-border-radius);
  list-style: none;
  margin: 0;
  padding: var(--wc-product-padding);
  position: relative;
  text-align: var(--wc-product-text-align);
  transition: var(--base-transition);
}
ul.products li.product:hover,
ul.products .wc-block-grid__product:hover,
.wc-block-grid__products li.product:hover,
.wc-block-grid__products .wc-block-grid__product:hover {
  background-color: var(--c-block-bg);
  box-shadow: var(--wc-product-box-shadow, none);
}
ul.products li.product .woocommerce-LoopProduct-link,
ul.products .wc-block-grid__product .woocommerce-LoopProduct-link,
.wc-block-grid__products li.product .woocommerce-LoopProduct-link,
.wc-block-grid__products .wc-block-grid__product .woocommerce-LoopProduct-link {
  display: block;
}
ul.products li.product .woocommerce-LoopProduct-link > img,
ul.products .wc-block-grid__product .woocommerce-LoopProduct-link > img,
.wc-block-grid__products li.product .woocommerce-LoopProduct-link > img,
.wc-block-grid__products .wc-block-grid__product .woocommerce-LoopProduct-link > img {
  height: var(--wc-product-img-height);
  margin-bottom: 20px;
  object-fit: contain;
  width: 100%;
}
ul.products li.product .woocommerce-loop-product__title,
ul.products .wc-block-grid__product .woocommerce-loop-product__title,
.wc-block-grid__products li.product .woocommerce-loop-product__title,
.wc-block-grid__products .wc-block-grid__product .woocommerce-loop-product__title {
  color: var(--primary-color1);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 0.5em;
}
ul.products li.product .woocommerce-loop-category__title,
ul.products li.product .wc-block-grid__product-title,
ul.products li.product .wc-block-grid__product-title > a:not(.has-font-size),
ul.products .wc-block-grid__product .woocommerce-loop-category__title,
ul.products .wc-block-grid__product .wc-block-grid__product-title,
ul.products .wc-block-grid__product .wc-block-grid__product-title > a:not(.has-font-size),
.wc-block-grid__products li.product .woocommerce-loop-category__title,
.wc-block-grid__products li.product .wc-block-grid__product-title,
.wc-block-grid__products li.product .wc-block-grid__product-title > a:not(.has-font-size),
.wc-block-grid__products .wc-block-grid__product .woocommerce-loop-category__title,
.wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-title,
.wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-title > a:not(.has-font-size) {
  color: var(--body-text-color);
  font-size: var(--h4-font-size);
  text-align: left;
}
ul.products li.product .archive-short-description,
ul.products .wc-block-grid__product .archive-short-description,
.wc-block-grid__products li.product .archive-short-description,
.wc-block-grid__products .wc-block-grid__product .archive-short-description {
  font-size: var(--wc-product-description-text-size);
  line-height: 1.3;
  margin-bottom: 0.5em;
  text-align: left;
}
ul.products li.product .archive-short-description > p,
ul.products .wc-block-grid__product .archive-short-description > p,
.wc-block-grid__products li.product .archive-short-description > p,
.wc-block-grid__products .wc-block-grid__product .archive-short-description > p {
  -webkit-box-orient: vertical;
  display: -webkit-box;
  -webkit-line-clamp: var(--wc-product-description-lines);
  line-clamp: var(--wc-product-description-lines);
  overflow: hidden;
  text-overflow: ellipsis;
}
ul.products li.product .archive-short-description > p:not(:first-child),
ul.products .wc-block-grid__product .archive-short-description > p:not(:first-child),
.wc-block-grid__products li.product .archive-short-description > p:not(:first-child),
.wc-block-grid__products .wc-block-grid__product .archive-short-description > p:not(:first-child) {
  display: none;
}
ul.products li.product .star-rating,
ul.products .wc-block-grid__product .star-rating,
.wc-block-grid__products li.product .star-rating,
.wc-block-grid__products .wc-block-grid__product .star-rating {
  display: flex;
}
ul.products li.product .price ins,
ul.products .wc-block-grid__product .price ins,
.wc-block-grid__products li.product .price ins,
.wc-block-grid__products .wc-block-grid__product .price ins {
  text-decoration: none;
}
ul.products li.product .tinv-wishlist,
ul.products .wc-block-grid__product .tinv-wishlist,
.wc-block-grid__products li.product .tinv-wishlist,
.wc-block-grid__products .wc-block-grid__product .tinv-wishlist {
  padding-top: 0;
}
ul.products li.product .tinvwl_add_to_wishlist_button,
ul.products .wc-block-grid__product .tinvwl_add_to_wishlist_button,
.wc-block-grid__products li.product .tinvwl_add_to_wishlist_button,
.wc-block-grid__products .wc-block-grid__product .tinvwl_add_to_wishlist_button {
  margin: 0;
}

.woocommerce-sorting {
  align-items: center;
  display: flex;
  margin-bottom: var(--wc-vertical-space, 30px);
}
@media (min-width: 1112px) {
  .woocommerce-sorting .woocommerce-sidebar-toggle {
    width: var(--wc-products-sidebar-col);
  }
}
@media (max-width: 1111px) {
  .woocommerce-sorting {
    flex-wrap: wrap;
    gap: 20px;
    justify-content: space-between;
  }
  .woocommerce-sorting > * {
    margin: 0 !important;
  }
}
@media (max-width: 575px) {
  .woocommerce-sorting {
    justify-content: center;
  }
}
.woocommerce-sorting .woocommerce-result-count {
  color: var(--primary-color1);
  display: none;
  font-size: var(--smaller-text-size);
  margin: 0 3em 0 0;
}
.woocommerce-sorting .woocommerce-perpage {
  align-items: center;
  color: var(--primary-color1);
  display: flex;
  font-size: var(--smaller-text-size);
  gap: 15px;
  justify-content: center;
}
.woocommerce-sorting .woocommerce-perpage span {
  white-space: nowrap;
}
@media (max-width: 766px) {
  .woocommerce-sorting .woocommerce-perpage span {
    display: none;
  }
}
.woocommerce-sorting .woocommerce-ordering {
  font-size: var(--smaller-text-size);
  margin-left: auto;
}
@media (max-width: 575px) {
  .woocommerce-sorting .woocommerce-ordering {
    width: 100%;
  }
}
.woocommerce-sorting.bottom {
  margin: 0;
}

@media (min-width: 767px) {
  .woocommerce-pagination {
    border: 0;
    clear: none;
    float: right;
    margin: 0;
    padding: 0;
  }
}
.woocommerce-pagination .page-numbers {
  align-items: center;
  color: var(--wc-pagination-color);
  display: flex;
  flex-direction: row;
  font-size: var(--smaller-text-size);
}
.woocommerce-pagination .page-numbers li:last-child .page-numbers {
  border: none;
}
.woocommerce-pagination .page-numbers .page-numbers {
  background-color: var(--wc-pagination-bg);
  border-right: var(--wc-pagination-border) var(--wc-pagination-border-color);
  color: var(--wc-pagination-color);
  display: block;
  font-size: var(--smaller-text-size);
  line-height: 1;
  margin: var(--wc-pagination-margin);
  padding: var(--wc-pagination-padding);
  transition: opacity var(--base-transition);
}
.woocommerce-pagination .page-numbers .page-numbers:hover {
  color: var(--primary-color3);
}
.woocommerce-pagination .page-numbers .page-numbers.current {
  color: var(--primary-color3);
}

@media (min-width: 767px) {
  /**
  * Main content area (adjacent to sidebar) product layout
  */
  .site-main ul.products li.product .added_to_cart {
    display: none;
  }
}
.wc-pao-addons-container {
  width: 100%;
}

/* New Styles */
.woocommerce-shop .m-banner.-hero-wc {
  --bannerHeight: 300px;
  z-index: 20;
}
.woocommerce-shop .m-banner.-hero-wc .l-banner {
  padding-top: clamp(50px, 5.2vw, 100px);
}
.woocommerce-shop .woocommerce-products-header {
  position: relative;
  overflow: hidden;
}
.woocommerce-shop .woocommerce-products-header .general-bg-logo {
  top: 0;
  z-index: 10;
  transform: scale(1.4);
}
.woocommerce-shop .blog-grid__page {
  background-color: white;
}

.wc-landing {
  background-color: var(--primary-color1);
  padding-bottom: 100px;
  padding-top: 40px;
}
@media (min-width: 768px) {
  .wc-landing {
    padding-bottom: 150px;
    padding-top: 7vmin;
  }
}
.blog-grid__page .wc-landing {
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .wc-landing__inner {
    display: flex;
  }
}
.wc-landing__inner .woocommerce-info,
.wc-landing__inner .woocommerce-error {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  height: max-content;
  width: 100%;
}
.wc-landing #products {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  height: auto !important;
}
.wc-landing #products center {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}
.wc-landing #products center p {
  color: var(--nl-color);
  padding: 50px 60px;
  position: relative;
}
.wc-landing #products center p:before {
  animation: rotate360 2s cubic-bezier(0.39, 0.58, 0.57, 1) infinite;
  background-image: url("./../../images/decors/logo-color.svg");
  background-position: center;
  background-repeat: no-repeat;
  content: "";
  display: block;
  height: 50px;
  left: 0;
  margin: 0 auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 50px;
}
.wc-landing #products center p img {
  display: none;
}
.wc-landing .woocommerce-loop {
  max-width: 100%;
  margin-right: 0;
}

@media (min-width: 768px) {
  .wc-testimonials.has-widget {
    padding-bottom: 85px;
  }
}

/**
 * Woocommerce: Search
 * TODO: Refactor this
 */
/**
 * Woocommerce: Single Product page
 * TODO: Refactor this...WIP
 */
:root {
  --wc-product-gallery-col: 60%;
  --wc-product-summary-col: 32%;
  --wc-product-summary-padding-left: 0;
  --wc-product-title-font-size: 2.8rem;
}
@media (max-width: 1112px) {
  :root {
    --wc-product-gallery-col: 100%;
    --wc-product-summary-col: 100%;
    --wc-product-summary-padding-left: 0;
  }
}

body .float-block-start span.subscription-details, body.single-product span.subscription-details, body.woocommerce-cart span.subscription-details, body.woocommerce-checkout span.subscription-details, body.woocommerce-account span.subscription-details {
  display: none;
}

body.single-product div.product {
  /*display: flex;
  justify-content: space-between;
  flex-direction: row;
  flex-wrap: wrap-reverse;
  align-items: flex-start;*/
  padding-bottom: 100px;
  position: relative;
  --wc-product-main-color: #573586;
}
@media (max-width: 1112px) {
  body.single-product div.product {
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 30px;
  }
}
body.single-product div.product > .m-banner + .container {
  padding-left: 0;
  padding-right: 0;
}
body.single-product .woocommerce-product-gallery {
  flex: var(--wc-product-gallery-col);
  height: clamp(100px, 10.4vw, 200px);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
body.single-product .woocommerce-product-gallery img {
  max-height: clamp(80px, 8.3vw, 160px);
}
@media (max-width: 767px) {
  body.single-product .woocommerce-product-gallery {
    margin-bottom: var(--wc-vertical-space, 30px);
  }
}
body.single-product .woocommerce-product-gallery__wrapper {
  max-width: 72%;
}
body.single-product .woocommerce-product-details__short-description {
  font-size: var(--smaller-text-size);
  line-height: 1.5;
  color: var(--primary-color2);
}
body.single-product .sticky-wrapper {
  position: relative;
  min-height: 50vh;
}
body.single-product .summary {
  --label-color: #fff;
  flex: var(--wc-product-summary-col);
  max-width: var(--wc-product-summary-col);
  padding-left: var(--wc-product-summary-padding-left);
  box-shadow: 0 20px 60px rgba(17, 32, 70, 0.2);
  border-radius: clamp(10px, 1.05vw, 20px);
  background: #FFFFFF;
}
@media (max-width: 1112px) {
  body.single-product .summary {
    position: relative;
    margin-bottom: 50px;
    transform: translateY(0) !important;
  }
}
@media (min-width: 1113px) {
  body.single-product .summary {
    position: sticky;
    right: 0;
    z-index: 2;
    top: 80px;
    float: right;
    transition: top 0.3s, opacity 0.3s, visibility 0.3s;
    margin-top: -35rem;
  }
}
@media (min-width: 1113px) and (min-width: 1441px) {
  body.single-product .summary {
    margin-top: -30rem;
  }
}
body.single-product .summary > .c-btn {
  margin-bottom: 1em;
}
body.single-product .summary .product-video {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: auto;
  left: 0;
  height: 107px;
}
@media (min-width: 1440px) {
  body.single-product .summary .product-video {
    height: 207px;
  }
}
body.single-product .summary .product-video__popup {
  height: 100%;
}
body.single-product .summary .product-video .c-video,
body.single-product .summary .product-video iframe {
  width: 100%;
  opacity: 0;
  visibility: hidden;
  border-radius: 20px 20px 0 0;
}
body.single-product .summary .product-video .c-video__wrap,
body.single-product .summary .product-video iframe__wrap {
  border-radius: 20px 20px 0 0;
}
body.single-product .summary .product-video .c-video__wrap:before,
body.single-product .summary .product-video iframe__wrap:before {
  opacity: 0;
  visibility: hidden;
}
body.single-product .summary .product-video .c-video__wrap.is-video-playing .c-video,
body.single-product .summary .product-video .c-video__wrap.is-video-playing iframe,
body.single-product .summary .product-video iframe__wrap.is-video-playing .c-video,
body.single-product .summary .product-video iframe__wrap.is-video-playing iframe {
  opacity: 1;
  visibility: visible;
}
body.single-product .summary .product-video .c-video__wrap.is-video-playing .btn-mute,
body.single-product .summary .product-video iframe__wrap.is-video-playing .btn-mute {
  opacity: 1;
  visibility: visible;
}
body.single-product .summary .product-video .c-video__controls .btn-play,
body.single-product .summary .product-video iframe__controls .btn-play {
  width: 6.7rem;
  height: 6.7rem;
  background-color: var(--secondary-color1);
  background-image: url("data:image/svg+xml,%3Csvg width='21' height='22' viewBox='0 0 21 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.3852 10.8602L0.933594 21.6666L0.933595 0.0537109L20.3852 10.8602Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
  background-size: 20px;
  border-radius: 100%;
  border: 1px solid var(--secondary-color1);
  box-shadow: 0 0 30px rgba(145, 137, 130, 0.6);
  mix-blend-mode: initial;
  top: clamp(100px, 10.4vw, 200px);
  transform: translateY(-35px);
  right: 0;
  left: 0;
  bottom: auto;
  margin: auto;
}
body.single-product .summary .product-video .c-video__controls .btn-play.is-playing,
body.single-product .summary .product-video iframe__controls .btn-play.is-playing {
  background-image: url("data:image/svg+xml,%3Csvg width='23' height='27' viewBox='0 0 23 27' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.2031 23.2393C8.2031 25.3162 6.51925 27 4.44237 27C2.36549 27 0.681641 25.3162 0.681641 23.2393V3.76073C0.681641 1.68385 2.36549 0 4.44237 0C6.51925 0 8.2031 1.68385 8.2031 3.76073V23.2393Z' fill='%23213B8C'/%3E%3Cpath d='M22.3164 23.2393C22.3164 25.3162 20.6325 27 18.5556 27C16.4788 27 14.7949 25.3162 14.7949 23.2393V3.76073C14.7955 1.68385 16.4793 0 18.5556 0C20.6325 0 22.3164 1.68385 22.3164 3.76073V23.2393Z' fill='%23213B8C'/%3E%3C/svg%3E%0A");
}
body.single-product .summary .product-video .c-video__controls .btn-mute,
body.single-product .summary .product-video iframe__controls .btn-mute {
  opacity: 0;
  visibility: hidden;
}
body.single-product .summary .product-video iframe {
  opacity: 1;
  visibility: visible;
}
body.single-product .summary .product-video + .float-block-start {
  padding-top: clamp(20px, 5.2vw, 50px);
}
body.single-product .summary .float-block-start {
  background-color: var(--wc-product-main-color);
  color: var(--secondary-color1);
  padding: clamp(15px, 1.77vw, 34px) clamp(15px, 1.77vw, 34px) clamp(15px, 1.8vw, 36px);
  border-radius: 0 0 clamp(10px, 1.05vw, 20px) clamp(10px, 1.05vw, 20px);
}
body.single-product .summary .product_title {
  font-size: var(--wc-product-title-font-size);
  font-weight: 600;
  line-height: 1.7;
  text-transform: capitalize;
  color: var(--body-text-color);
  text-align: center;
  padding: 30px;
}
body.single-product .summary p.price {
  margin-bottom: 1.2em;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  color: var(--secondary-color1);
}
body.single-product .summary p.price del {
  margin-right: 20px;
  font-weight: var(--base-text-font-weight);
  font-size: var(--larger-text-size);
  line-height: 1.5;
  text-decoration-line: line-through;
  color: var(--primary-color2);
}
body.single-product .summary p.price ins {
  text-decoration: none;
}
body.single-product .summary p.price bdi {
  font-weight: 700;
  font-size: 2.8rem;
}
body.single-product .summary .action-button {
  margin-bottom: 1.25em;
}
body.single-product .summary .action-button .limited-subscription-notice {
  text-align: center;
}
body.single-product .summary .woocommerce-product-rating {
  display: flex;
  align-items: center;
  margin-bottom: 1.8em;
}
body.single-product .summary .woocommerce-product-rating .star-rating {
  margin-right: 1em;
}
body.single-product .summary .woocommerce-review-link {
  font-size: var(--smaller-text-size);
}
body.single-product .summary .stock {
  font-size: var(--smaller-text-size);
}
body.single-product .summary .product_meta {
  margin-bottom: 0.5em;
}
body.single-product .summary .product_meta > * {
  display: block;
}
body.single-product .summary .product_meta > *:last-child {
  border-bottom: 0;
}
body.single-product .summary .product_meta .sku_wrapper {
  font-weight: var(--base-text-font-weight);
  font-size: var(--smaller-text-size);
  line-height: 1.5;
  /* main color 3 */
  color: #c4c4c4;
}
body.single-product .summary .tinv-wishlist a {
  margin: 0;
}
body.single-product .summary .tinvwl-after-add-to-cart {
  margin-top: 1em;
}
body.single-product .summary .addtoany_list {
  margin-top: 1em;
}
body.single-product .summary .c-block__btn {
  text-align: center;
}
body.single-product .summary .c-btn {
  width: 100%;
}
@media (max-width: 1112px) {
  body.single-product .summary .c-btn {
    margin-left: 0;
    margin-right: 0;
  }
}
body.single-product .summary .overview {
  font-size: 1.6rem;
  line-height: 1.5;
}
body.single-product .summary .business-solutions-subscription {
  margin-left: -34px;
  margin-right: -34px;
  padding-top: 14px;
  padding-left: 34px;
  padding-right: 34px;
  border-top: 1px solid var(--secondary-color1);
  margin-top: 15px;
}
@media (min-width: 1441px) {
  body.single-product .summary .business-solutions-subscription {
    padding-top: 34px;
    margin-top: 3.6rem;
  }
}
body.single-product .summary .business-solutions-subscription.-b2b-only {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
body.single-product .summary .business-solutions-subscription .c-heading__title {
  color: var(--secondary-color1);
  font-weight: 700;
}
body.single-product .summary .business-solutions-subscription .c-heading__description {
  font-size: 1.6rem;
  line-height: 1.5;
}
@media (max-width: 1112px) {
  body.single-product .summary .business-solutions-subscription .c-heading__description {
    font-size: 14px;
  }
}
body.single-product .summary .available-versions {
  color: #fff;
  margin-top: 2.5rem;
}
body.single-product .summary .available-versions__title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 1em;
}
body.single-product .summary .available-versions__item {
  display: flex;
  align-items: center;
  font-size: 16px;
  margin-bottom: 10px;
}
@media (max-width: 1112px) {
  body.single-product .summary .available-versions__item {
    font-size: 14px;
  }
}
body.single-product .summary .available-versions__icon {
  width: 30px;
  margin-right: 12px;
}
body.single-product .summary .available-versions__icon img,
body.single-product .summary .available-versions__icon svg {
  max-width: 100%;
}
body.single-product .summary .available-versions a {
  color: #fff;
  text-decoration: underline;
}
body.single-product .summary .available-versions a:hover {
  text-decoration: none;
}
body.single-product .woocommerce-tabs {
  flex: 100%;
  max-width: 100%;
}
body.single-product .related.products {
  --titles-color: #fff;
  background-color: var(--primary-color1);
  padding: 10vmin 0;
  position: relative;
  width: 100vw;
  max-width: none;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-bottom: 10vmin;
  z-index: 100;
}
@media (max-width: 1112px) {
  body.single-product .related.products {
    width: calc(100% + 40px);
    left: 0;
    right: 0;
    margin: 0;
    margin-left: -20px;
  }
}
@media (max-width: 1112px) {
  body.single-product .related.products .c-heading__title {
    text-align: center;
  }
}
body.single-product .related,
body.single-product .upsells {
  margin-top: var(--wc-vertical-space, 30px);
}
body.single-product .woocommerce-tabs {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin-top: var(--wc-vertical-space, 30px);
}
body.single-product .woocommerce-tabs ul.tabs {
  list-style: none;
  margin-left: 0;
  text-align: left;
  border-top: 1px solid;
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-bottom: 20px;
}
@media (max-width: 574px) {
  body.single-product .woocommerce-tabs ul.tabs {
    flex-direction: column;
  }
}
body.single-product .woocommerce-tabs ul.tabs li {
  display: block;
  position: relative;
  margin: 0 50px 0 0;
  text-transform: uppercase;
  border-bottom: 3px solid transparent;
  transition: border-bottom-color var(--base-transition);
}
@media (max-width: 574px) {
  body.single-product .woocommerce-tabs ul.tabs li {
    margin-right: 0;
  }
}
body.single-product .woocommerce-tabs ul.tabs li.active {
  border-bottom-color: var(--body-text-color);
}
body.single-product .woocommerce-tabs ul.tabs li a {
  font-size: var(--base-text-size);
  font-weight: 500;
  padding: 20px 0 17px;
  color: var(--body-text-color);
  display: block;
}
body.single-product .woocommerce-tabs .panel h2:first-of-type {
  margin-bottom: 1em;
}
@media (max-width: 1112px) {
  body.single-product .pdp-accordion .c-heading.-h3,
body.single-product .pdp-description .c-heading.-h3 {
    font-size: 25px;
    line-height: 33px;
  }
}
body.single-product .pdp-accordion .c-accordion,
body.single-product .pdp-description .c-accordion {
  --acc-content-padding: 10px 20px 30px 20px;
}
body.single-product .pdp-accordion .is-wysiwyg,
body.single-product .pdp-description .is-wysiwyg {
  --wysiwyg-li-margin: 1.5em;
}
body.single-product .pdp-accordion .is-wysiwyg > *:last-child,
body.single-product .pdp-description .is-wysiwyg > *:last-child {
  margin-bottom: 0;
}
body.single-product .pdp-accordion .is-wysiwyg ul:not(.blocks-gallery-grid),
body.single-product .pdp-description .is-wysiwyg ul:not(.blocks-gallery-grid) {
  list-style: disc;
  padding-left: 1.5em;
}
body.single-product .pdp-accordion .is-wysiwyg ul:not(.blocks-gallery-grid) li,
body.single-product .pdp-description .is-wysiwyg ul:not(.blocks-gallery-grid) li {
  padding-left: 0;
}
body.single-product .pdp-accordion .is-wysiwyg ul:not(.blocks-gallery-grid) li:last-child,
body.single-product .pdp-description .is-wysiwyg ul:not(.blocks-gallery-grid) li:last-child {
  margin-bottom: 0;
}
body.single-product .pdp-accordion.-center,
body.single-product .pdp-description.-center {
  margin-inline: auto;
}
@media (max-width: 1112px) {
  body.single-product .m-accordion .c-accordion__title-wrap.-h4 {
    font-size: 16px;
  }
}

@media (max-width: 1112px) {
  .wc-accordion .container.pdp-accordion {
    padding-left: 0;
    padding-right: 0;
  }
}

.pdp-accordion {
  margin-top: 2em;
  max-width: var(--wc-product-gallery-col);
}
.pdp-accordion > .c-heading {
  margin-bottom: 1.1em;
}
.pdp-accordion .c-accordion {
  --acc-title-bg: transparent;
  --acc-title-bg-active: transparent;
  --acc-title-padding: 20px 0;
  --h4-margin-bottom: 0;
}
.pdp-accordion .c-accordion__title {
  margin: 0;
}
.pdp-accordion .c-accordion__title .icon {
  max-width: 20px;
  min-width: 20px;
  max-height: 15px;
  margin-right: 10px;
  color: var(--wc-product-bullet-icon-p, #5e328b);
  fill: var(--wc-product-bullet-icon-s, #8e6fae);
}
@media (max-width: 1112px) {
  .pdp-accordion .c-accordion__title .icon {
    align-self: flex-start;
    margin-top: 4px;
  }
}
.pdp-accordion .c-accordion__item {
  border-top: 2px dashed #D0D4DE;
}

.product-cta-section {
  --product-cta-padding: 20px;
  position: relative;
  border-radius: clamp(10px, 1.05vw, 20px);
  width: 100%;
  margin-top: 4em;
  margin-bottom: 5em;
}
@media (max-width: 1112px) {
  .product-cta-section {
    background-color: var(--primary-color1);
  }
}
@media (min-width: 1113px) {
  .product-cta-section {
    border-radius: 0 20px 20px 0;
    display: flex;
    flex-direction: row;
    max-width: var(--wc-product-gallery-col);
  }
  .product-cta-section:before {
    content: "";
    position: absolute;
    height: 100%;
    width: 150%;
    top: 0;
    left: 0;
    background-color: var(--primary-color1);
    transform: translateX(-50%);
    background-image: var(--logo-light);
    background-position: 40% 50%;
    background-repeat: no-repeat;
    background-size: 310px;
    border-radius: 0 20px 20px 0;
  }
}
.product-cta-section .c-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  margin-bottom: 0;
  padding-top: var(--product-cta-padding);
  padding-bottom: var(--product-cta-padding);
}
@media (max-width: 1112px) {
  .product-cta-section .c-heading {
    text-align: center;
    padding: 30px 20px;
  }
}
@media (min-width: 1113px) {
  .product-cta-section .c-heading {
    padding-left: 0;
  }
}
.product-cta-section .c-heading__title {
  color: var(--secondary-color1);
}
@media (max-width: 1112px) {
  .product-cta-section .c-heading__title {
    font-size: 21px;
    line-height: 30px;
  }
}
@media (min-width: 768px) {
  .product-cta-section .l-rcbl {
    grid-template: auto/repeat(var(--l-block-col, 3), minmax(0, 1fr));
    column-gap: 0;
  }
}
.product-cta-section .l-rcbl__col:last-child .c-block > .cards-programs__item {
  border-radius: 0 20px 20px 0;
}
@media (max-width: 1112px) {
  .product-cta-section .l-rcbl__col:last-child .c-block > .cards-programs__item {
    border-radius: 0 0 10px 10px !important;
  }
}
@media (max-width: 1112px) {
  .product-cta-section .cards-programs {
    flex-direction: column;
    gap: 0;
    padding-bottom: 0;
  }
  .product-cta-section .cards-programs > div {
    margin: 0;
    width: 100%;
    max-width: 100%;
  }
}
@media (min-width: 1113px) {
  .product-cta-section .cards-programs {
    flex: 1 0 70%;
    max-width: 650px;
  }
}
.product-cta-section .cards-programs .c-block {
  background: none;
  border-radius: 0;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  overflow: visible;
}
@media (max-width: 1112px) {
  .product-cta-section .cards-programs .c-block {
    border: none;
    min-height: 60px;
  }
}
@media (min-width: 1113px) {
  .product-cta-section .cards-programs .c-block > a .c-block__btn {
    transform: translateY(50%);
  }
}
@media (hover: hover) {
  .product-cta-section .cards-programs .c-block > a:hover {
    background-color: var(--secondary-color3);
  }
  .product-cta-section .cards-programs .c-block > a:hover .c-block__btn {
    background-color: var(--primary-color2);
  }
}
.product-cta-section .cards-programs .c-block > .cards-programs__item {
  background-color: var(--primary-color1);
  padding-top: var(--product-cta-padding);
  padding-bottom: var(--product-cta-padding);
  width: 100%;
  transition: background-color 0.3s;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 1112px) {
  .product-cta-section .cards-programs .c-block > .cards-programs__item {
    align-items: center;
    padding: 15px;
    min-height: 60px;
    border-top: 1px solid #fff;
    border-radius: 5px !important;
    flex-direction: row;
    overflow: hidden;
  }
  .product-cta-section .cards-programs .c-block > .cards-programs__item .c-block__media {
    width: 40px;
    margin-right: 15px;
  }
  .product-cta-section .cards-programs .c-block > .cards-programs__item .c-block__body {
    text-align: left;
    flex: 1 1 auto;
    padding: 0;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
  }
  .product-cta-section .cards-programs .c-block > .cards-programs__item .c-block__title {
    margin: 0;
  }
  .product-cta-section .cards-programs .c-block > .cards-programs__item .c-block__title br {
    display: none;
  }
}
@media (min-width: 1113px) {
  .product-cta-section .cards-programs .c-block > .cards-programs__item {
    display: flex;
    flex: 1;
  }
}
.product-cta-section .cards-programs .c-block__title {
  font-size: 1.8rem;
  font-weight: 400;
}
.product-cta-section .cards-programs .c-block__title strong,
.product-cta-section .cards-programs .c-block__title b,
.product-cta-section .cards-programs .c-block__title span {
  font-weight: 700;
  display: inline-block;
  padding-right: 4px;
}
.product-cta-section .cards-programs .c-block__btn {
  width: 55px;
  height: 55px;
  border-radius: 100%;
  background-color: var(--secondary-color1);
  border: 1px solid var(--secondary-color2);
  color: var(--secondary-color3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s;
}
@media (max-width: 1112px) {
  .product-cta-section .cards-programs .c-block__btn {
    min-width: 35px;
    width: 35px;
    height: 35px;
    background-color: var(--primary-color2);
    margin-top: auto;
    margin-bottom: auto;
  }
}
@media (min-width: 1113px) {
  .product-cta-section .cards-programs .c-block__btn {
    margin: auto;
    bottom: -26px;
  }
}
.product-cta-section .cards-programs .c-block__btn .c-btn__ico {
  min-width: 8px;
  max-width: 8px;
}
.product-cta-section.-single:before {
  width: 100%;
}
.product-cta-section--v2 {
  margin-inline: auto;
}
.product-cta-section--v2:before {
  display: none;
}
.product-cta-section--v2 .c-heading {
  --h3-font-size: 2.1rem;
  background-color: var(--primary-color1);
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
  padding-inline: 42px;
  background-image: var(--logo-light);
  background-position: 40% 50%;
  background-repeat: no-repeat;
  background-size: 100%;
}
.product-cta-section--v2 .l-rcbl__col:last-child .c-block {
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

.product-content-benefits {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-top: 5rem;
  margin-right: -50vw;
  margin-left: -50vw;
  padding-top: 4.2rem;
  padding-bottom: 4.2rem;
  padding-left: calc((100vw - clamp(1024px, 83.5vw, var(--content-width)) + var(--page-gutter, 20px) * 2) / 2);
  padding-right: 15px;
  margin-bottom: 5vmin;
  max-width: calc(clamp(1024px, 83.5vw, var(--content-width)) + (100vw - clamp(1024px, 83.5vw, var(--content-width))) / 2 - (100% - var(--wc-product-gallery-col)));
  background: var(--secondary-color1);
  border: 2px dashed #D0D4DE;
  border-radius: 0 20px 20px 0;
}
@media (min-width: 1661px) {
  .product-content-benefits {
    padding-left: calc((100vw - clamp(1024px, 83.5vw, var(--content-width))) / 2);
  }
}
@media (max-width: 1112px) {
  .product-content-benefits {
    padding-left: 15px;
    padding-right: 15px;
    max-width: 100%;
  }
}
.product-content-benefits .c-block {
  background-color: transparent;
  box-shadow: none;
  border: 0;
}
.product-content-benefits .c-block__body {
  padding: 0;
}
.product-content-benefits .check-list {
  --columns-count: 2;
  column-count: var(--columns-count);
}
@media (max-width: 767px) {
  .product-content-benefits .check-list {
    --columns-count: 1;
    flex-direction: column;
  }
}
@media (max-width: 1112px) {
  .product-content-benefits .check-list li {
    align-items: center;
  }
}

.pdp-description {
  width: 100%;
  max-width: var(--wc-product-gallery-col);
  padding: 30px 0;
}
.pdp-description a:not(.c-btn) {
  text-decoration: underline;
  transition: color 300ms ease;
}
.pdp-description a:not(.c-btn):hover {
  color: color-mix(in srgb, var(--secondary-color4), white 15%);
}

.pdp-cta {
  width: 100%;
  border-radius: 0px 20px 20px 0px;
  background-color: var(--primary-color1);
  color: var(--secondary-color1);
  display: flex;
}
.pdp-cta > div {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
  padding: 30px;
}
.pdp-cta__heading {
  display: flex;
  align-items: center;
}
.pdp-cta__item {
  padding: 20px;
  text-align: center;
  border-left: 1px solid var(--secondary-color1);
}
.pdp-cta__item a {
  color: var(--secondary-color1);
}

.variations_form {
  max-width: var(--wc-product-gallery-col);
}

.wc-product-variations {
  margin-top: 5em;
  padding-bottom: clamp(50px, 5.2vw, 100px);
}
.wc-product-variations .c-heading {
  max-width: var(--wc-product-gallery-col);
}
.wc-product-variations .limited-subscription-notice {
  margin-bottom: 1em;
}
.wc-product-variations .limited-subscription-notice:last-child {
  margin-bottom: 0;
}
.wc-product-variations .limited-subscription-notice a {
  text-decoration: underline;
}
.wc-product-variations .variable-tabs {
  width: 100%;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs {
    width: 100%;
  }
}
.wc-product-variations .variable-tabs .label-title {
  padding: 0;
  font-weight: 800 !important;
}
.wc-product-variations .variable-tabs .tabs-vertical-v2 .tabs-content {
  flex: 1;
}
.wc-product-variations .variable-tabs .attribute-name span {
  display: block;
  font-size: 1.8rem;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .pa_issue_delive-values .form-row {
    border-radius: 10px;
    flex-direction: column;
  }
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .pa_issue_delive-values .form-row label {
    padding-bottom: 2px;
    min-height: auto;
  }
}
.wc-product-variations .variable-tabs .pa_issue_delive-values .form-row .label-tag {
  display: block;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  color: #6D6D6D;
  width: 100%;
  max-width: 100%;
  background: none;
  padding: 0 0 0 20px;
  margin: 0 0 10px 0;
  white-space: normal;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .pa_issue_delive-values .form-row .label-tag {
    font-size: 12px;
    line-height: 1.75;
  }
}
.wc-product-variations .variable-tabs .pa_issue_delive-values .form-row .label-tag strong {
  color: var(--primary-color1);
}
.wc-product-variations .variable-tabs .form-row {
  display: flex;
  flex-wrap: wrap;
  width: fit-content;
  align-items: center;
  margin-bottom: 17px;
  gap: 15px;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .form-row {
    background: #fff;
    border: 1px solid #D2D8E0;
    border-radius: 100px;
    margin-bottom: 15px;
    display: flex;
    align-items: flex-start;
  }
}
.wc-product-variations .variable-tabs .form-row label {
  padding-left: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: fit-content;
  margin: 0;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .form-row label {
    display: block;
    margin-bottom: 0;
    padding: 11px 5px 11px 24px;
    min-height: 42px;
    font-size: 13px;
  }
}
.wc-product-variations .variable-tabs .form-row label input[type=radio],
.wc-product-variations .variable-tabs .form-row label input[type=checkbox] {
  margin-right: 5px;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .form-row label input[type=radio],
.wc-product-variations .variable-tabs .form-row label input[type=checkbox] {
    float: left;
    margin-top: 3px;
    width: 13px;
    height: 13px;
  }
}
.wc-product-variations .variable-tabs .form-row .label-tag {
  margin: 0;
  pointer-events: none;
  width: fit-content;
}
@media (max-width: 1112px) {
  .wc-product-variations .variable-tabs .form-row .label-tag {
    margin-top: 12px;
    margin-right: 20px;
    margin-left: 0;
    margin-bottom: 0;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 3px;
    padding-bottom: 3px;
    white-space: nowrap;
    max-width: 150px;
    font-size: 10px;
  }
}

.product-redesign {
  /* Make CTA section full width */
  /* Make benefits section full width */
  /* Make FAQ accordion narrower */
  /* Columns container width */
}
.product-redesign .entry-summary {
  display: none !important;
}
.product-redesign main.site-content {
  --wc-product-gallery-col: 100%;
}
.product-redesign main.site-content > .product > .container {
  max-width: 100%;
}
.product-redesign main.site-content > .product .sticky-wrapper .dst-flex-block {
  max-width: var(--ds-flex--container-width, 113rem);
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .product-redesign main.site-content > .product .sticky-wrapper .dst-flex-block.-full {
    max-width: calc(100% + 40px);
    width: calc(100% + 40px);
    margin-left: -20px;
  }
  .product-redesign main.site-content > .product .sticky-wrapper .dst-flex-block.-full .dst-flex-block__inner {
    margin-left: 20px;
    margin-right: 20px;
  }
}
.product-redesign main.site-content > .product .sticky-wrapper .dst-flex-block__inner {
  max-width: var(--ds-flex--container-inner-width, 100%);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .product-redesign .product-cta-section .c-heading {
    padding-left: 4.5rem;
  }
}
@media (max-width: 767px) {
  .product-redesign .product-cta-section .cards-programs:not(.search-posts) .l-rcbl__col {
    max-width: 100%;
  }
}
.product-redesign .product-cta-section .cards-programs:not(.search-posts) .l-rcbl__col .c-block {
  border-radius: 0 2rem 2rem 0;
}
@media (max-width: 767px) {
  .product-redesign .product-cta-section .cards-programs:not(.search-posts) .l-rcbl__col .c-block .cards-programs__item {
    border-radius: 0 !important;
  }
}
.product-redesign .product-cta-section:before {
  width: 100%;
  transform: translateX(0);
  border-radius: 2rem;
}
.product-redesign .product-content-benefits {
  padding: 4.2rem 1.5rem;
  margin-left: 0;
  transform: none;
  max-width: 100%;
  width: 100%;
  left: 0;
  border-radius: 20px;
}
.product-redesign .wc-accordion {
  max-width: 113rem;
  margin: 0 auto;
}
.product-redesign .m-columns .m-columns__inner.container {
  max-width: 113rem;
  padding-inline: 0;
}

/* Redesigned hero section */
.m-banner.has-image-side {
  /* Stretched side image */
}
@media (min-width: 1113px) {
  .m-banner.has-image-side.-side-stretch {
    margin-top: 160px;
  }
  .m-banner.has-image-side.-side-stretch .m-banner__inner {
    padding-top: 0 !important;
  }
  .m-banner.has-image-side.-side-stretch .m-banner__inner .l-banner {
    width: 60%;
    flex: 0 0 60%;
    max-width: 100%;
  }
  .m-banner.has-image-side.-side-stretch .m-banner__inner .l-image {
    width: 40%;
    flex: 0 0 40%;
  }
  .m-banner.has-image-side.-side-stretch .m-banner__inner .l-image picture {
    width: 50vw;
    position: absolute;
  }
  .m-banner.has-image-side.-side-stretch .m-banner__inner .l-image picture img {
    object-fit: cover;
  }
}
.m-banner.has-image-side .m-banner__container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--background-color, transparent);
  z-index: 1;
}
@media (min-width: 768px) {
  .m-banner.has-image-side .m-banner__inner {
    display: flex;
  }
}
.m-banner.has-image-side .m-banner__inner .l-image {
  position: relative;
  z-index: 1;
}
@media (max-width: 767px) {
  .m-banner.has-image-side .m-banner__inner .l-image {
    margin-bottom: 2rem;
  }
}
.m-banner.has-image-side .m-banner__inner .l-image picture {
  display: block;
  width: 100%;
  height: 100%;
}
.m-banner.has-image-side .m-banner__inner .l-image picture img {
  object-fit: contain;
}
@media (min-width: 768px) {
  .m-banner.has-image-side .l-image.-is-transparent picture {
    mask-image: linear-gradient(to right, transparent 0%, black 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 100%);
  }
}

/**
 * Woocommerce: Thank you page
 * TODO: Refactor this...WIP
 */
div.woocommerce-order {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media (min-width: 1113px) {
  div.woocommerce-order {
    flex-direction: row;
  }
}
div.woocommerce-order .wc-checkout__order-summary-header {
  background-color: var(--primary-color1);
  background-image: var(--logo-light);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 552px;
  border-radius: clamp(10px, 1.05vw, 20px);
  box-shadow: 0 30px 60px rgba(89, 119, 215, 0.2);
  color: #ffffff;
  margin-bottom: 3rem;
  padding: 3rem 2rem;
  width: 100%;
}
@media (min-width: 768px) {
  div.woocommerce-order .wc-checkout__order-summary-header {
    padding: 5.9rem 8rem;
  }
}
@media (min-width: 1113px) {
  div.woocommerce-order .wc-checkout__order-summary-header {
    padding: 5.9rem 8rem;
    width: 50%;
  }
}
div.woocommerce-order .wc-checkout__order-summary-header .woocommerce-notice.woocommerce-thankyou-order-received {
  color: #ffffff;
  font-size: var(--h3-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin-bottom: 1em;
  text-transform: capitalize;
}
div.woocommerce-order .woocommerce-order-details {
  margin-bottom: 50px;
  width: 100%;
}
@media (min-width: 1113px) {
  div.woocommerce-order .woocommerce-order-details {
    width: 40%;
  }
}
div.woocommerce-order .woocommerce-order-details h2 {
  color: var(--primary-color1);
  font-size: var(--h2-font-size);
  font-weight: bold;
  line-height: 1.33;
  margin-bottom: 1em;
  text-transform: capitalize;
}
div.woocommerce-order ul.order_details {
  display: flex;
  justify-content: space-between;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  gap: 20px 10px;
  width: 100%;
}
@media (min-width: 1113px) {
  div.woocommerce-order ul.order_details {
    margin-bottom: 5rem;
    max-width: 100%;
  }
}
div.woocommerce-order ul.order_details li {
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  flex-direction: column;
  font-size: 15px;
  font-weight: 600;
  justify-content: space-between;
  letter-spacing: 0.1em;
  line-height: 1.2em;
  text-transform: uppercase;
  text-overflow: ellipsis;
  overflow: hidden;
}
@media (max-width: 1112px) {
  div.woocommerce-order ul.order_details li {
    margin-bottom: 1.5rem;
  }
}
div.woocommerce-order ul.order_details li strong {
  color: #ffffff;
  font-size: 2rem;
  font-weight: normal;
  margin-top: 1.2rem;
  text-transform: initial;
  line-height: 1.2em;
  overflow: hidden;
  text-overflow: ellipsis;
}
div.woocommerce-order .wc-checkout__order-summary-buttons a {
  border-color: white;
  min-width: 270px;
}
@media (max-width: 1112px) {
  div.woocommerce-order .wc-checkout__order-summary-buttons a {
    width: 100%;
  }
}
div.woocommerce-order .wc-checkout__order-summary-buttons a:hover {
  border-color: var(--btn-secondary-bg-hover);
}
div.woocommerce-order .wc-item-meta {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}
div.woocommerce-order .wc-item-meta li {
  align-items: center;
  display: flex;
  font-size: 1.6rem;
  margin-top: 0.25em;
}
div.woocommerce-order .wc-item-meta li strong {
  font-weight: 400;
}
div.woocommerce-order .wc-item-meta li p {
  color: var(--primary-color1);
  font-weight: 700;
  margin-bottom: 0;
  margin-left: 0.2em;
}
div.woocommerce-order .shop_table {
  font-size: 1.6rem;
}
div.woocommerce-order .shop_table td {
  text-align: left;
}
div.woocommerce-order .shop_table td.product-total {
  text-align: right;
}
div.woocommerce-order .shop_table td .amount {
  color: var(--primary-color1);
  font-weight: 700;
}
div.woocommerce-order .shop_table td.order-total-promo-value .amount {
  color: #729334;
}

/**
 * WooCommerce: Wishlists page
 * TODO: Refactor this...WIP
 */
:root {
  --wc-wishlist-thumbnail-size: 100px;
}

body.woocommerce-wishlist .social-buttons {
  display: none;
}
body.woocommerce-wishlist div.tinv-wishlist {
  display: block;
  padding: 0;
}
body.woocommerce-wishlist .tinv-header {
  display: none;
  margin: 50px 0 30px;
}
body.woocommerce-wishlist .tinv-header h2 {
  font-weight: bold;
  font-size: var(--h1-font-size);
  line-height: 1.3;
  text-transform: capitalize;
  color: var(--primary-color1);
}
body.woocommerce-wishlist table.tinvwl-table-manage-list tr {
  padding: 0;
}
body.woocommerce-wishlist table.tinvwl-table-manage-list .product-stock i {
  display: none;
}
body.woocommerce-wishlist .product-remove button {
  display: block;
  padding: 10px;
  font-size: 0;
  color: transparent;
  aspect-ratio: 1/1;
  background-image: url(../../images/woocommerce/icon-delete.svg);
  background-size: 16px auto;
  background-repeat: no-repeat;
  background-position: center;
}
body.woocommerce-wishlist .product-remove button:focus {
  outline: none;
}
body.woocommerce-wishlist .product-remove button i {
  display: none;
}
body.woocommerce-wishlist .product-thumbnail {
  width: var(--wc-wishlist-thumbnail-size);
}
body.woocommerce-wishlist .woocommerce-MyAccount-navigation-link.is-active a:after {
  opacity: 0.5;
}
body.woocommerce-wishlist .woocommerce-MyAccount-navigation-link--tinv_wishlist a:after {
  opacity: 1;
}

.tinvwl-input-group {
  display: flex;
  align-items: stretch;
}
.tinvwl-input-group .form-control {
  float: none;
  height: auto;
  margin: 2px 0;
}
.tinvwl-input-group-btn {
  width: auto;
}

@media (max-width: 767px) {
  .wishlist_item {
    display: flex;
    flex-wrap: wrap;
  }
  .wishlist_item td {
    padding: 0.2em 0.5em !important;
  }
  .tinv-wishlist table.tinvwl-table-manage-list tbody td.product-cb, .tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove {
    display: inline-flex;
    align-items: center;
    width: 50% !important;
  }
  .tinv-wishlist table.tinvwl-table-manage-list tbody td.product-cb > * {
    margin-left: auto;
  }
  .tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove > * {
    margin: 0;
  }
  .tinv-wishlist table.tinvwl-table-manage-list tbody td.product-name {
    font-size: 2.4rem;
    font-weight: bold;
  }
  .tinv-wishlist .product-thumbnail img {
    max-width: 120px;
  }
}
/* Membership variation block */
.ds-variations-membership {
  --body-text-color: #0B0914;
  --color-gray: #A9A9AA;
  --color-green: #119100;
  --member-col-gap: 1.6rem;
  padding: 2rem;
  border-radius: 2.4rem;
  border-top: 1rem solid #cca532;
  background: #FFF;
  box-shadow: 0 4px 32px 3px rgba(0, 0, 0, 0.03);
  margin-bottom: 8rem;
  color: var(--body-text-color);
}
@media (max-width: 767px) {
  .ds-variations-membership {
    margin-bottom: 6rem;
  }
}
@media (min-width: 768px) {
  .ds-variations-membership {
    padding: 4.4rem;
  }
}
.ds-variations-membership h1, .ds-variations-membership h2, .ds-variations-membership h3, .ds-variations-membership h4, .ds-variations-membership h5, .ds-variations-membership h6 {
  color: var(--body-text-color);
}
.ds-variations-membership .price .amount {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--body-text-color);
}
.ds-variations-membership .price .subscription-details {
  display: block;
  text-transform: capitalize;
}
.ds-variations-membership .is-wysiwyg {
  font-size: 1.6rem;
}
.ds-variations-membership .is-wysiwyg ul li {
  padding: 0 0 0 3rem;
  margin-bottom: 1.6rem;
  position: relative;
}
.ds-variations-membership .is-wysiwyg ul li::before {
  content: "";
  width: 2rem;
  height: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10.0013 1.66699C5.4063 1.66699 1.66797 5.40533 1.66797 10.0003C1.66797 14.5953 5.4063 18.3337 10.0013 18.3337C14.5963 18.3337 18.3346 14.5953 18.3346 10.0003C18.3346 5.40533 14.5963 1.66699 10.0013 1.66699ZM8.33547 13.6778L5.2413 10.5903L6.41797 9.41033L8.3338 11.3228L12.7455 6.91116L13.9238 8.08949L8.33547 13.6778Z' fill='%23213C8C'/%3E%3C/svg%3E");
  background-position: center;
  background-size: contain;
  display: block;
  position: absolute;
  left: 0;
  top: 0.25rem;
}
.ds-variations-membership .is-wysiwyg h1, .ds-variations-membership .is-wysiwyg h2, .ds-variations-membership .is-wysiwyg h3, .ds-variations-membership .is-wysiwyg h4, .ds-variations-membership .is-wysiwyg h5, .ds-variations-membership .is-wysiwyg h6 {
  margin-bottom: 1.2em;
}
.ds-variations-membership__primary {
  border-bottom: 1px dashed var(--color-gray);
  margin-bottom: 3.6rem;
  padding-bottom: 2rem;
}
@media (min-width: 768px) {
  .ds-variations-membership__primary .ds-variations-membership-form__description ul {
    columns: 2;
    -webkit-columns: 2;
    -moz-columns: 2;
  }
}
.ds-variations-membership__secondary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--member-col-gap);
  border-bottom: 1px dashed var(--color-gray);
  margin-bottom: 3.6rem;
  padding-bottom: 2rem;
}
.ds-variations-membership__secondary .c-heading {
  margin-bottom: 0;
  width: 100%;
}

.ds-variations-membership-form__header {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3.4rem;
}
.ds-variations-membership-form__header .price {
  display: flex;
  align-items: center;
}

.ds-variations-membership-col {
  border-radius: 16px;
  border: 2px solid var(--primary-color1);
  background: linear-gradient(237deg, rgba(0, 0, 0, 0.12) -71.89%, rgba(255, 255, 255, 0.12) 44.29%, rgba(152, 152, 152, 0.12) 82.75%);
  padding: 1.6rem 2rem !important;
  color: var(--body-text-color);
  cursor: pointer;
}
@media (min-width: 768px) {
  .ds-variations-membership-col {
    width: calc(50% - var(--member-col-gap) / 2) !important;
  }
}
.ds-variations-membership-col__header {
  padding: 0;
  margin: 0 0 1.6rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ds-variations-membership-col__header p {
  font-size: 2rem;
  font-weight: 700;
  color: var(--body-text-color);
}
.ds-variations-membership-col__title {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}
.ds-variations-membership-col__badge {
  display: inline-flex;
  padding: 0.6rem 0.8rem;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  border-radius: 0.8rem;
  font-size: 1.6rem;
  background-color: var(--primary-color2);
  color: var(--body-text-color);
}
.ds-variations-membership-col input[type=checkbox] {
  appearance: none;
  cursor: pointer;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 100%;
  border: 2px solid var(--primary-color1);
  aspect-ratio: 1/1;
}
.ds-variations-membership-col input[type=checkbox]:checked {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 0C5.3832 0 0 5.3832 0 12C0 18.6168 5.3832 24 12 24C18.6168 24 24 18.6168 24 12C24 5.3832 18.6168 0 12 0ZM9.6012 17.2956L5.1456 12.8496L6.84 11.1504L9.5988 13.9044L15.9516 7.5516L17.6484 9.2484L9.6012 17.2956Z' fill='%23213C8C'/%3E%3C/svg%3E");
  background-size: 2.4rem 2.4rem;
  background-position: center;
  background-repeat: no-repeat;
}

.ds-variations-membership-totals-list__item {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
}
.ds-variations-membership-totals-list__item.-price .subscription-details {
  display: none;
}
.ds-variations-membership-totals-list__item.-addon .price {
  color: var(--color-green);
  font-size: 2.4rem;
  font-weight: 700;
}
.ds-variations-membership-totals-list__item.-total {
  border-top: 1px dashed var(--color-gray);
  margin-top: 2rem;
  padding-top: 2rem;
  margin-bottom: 3rem;
}
.ds-variations-membership-totals-list__item.-total .ds-variations-membership-totals-list__label {
  font-weight: 700;
}
.ds-variations-membership-totals-list__item.-total .price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.ds-variations-membership-totals form.cart {
  display: block;
}
.ds-variations-membership-totals__button {
  padding-inline: 5.4rem !important;
  display: inline-block !important;
}
@media (max-width: 767px) {
  .ds-variations-membership-totals__button {
    width: 100%;
  }
}
.ds-variations-membership-totals__button svg {
  width: 2rem !important;
  height: 2rem;
}

.ds-feature-text-simple {
  color: var(--ds-flex-color-text, #4F4F4F);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2rem;
  letter-spacing: -0.042rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ds-flex-color-accent, #DFD6E8) 25%, transparent);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}

.ds-feature-accordion-simple {
  color: var(--ds-flex-color-text, #4F4F4F);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2rem;
  letter-spacing: -0.042rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ds-flex-color-accent, #DFD6E8) 25%, transparent);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
}
.ds-feature-accordion-simple summary {
  display: flex;
  justify-content: space-between;
  transition: margin-bottom 0.3s ease;
}
.ds-feature-accordion-simple summary::marker {
  content: "";
}
.ds-feature-accordion-simple summary::after {
  content: "";
  background-color: var(--ds-flex-color-text, #4F4F4F);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.19141 8.43359L0.566406 2.80859C0.109375 2.38672 0.109375 1.64844 0.566406 1.22656C0.988281 0.769531 1.72656 0.769531 2.14844 1.22656L7 6.04297L11.8164 1.22656C12.2383 0.769531 12.9766 0.769531 13.3984 1.22656C13.8555 1.64844 13.8555 2.38672 13.3984 2.80859L7.77344 8.43359C7.35156 8.89062 6.61328 8.89062 6.19141 8.43359Z' fill='currentColor'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.19141 8.43359L0.566406 2.80859C0.109375 2.38672 0.109375 1.64844 0.566406 1.22656C0.988281 0.769531 1.72656 0.769531 2.14844 1.22656L7 6.04297L11.8164 1.22656C12.2383 0.769531 12.9766 0.769531 13.3984 1.22656C13.8555 1.64844 13.8555 2.38672 13.3984 2.80859L7.77344 8.43359C7.35156 8.89062 6.61328 8.89062 6.19141 8.43359Z' fill='currentColor'/%3E%3C/svg%3E%0A");
  width: 16px;
  height: 14px;
  flex: 0 0 16px;
  display: inline-block;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform-origin: 50% 75%;
  transition: transform 0.3s ease;
}
.ds-feature-accordion-simple[open] summary {
  margin-bottom: 1rem;
}
.ds-feature-accordion-simple[open] summary::after {
  transform: rotate(180deg);
}

.ds-feature-text-advanced {
  background-color: #fff;
  padding: 1.2rem;
  color: var(--ds-flex-color-text, #4F4F4F);
  border-radius: 1.2rem;
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.12);
  display: flex;
  gap: 1rem;
  margin: 0 -1.2rem 1rem -1.2rem;
}
.ds-feature-text-advanced .-line-1 {
  font-size: 1.8rem;
  letter-spacing: -0.054rem;
  line-height: 2rem;
  font-weight: 500;
  color: var(--ds-flex-color-text, #4F4F4F);
}
.ds-feature-text-advanced .-line-2 {
  font-size: 1.4rem;
  letter-spacing: -0.042rem;
  color: var(--ds-flex-color-text, #4F4F4F);
}
.ds-feature-text-advanced .-line-3 {
  font-size: 1.6rem;
  letter-spacing: -0.054rem;
  line-height: 2rem;
  font-weight: 500;
  color: var(--ds-flex-color-accent, #5E328A);
}

.ds-feature-accordion-advanced {
  background-color: #fff;
  padding: 1.2rem;
  color: var(--ds-variation-features-color-text, #4F4F4F);
  border-radius: 1.2rem;
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.12);
  margin: 0 -1.2rem 1rem -1.2rem;
}
.ds-feature-accordion-advanced summary {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  transition: margin-bottom 0.3s ease;
}
.ds-feature-accordion-advanced summary::marker {
  content: "";
}
.ds-feature-accordion-advanced summary::after {
  content: "";
  background-color: var(--ds-flex-color-accent, #5E328A);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='23' height='22' viewBox='0 0 23 22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 0.125C15.2324 0.125 18.6777 2.13477 20.5645 5.375C22.4512 8.65625 22.4512 12.6348 20.5645 15.875C18.6777 19.1562 15.2324 21.125 11.5 21.125C7.72656 21.125 4.28125 19.1562 2.39453 15.875C0.507812 12.6348 0.507812 8.65625 2.39453 5.375C4.28125 2.13477 7.72656 0.125 11.5 0.125ZM6.53711 10.0098L10.8027 14.2754C11.1719 14.6855 11.7871 14.6855 12.1973 14.2754L16.4219 10.0098C16.832 9.64062 16.832 9.02539 16.4219 8.65625C16.0527 8.24609 15.4375 8.24609 15.0273 8.65625L11.459 12.2246L7.89062 8.65625C7.52148 8.24609 6.90625 8.24609 6.53711 8.65625C6.12695 9.02539 6.12695 9.64062 6.53711 10.0098Z' fill='%235E328A'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='23' height='22' viewBox='0 0 23 22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 0.125C15.2324 0.125 18.6777 2.13477 20.5645 5.375C22.4512 8.65625 22.4512 12.6348 20.5645 15.875C18.6777 19.1562 15.2324 21.125 11.5 21.125C7.72656 21.125 4.28125 19.1562 2.39453 15.875C0.507812 12.6348 0.507812 8.65625 2.39453 5.375C4.28125 2.13477 7.72656 0.125 11.5 0.125ZM6.53711 10.0098L10.8027 14.2754C11.1719 14.6855 11.7871 14.6855 12.1973 14.2754L16.4219 10.0098C16.832 9.64062 16.832 9.02539 16.4219 8.65625C16.0527 8.24609 15.4375 8.24609 15.0273 8.65625L11.459 12.2246L7.89062 8.65625C7.52148 8.24609 6.90625 8.24609 6.53711 8.65625C6.12695 9.02539 6.12695 9.64062 6.53711 10.0098Z' fill='%235E328A'/%3E%3C/svg%3E%0A");
  width: 21px;
  height: 21px;
  display: inline-block;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform-origin: 50% 50%;
  transition: transform 0.3s ease;
}
.ds-feature-accordion-advanced summary .-line-1 {
  font-size: 1.8rem;
  letter-spacing: -0.054rem;
  line-height: 2rem;
  font-weight: 500;
  color: var(--ds-flex-color-text, #4F4F4F);
}
.ds-feature-accordion-advanced summary .-line-2 {
  font-size: 1.6rem;
  letter-spacing: -0.054rem;
  line-height: 2rem;
  font-weight: 500;
  color: var(--ds-flex-color-accent, #5E328A);
}
.ds-feature-accordion-advanced[open] summary {
  margin-bottom: 1rem;
}
.ds-feature-accordion-advanced[open] summary::after {
  transform: rotate(180deg);
}
.ds-feature-accordion-advanced-description {
  --wysiwyg-margin: 0.5em;
  color: var(--ds-flex-color-text, #4F4F4F);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2rem;
  letter-spacing: -0.042rem;
}

.pdp-variations {
  --ds-variation-box-border-radius: 1.8rem;
  margin-bottom: 8rem;
}
@media (max-width: 767px) {
  .pdp-variations {
    margin-bottom: 6rem;
  }
}
.pdp-variations .c-heading {
  margin-bottom: 5.4rem;
  text-align: center;
}
.pdp-variations__inner {
  display: flex;
  justify-content: space-between;
  gap: 2.4rem;
}
@media (max-width: 767px) {
  .pdp-variations__inner {
    flex-direction: column;
  }
}
.pdp-variations__inner .ds-variation {
  display: flex;
  flex-direction: column;
  position: relative;
  border-radius: var(--ds-variation-box-border-radius);
  background: #FFF;
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.12);
  width: 100%;
  /* Style badge */
  /* Style form */
  /* Style features */
}
.pdp-variations__inner .ds-variation-badge {
  background-color: var(--ds-badge-color-bg, var(--primary-color1));
  color: var(--ds-badge-color-text, #fff);
  position: absolute;
  left: 0;
  right: 0;
  top: -1.6rem;
  margin: 0 auto;
  padding: 0.4rem 2.4rem;
  border-radius: 2.4rem;
  display: inline-table;
  font-size: 1.6rem;
  font-weight: 700;
}
.pdp-variations__inner .ds-variation-form {
  padding: 4rem 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.pdp-variations__inner .ds-variation-form form {
  margin-bottom: 0;
}
.pdp-variations__inner .ds-variation-form__title {
  font-size: 2.5rem;
  text-align: center;
}
.pdp-variations__inner .ds-variation-form__title hr {
  color: #EDEFF3;
}
.pdp-variations__inner .ds-variation-form__price {
  font-size: 4rem;
  font-weight: 800;
  line-height: 6rem;
  text-align: center;
  display: inline-block;
  margin: 0 auto;
}
.pdp-variations__inner .ds-variation-form__price.-bg {
  background-color: var(--ds-flex-color-bg, #e9ebf3);
  padding: 0 1.6rem;
  border-radius: 0.8rem;
}
.pdp-variations__inner .ds-variation-form__price.-duration .subscription-details {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 500;
}
.pdp-variations__inner .ds-variation-form__button svg {
  width: 3rem;
  height: 2.4rem;
}
.pdp-variations__inner .ds-variation-features {
  padding: 2.4rem 3.2rem;
  background-color: var(--ds-flex-color-bg, #E9EBF3);
  height: 100%;
  border: 4px solid #fff;
  border-top: none;
  height: 100%;
  border-radius: 0 0 var(--ds-variation-box-border-radius) var(--ds-variation-box-border-radius);
}
.pdp-variations__inner .ds-variation-features__title {
  color: var(--ds-flex-color-text, #4F4F4F);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2rem;
  letter-spacing: -0.042rem;
  margin-bottom: 1em;
}

.pdp-accordion-boxes {
  margin-bottom: 8rem;
}
.pdp-accordion-boxes .c-heading {
  text-align: center;
  margin-bottom: 4rem;
}

.ds-accordion-boxes {
  --ds-accordion-boxes-items: 3;
  display: grid;
  grid-template-columns: repeat(var(--ds-accordion-boxes-items), 1fr);
  gap: 1.6rem;
}
@media (max-width: 1112px) {
  .ds-accordion-boxes {
    --ds-accordion-boxes-items: 2;
  }
}
@media (max-width: 767px) {
  .ds-accordion-boxes {
    --ds-accordion-boxes-items: 1;
  }
}
.ds-accordion-boxes__item {
  padding: 1.6rem 2.4rem 1.6rem 1.6rem;
  background-color: var(--ds-flex-color-bg, #e9ebf3);
  border-radius: 1.1rem;
  position: relative;
}
.ds-accordion-boxes__item summary {
  display: flex;
  justify-content: space-between;
  transition: margin-bottom 0.3s ease;
}
.ds-accordion-boxes__item summary::marker {
  content: "";
}
.ds-accordion-boxes__item summary::after {
  content: "";
  background-color: var(--ds-flex-color-accent, #DFD6E8);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.19141 8.43359L0.566406 2.80859C0.109375 2.38672 0.109375 1.64844 0.566406 1.22656C0.988281 0.769531 1.72656 0.769531 2.14844 1.22656L7 6.04297L11.8164 1.22656C12.2383 0.769531 12.9766 0.769531 13.3984 1.22656C13.8555 1.64844 13.8555 2.38672 13.3984 2.80859L7.77344 8.43359C7.35156 8.89062 6.61328 8.89062 6.19141 8.43359Z' fill='currentColor'/%3E%3C/svg%3E%0A");
  mask-image: url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.19141 8.43359L0.566406 2.80859C0.109375 2.38672 0.109375 1.64844 0.566406 1.22656C0.988281 0.769531 1.72656 0.769531 2.14844 1.22656L7 6.04297L11.8164 1.22656C12.2383 0.769531 12.9766 0.769531 13.3984 1.22656C13.8555 1.64844 13.8555 2.38672 13.3984 2.80859L7.77344 8.43359C7.35156 8.89062 6.61328 8.89062 6.19141 8.43359Z' fill='currentColor'/%3E%3C/svg%3E%0A");
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  display: inline-block;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform-origin: 50% 50%;
  transition: transform 0.3s ease;
}
@media (max-width: 1112px) {
  .ds-accordion-boxes__item[open] summary {
    margin-bottom: 1.6rem;
  }
}
.ds-accordion-boxes__item[open] summary::after {
  transform: rotate(180deg);
}
.ds-accordion-boxes__header {
  display: flex;
  gap: 1.6rem;
}
.ds-accordion-boxes__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 8.4rem;
  flex: 0 0 8.4rem;
  height: 8.5rem;
  padding: 0 0.8rem;
  background: color-mix(in srgb, var(--ds-flex-color-accent, #DFD6E8) 10%, transparent);
  border-radius: 0.8rem;
}
.ds-accordion-boxes__title {
  color: var(--ds-flex-color-text, #213B8C);
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 2.8rem;
  letter-spacing: -0.066rem;
}
.ds-accordion-boxes__content {
  font-size: 1.6rem;
}
@media (min-width: 1113px) {
  .ds-accordion-boxes__content {
    position: absolute;
    top: 95%;
    left: 0;
    width: 100%;
    background-color: var(--ds-flex-color-bg, #e9ebf3);
    z-index: 10;
    padding: 1.6rem 2.4rem 1.6rem 1.6rem;
    border-radius: 0 0 0.8rem 0.8rem;
    box-shadow: 0px 10px 13px rgba(0, 0, 0, 0.15);
  }
}

.pdp-card-simple {
  background-color: var(--ds-flex-color-bg, #e9ebf3);
  padding-top: 7rem;
  padding-bottom: 8rem;
  margin-bottom: 8rem;
}
@media (max-width: 767px) {
  .pdp-card-simple {
    padding-top: 4rem;
    padding-bottom: 4rem;
    margin-bottom: 6rem;
  }
}
.pdp-card-simple .c-heading {
  text-align: center;
  margin-bottom: 4rem;
}
.pdp-card-simple .c-block__btn {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.pdp-card-simple .ds-card-simple {
  --ds-card-order-media: 1;
  --ds-card-order-content: 2;
  --dst-card-flex-direction: row;
  background-color: var(--ds-flex-color-accent, #fff);
  display: flex;
  flex-direction: var(--dst-card-flex-direction);
  gap: 4rem;
  padding: 4.6rem;
  border-radius: 8px;
}
.pdp-card-simple .ds-card-simple.-right {
  --ds-card-order-media: 2;
  --ds-card-order-content: 1;
}
.pdp-card-simple .ds-card-simple.-top {
  --dst-card-flex-direction: column;
}
@media (max-width: 767px) {
  .pdp-card-simple .ds-card-simple {
    --dst-card-flex-direction: column;
  }
}
.pdp-card-simple .ds-card-simple .is-wysiwyg {
  --base-text-size: 1.6rem;
  font-size: 1.6rem;
  --titles-color: var(--ds-flex-color-text, var(--body-text-color));
  color: var(--ds-flex-color-text, var(--body-text-color));
}
.pdp-card-simple .ds-card-simple__media {
  --dst-card-media-width: 38rem;
  --dst-card-aspect-ratio: 1 / 1;
  order: var(--ds-card-order-media, 1);
  width: var(--dst-card-media-width);
  flex: 0 0 var(--dst-card-media-width);
  border-radius: 8px;
  overflow: hidden;
}
.pdp-card-simple .ds-card-simple__media.-top {
  --dst-card-media-width: 100%;
  --dst-card-aspect-ratio: 16 / 9;
}
@media (max-width: 767px) {
  .pdp-card-simple .ds-card-simple__media {
    --dst-card-media-width: 100%;
    --dst-card-aspect-ratio: 16 / 9;
  }
}
.pdp-card-simple .ds-card-simple__media picture {
  aspect-ratio: var(--dst-card-aspect-ratio);
  border-radius: 6px;
  overflow: hidden;
  display: block;
}
@media (max-width: 767px) {
  .pdp-card-simple .ds-card-simple__media picture {
    border-radius: 0;
  }
}
.pdp-card-simple .ds-card-simple__media picture source,
.pdp-card-simple .ds-card-simple__media picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.pdp-card-simple .ds-card-simple__content {
  order: var(--ds-card-order-content, 2);
}

.pdp-action-bar {
  margin-bottom: 5rem;
  background-color: var(--ds-flex-color-accent, #fff);
}
@media (max-width: 767px) {
  .pdp-action-bar {
    margin-bottom: 3rem;
  }
}
.pdp-action-bar .dst-flex-block__inner {
  display: flex;
  padding-block: 1rem;
}

.ds-action-bar {
  display: inline-flex;
  gap: 1rem;
  align-items: center;
  padding: 2.4rem 4.8rem;
  background-color: var(--ds-flex-color-bg, #e9ebf3);
  border-radius: 5.8rem;
  margin-inline: auto;
}
@media (max-width: 767px) {
  .ds-action-bar {
    flex-direction: column;
    border-radius: 8px;
    padding: 2rem 2.4rem;
  }
}
.ds-action-bar__title {
  margin-bottom: 0;
  font-weight: 700;
  line-height: 3rem;
  letter-spacing: -0.6px;
  color: var(--ds-flex-color-text, #2A355C);
}
@media (max-width: 767px) {
  .ds-action-bar__btn {
    width: 100%;
  }
  .ds-action-bar__btn .c-btn {
    width: 100%;
  }
}

.pdp-icon-bar {
  margin-bottom: 8rem;
  background-color: var(--ds-flex-color-bg, #e9ebf3);
}
@media (max-width: 767px) {
  .pdp-icon-bar {
    margin-bottom: 6rem;
  }
}
@media (min-width: 1113px) {
  .pdp-icon-bar {
    --ds-flex--container-inner-width: 146rem !important;
  }
}

.ds-icon-bar {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 2.4rem 0;
}
@media (max-width: 767px) {
  .ds-icon-bar {
    padding: 2.4rem;
    gap: 2rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}
.ds-icon-bar__item {
  display: flex;
  gap: 1.2rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .ds-icon-bar__item {
    white-space: nowrap;
    flex-direction: row;
  }
}
.ds-icon-bar__desc {
  font-size: 2.4rem;
  line-height: 2.9rem;
  letter-spacing: -0.1421rem;
  color: var(--ds-flex-color-text, #292929);
}
.ds-icon-bar__desc.-is-small {
  font-size: 1.6rem;
  letter-spacing: 0;
  line-height: 2rem;
}
.ds-icon-bar__desc.-is-small strong {
  font-weight: 600;
}
.ds-icon-bar__desc > *:last-child {
  margin-bottom: 0;
}
.ds-icon-bar__icon img,
.ds-icon-bar__icon picture,
.ds-icon-bar__icon svg {
  margin-bottom: 0;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvb2NvbW1lcmNlL3dvb2NvbW1lcmNlLnNjc3MiLCJfX2NvcmUvbWl4aW5zL19hc3BlY3QtcmF0aW8uc2NzcyIsIl9fY29yZS9taXhpbnMvX3BhZ2Utc2l6ZXMuc2NzcyIsIl9faGVscGVycy9fdXRpbC1jbGFzc2VzLnNjc3MiLCJfX2NvcmUvbWl4aW5zL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3b29jb21tZXJjZS9hYnN0cmFjdC9fdmFyaWFibGVzLnNjc3MiLCJ3b29jb21tZXJjZS9hYnN0cmFjdC9fbWl4aW5zLnNjc3MiLCJ3b29jb21tZXJjZS9hYnN0cmFjdC9fa2V5ZnJhbWVzLnNjc3MiLCJ3b29jb21tZXJjZS9hYnN0cmFjdC9fZ2VuZXJhbC5zY3NzIiwid29vY29tbWVyY2UvbGF5b3V0L19hamF4LWxheWVyZWQtbmF2LnNjc3MiLCJ3b29jb21tZXJjZS9sYXlvdXQvX2hlYWRlci5zY3NzIiwid29vY29tbWVyY2UvbGF5b3V0L19sYXlvdXQuc2NzcyIsIndvb2NvbW1lcmNlL2xheW91dC9fc2lkZWJhci5zY3NzIiwid29vY29tbWVyY2UvbGF5b3V0L193aWRnZXRzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19iYWRnZXMuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX2Jvb2tpbmdzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19icmFuZHMuc2NzcyIsIndvb2NvbW1lcmNlL2Fic3RyYWN0L19zcGFuLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fY29tcG9zaXRlLXByb2R1Y3RzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19kZXBvc2l0cy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fZmlsdGVycy13aWRnZXQuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX2Zvcm0uc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX21lbWJlcnNoaXBzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19taXgtYW5kLW1hdGNoLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19ub3RpZmljYXRpb24tYm94LnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19wcm9kdWN0LWdhbGxlcnkuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX3Bob3RvZ3JhcGh5LnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19wcm9kdWN0LXJlY29tbWVuZGF0aW9ucy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fcHJvZHVjdC1yZXZpZXdzLXByby5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fcXVpY2stdmlldy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fcmVsYXRlZC1wcm9kdWN0cy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fcmV2aWV3cy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fc2hpcC1tdWx0aXBsZS1hZGRyZXNzZXMuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX3NoaXBwaW5nLWJhci5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fc2lkZWJhci13aWRnZXRzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19zbWFydC1jb3Vwb25zLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL19zb2NpYWxzLnNjc3MiLCJ3b29jb21tZXJjZS9jb21wb25lbnRzL190YWJsZXMuc2NzcyIsIndvb2NvbW1lcmNlL2NvbXBvbmVudHMvX3ZhcmlhdGlvbi1zd2F0Y2hlcy5zY3NzIiwid29vY29tbWVyY2UvY29tcG9uZW50cy9fd2lzaGxpc3QtYnV0dG9uLnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9fYWNjb3VudC5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvX2NhcnQuc2NzcyIsIndvb2NvbW1lcmNlL3BhZ2VzL19jaGVja291dC5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvX3Byb2R1Y3RzLnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9fc2VhcmNoLnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9fc2luZ2xlLXByb2R1Y3Quc2NzcyIsIndvb2NvbW1lcmNlL3BhZ2VzL19zaW5nbGUtcHJvZHVjdC1yZWRlc2lnbi5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvX3RoYW5rLXlvdS5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvX3dpc2hsaXN0cy5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvZmxleC9fcGNfcHJvZHVjdF92YXJpYXRpb25zX21lbWJlcnNoaXAuc2NzcyIsIndvb2NvbW1lcmNlL3BhZ2VzL2ZsZXgvZmVhdHVyZXMvX2ZlYXR1cmVzX3RleHQuc2NzcyIsIndvb2NvbW1lcmNlL3BhZ2VzL2ZsZXgvZmVhdHVyZXMvX2ZlYXR1cmVzX2FjY29yZGlvbl9pdGVtLnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9mbGV4L2ZlYXR1cmVzL19mZWF0dXJlc19hZHZhbmNlZF90ZXh0LnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9mbGV4L2ZlYXR1cmVzL19mZWF0dXJlc19hZHZhbmNlZF9hY2NvcmRpb24uc2NzcyIsIndvb2NvbW1lcmNlL3BhZ2VzL2ZsZXgvX3BjX3Byb2R1Y3RfdmFyaWF0aW9ucy5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvZmxleC9fcGNfYWNjb3JkaW9uX2JveGVzLnNjc3MiLCJ3b29jb21tZXJjZS9wYWdlcy9mbGV4L19wY19jYXJkX3NpbXBsZS5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvZmxleC9fcGNfYWN0aW9uX2Jhci5zY3NzIiwid29vY29tbWVyY2UvcGFnZXMvZmxleC9fcGNfaWNvbl9iYXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBO0FDa0JBO0FBQUE7QUFBQTtBQUFBO0FDbEJBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQ1pBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7OztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FDa2dCQTtFRDlmQTtBQUFBO0lBRUk7OztBQUlSO0FBQUE7RUFFSTs7O0FDc2ZBO0VEbGZBO0FBQUE7SUFFSTs7O0FBSVI7QUFBQTtFQUVJOzs7QUMwZUE7RUR0ZUE7QUFBQTtJQUVJOzs7QUFJUjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUlKO0FBRUE7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTs7O0FBSUo7QUFFQTtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUU1Wko7QUFBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUNBQTtBQUFBO0FBQUE7QUFJQTtFQUNFO0lBQ0U7SUFDQTs7RUFHRjtJQUNFOzs7QUFJSjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTtJQUNBOzs7QUFJSjtFQUNFO0lBQ0U7O0VBRUY7SUFDRTs7O0FDL0JKO0FBQUE7QUFBQTtBQUlBO0VBRUk7RUFDQTs7QUpzaUJBO0VJemlCSjtJQU1ROzs7QUptaUJKO0VJemlCSjtJQVVROzs7O0FBS0o7RUFFSTs7O0FBV0o7RUFDSTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7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SUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QTdCOGVGO0U2Qi9lQTtJQUlJOzs7QUFJSjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFNSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFPSjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlGO0FBQUE7RUFHRTs7QUFJRjtBQUFBO0VBSUU7OztBQUtKO0VBQ0U7RUFFQTs7QUFFQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUM3TUo7QUFBQTtBQUFBO0FBTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7O0FBT0Y7RUFDRTs7O0FDdkJOO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QS9CMmhCRTtFK0J6aUJKO0lBaUJJO0lBQ0E7Ozs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0FBQUE7RUFFRTtFQUNBO0VBQ0E7O0FBSUo7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBL0JtZEY7RStCNWNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7QUFBQTtBQUFBO0FBQUE7SUFJQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFFQTtJQUVFOztFQUlBO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7SUFDQTs7RUFFQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUlKO0lBQ0U7SUFDQTs7RUFFQTtJQUNFOztFQU1OO0lBQ0U7SUFDQTs7O0FBRUE7RUFKRjtJQUtJOztFQUVBO0lBQ0U7O0VBR0Y7SUFDRTs7O0EvQjRZUjtFK0J0WVE7QUFBQTtJQUVFOztFQUdGO0lBQ0U7O0VBSUo7SUFDRTs7O0EvQjJYUjtFK0JyWEU7SUFDRTtJQUNBOzs7QUFFQTtFQUpGO0lBS0k7O0VBRUE7SUFDRTs7RUFHRjtJQUNFOzs7QS9CeVdSO0UrQnBXTTtJQUNFO0lBQ0E7O0VBRUE7QUFBQTtJQUVFOztFQUdGO0lBQ0U7O0VBSUo7SUFDRTs7O0EvQnFWUjtFK0I5VUE7SUFDRTs7RUFFQTtJQUNFOztFQUlGO0lBQ0U7O0VBRUE7SUFDRTs7RUFFQTtJQUNFOztFQUlKO0lBQ0U7O0VBS0o7SUFDRTs7RUFFQTtJQUNFOztFQUVBO0lBQ0U7O0VBSUo7SUFDRTs7OztBQ3BRVjtBQUFBO0FBQUE7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTs7O0FBTUE7RUFDRTs7QUFRRTtFQUNFOztBQUdGO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQU1KO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBRUU7QUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUVFOztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFFRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7O0FBZ0JWO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0U7O0FBSUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQU9KO0VBQ0U7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUVFOztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBS0o7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQVRGO0lBVUk7O0VBRUE7SUFDRTtJQUNBO0lBQ0E7OztBQUtOO0VBQ0U7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBaEMwUUY7RWdDOVFBO0lBT0k7OztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJSjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTtFQUNBOzs7QUFNTjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUMxV0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFFO0FBQUE7RUFDRTtFQUNBOztBQUVBO0FBQUE7RUFDRTtFQUNBOztBQUlKO0FBQUE7RUFDRTs7QUFJQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7RUFFRTs7QUFJSjtBQUFBO0VBQ0U7OztBQU9BO0VBQ0U7RUFDQTs7O0FqQ2tnQkY7RWlDNWZGO0lwQmlGTSxPQStJSztJQS9JTCxPQStJSztJQS9JTCxjQStJSztJQS9JTCxjQTBiSztJQTFiTCxlQTBiSzs7RW9CcmdCVDtJcEIyRUksT0ErSUs7SUEvSUwsT0ErSUs7SUEvSUwsY0ErSUs7SW9CeE5QOzs7QUN6RE47QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBT0Y7RUFDRTtFQUNBO0VBRUE7O0FBTUE7RUFDRTs7O0FBVUY7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7O0FDM0ROO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBbkNraUJFO0VtQ3hpQko7SUFTSTtJQUNBO0lBQ0E7Ozs7QUFJSjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7OztBQUVGO0FBQUE7QUFBQTtFQUdFOztBQUVBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7O0FBSUo7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0VBQ0U7OztBQzNETjtBQUFBO0FBQUE7QUFJQztFQUNHOzs7QUFHSjtFQUNJO0VBQ0E7O0FBQ0E7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUNBO0VBQ0k7OztBQUtaO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFnQlI7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0FBQUE7RUFFSTs7O0FBSUo7RUFDSTs7QUFDQTtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUdBO0VBQ0k7O0FBR1I7RUFFSTtFQUNBOztBQUNBO0VBQ0k7O0FBR1I7RUFDSTtFQUNBOzs7QUFLWjtFQUNJOzs7QUFJSjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUVBOztBQUNBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7O0FBSVI7QUFBQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtFQUNJO0VBQ0E7O0FBSVo7QUFBQTtFQUNJO0VBQ0E7O0FBQ0E7QUFBQTtFQUNJO0VBQ0E7O0FwQ3VXUjtFb0N6V0k7QUFBQTtJQUlROzs7QUFPUjtBQUFBO0VBQ0k7RUFDQTs7QUFVUjtBQUFBO0VBQ0k7O0FBRUo7QUFBQTtFQUNJOzs7QUFNSjtFQUNJOztBQUdBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7O0FDeFBoQjtBQUFBO0FBQUE7QUFBQTtBQU1BO0VBQ0U7O0FBR0E7RUFDRTs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQU1BO0VBQ0U7RUFDQTtFQUNBOztBQUtKO0VBQ0U7OztBQUtKO0VBQ0U7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QTtBQUFBO0FBQUE7RUFHSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTs7QUFFSjtBQUFBO0VBRUk7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVJO0VBQ0k7O0FBT3hCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOztBQUNBO0VBQ0k7O0FBRUk7RUFDSTs7QUFHQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBTVo7RUFDSTs7QUFDQTtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTXBCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0F0Q2tCSjtFc0M1QkE7SUFZUTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSTtFQUNJOztBQUlaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0F0QzlCUjtFc0N3Qkk7SUFRUTs7O0FBRUo7RUFDSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJOztBQUdBO0VBQ0k7RUFDQTtFQUNBOztBQUlaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBdENqSVo7RXNDeUhRO0lBVVE7SUFDQTtJQUNBOztFQUNBO0lBQ0k7SUFDQTs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7O0F0QzlJaEI7RXNDMklZO0lBS1E7OztBQUVKO0VBQ0k7RUFFQTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0F0QzdKaEI7RXNDd0pZO0lBT1E7OztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7QXRDeEtoQjtFc0NrS1k7SUFRUTs7O0F0QzFLcEI7RXNDa0tZO0lBV1E7OztBQUVKO0VBQ0k7O0F0Q2hMcEI7RXNDK0tnQjtJQUdROzs7QXRDbEx4QjtFc0MrS2dCO0lBTVE7SUFDQTs7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QXRDL0xoQjtFc0MwTFk7SUFPUTs7O0F0Q2pNcEI7RXNDbU1nQjtJQUVROzs7QXRDck14QjtFc0NtTWdCO0lBS1E7SUFDQTs7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7O0F0Q2hOaEI7RXNDNk1ZO0lBS1E7SUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0F0QzVOeEI7RXNDa09JO0lBRVE7OztBdENwT1o7RXNDdU9JO0lBRVE7OztBQUlaO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJOztBQUdBO0VBQ0k7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTs7QUFJWjtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0FBR1I7RUFDSTs7QUFDQTtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFNWjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFNcEI7QUFBQTtBQUFBO0VBR0k7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBOzs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFLSTtFQUNJO0VBQ0E7O0FBSUo7RUFDSTs7QUFHUjtFQUNJOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFcEN6N0JsQjtFQUNBOztBb0M0N0JjO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUdSO0VwQ3I4QlY7RUFDQTtFb0N1OEJjOztBQUVK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O0V1QzNMWTtJQVFROzs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUtoQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBU3hCO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSTtFQUNJO0VBQ0E7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QXZDb0daO0V1Q3hHUTtJQU1ROzs7QUFHUjtFQUNJOztBQUNBO0VBQ0k7O0FBQ0E7RUFDSTs7QUFDQTtFQUNJOztBQU1wQjtFQUNJOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVo7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFLUjtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUNJO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUNBO0VBRUk7RUFDQTs7QUFJUjtFQUNJOztBQUdS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bFpBO0lBS1E7SUFDQTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBR1I7QUFBQTtFQUVJO0VBQ0E7OztBQUtSO0VBQ0k7RUFDQTs7QUFDQTtFQUNJOzs7QUFLUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7O0FBTVI7RUFDSTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7QUFBQTtFQUVJOztBQUNBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0FBQUE7RUFDSTs7QUFLUjtFQUNJOztBQUlBO0V0QzdOZDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBc0N1TlU7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQUNBO0VBQ0k7O0FBR1I7RUFDSTs7QUFFSjtFQUNJO0VBQ0E7O0FBR1I7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBRUo7QUFBQTtBQUFBO0VBR0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBRUo7RUFDSTs7QUFFSjtFQUNJOztBQUVKO0VBQ0k7O0FBR1I7RUFDSTs7QUFLaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNJOzs7QUFNaEI7RUFDSTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUNBO0VBQ0k7RUFDQTs7QUFHUjtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFHQTtFQUNJOzs7QUFVWjtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtBQUFBO0FBQUE7RUFDSTtFQUNBOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtFQUNJOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUtSO0FBQUE7QUFBQTtFQUNJOztBQUtKO0FBQUE7QUFBQTtFQUNJOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOztBQUtoQjtBQUFBO0FBQUE7RUFDSTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFSTs7QUFFSjtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7O0F4QzRHWjtFd0MvR1E7QUFBQTtBQUFBO0lBS1E7OztBQWNSO0FBQUE7QUFBQTtFQUVJO0VBQ0E7O0FBSUo7QUFBQTtBQUFBO0VBQ0k7RUFDQTs7QUFHUjtBQUFBO0FBQUE7RUFDSTs7QUFFQTtBQUFBO0FBQUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QXhDeUVaO0V3QzdFUTtBQUFBO0FBQUE7SUFNUTs7O0FBR1I7QUFBQTtBQUFBO0VBQ0k7O0FBQ0E7QUFBQTtBQUFBO0VBQ0k7O0FBS1I7QUFBQTtBQUFBO0VBQ0k7O0FBQ0E7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0FBQUE7QUFBQTtFQUNJOztBQUVKO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBTVo7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUdSO0FBQUE7QUFBQTtFQUNJOzs7QUN6Z0JaO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFD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O0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQU9KO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUk7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTs7QUFHUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7O0FBS2hCO0VBQ0k7O0FBRUo7RUFDSTtFQUNBOztBL0NzV0o7RStDeFdBO0lBSVE7OztBQUVKO0VBQ0k7RUFDQTs7O0FDN01aO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FDUko7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUNBO0VBQ0k7OztBQ3ZDaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTs7QUFFSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQzFCUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUNBO0VBQ0k7O0FBSVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQ3hEUjtFQUNJO0VBQ0E7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InNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBXb29jb21tZXJjZTogU0NTUyBzdHJ1Y3R1cmVcclxuICovXHJcblxyXG4vLyBDb3JlIHRoZW1lIHNldHRpbmdzXHJcbkBpbXBvcnQgXCIuLi9fX2NvcmUvY29yZS1taXhpbnNcIjtcclxuQGltcG9ydCBcIi4uL19faGVscGVycy91dGlsLWNsYXNzZXNcIjtcclxuLy8gQWJzdHJhY3RzXHJcbkBpbXBvcnQgXCJhYnN0cmFjdC92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcImFic3RyYWN0L21peGluc1wiO1xyXG5AaW1wb3J0IFwiYWJzdHJhY3Qvc3BhblwiO1xyXG5AaW1wb3J0IFwiYWJzdHJhY3Qva2V5ZnJhbWVzXCI7XHJcbkBpbXBvcnQgXCJhYnN0cmFjdC9nZW5lcmFsXCI7XHJcbi8vIENvcmVcclxuQGltcG9ydCBcImNvcmUvdHlwb2dyYXBoeVwiO1xyXG4vLyBMYXlvdXRcclxuQGltcG9ydCBcImxheW91dC9hamF4LWxheWVyZWQtbmF2XCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQvaGVhZGVyXCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQvbGF5b3V0XCI7XHJcbkBpbXBvcnQgXCJsYXlvdXQvc2lkZWJhclwiO1xyXG5AaW1wb3J0IFwibGF5b3V0L3dpZGdldHNcIjtcclxuLy8gQ29tcG9uZW50c1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9iYWRnZXNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYm9va2luZ3NcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvYnJhbmRzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2JyZWFkY3J1bWJzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2J1dHRvbnNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9zaXRlLXByb2R1Y3RzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2RlcG9zaXRzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ZpbHRlcnMtd2lkZ2V0XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1cIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvbWVtYmVyc2hpcHNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvbWl4LWFuZC1tYXRjaFwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9ub3RpZmljYXRpb24tYm94XCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Byb2R1Y3QtZ2FsbGVyeVwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9waG90b2dyYXBoeVwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcm9kdWN0LXJlY29tbWVuZGF0aW9uc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcm9kdWN0LXJldmlld3MtcHJvXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3F1aWNrLXZpZXdcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvcmVsYXRlZC1wcm9kdWN0c1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9yZXZpZXdzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NoaXAtbXVsdGlwbGUtYWRkcmVzc2VzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NoaXBwaW5nLWJhclwiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9zaWRlYmFyLXdpZGdldHNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvc21hcnQtY291cG9uc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy9zb2NpYWxzXCI7XHJcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RhYmxlc1wiO1xyXG5AaW1wb3J0IFwiY29tcG9uZW50cy92YXJpYXRpb24tc3dhdGNoZXNcIjtcclxuQGltcG9ydCBcImNvbXBvbmVudHMvd2lzaGxpc3QtYnV0dG9uXCI7XHJcbi8vIFBhZ2VzXHJcbkBpbXBvcnQgXCJwYWdlcy9hY2NvdW50XCI7XHJcbkBpbXBvcnQgXCJwYWdlcy9jYXJ0XCI7XHJcbkBpbXBvcnQgXCJwYWdlcy9jaGVja291dFwiO1xyXG5AaW1wb3J0IFwicGFnZXMvcHJvZHVjdHNcIjtcclxuQGltcG9ydCBcInBhZ2VzL3NlYXJjaFwiO1xyXG5AaW1wb3J0IFwicGFnZXMvc2luZ2xlLXByb2R1Y3RcIjtcclxuQGltcG9ydCBcInBhZ2VzL3NpbmdsZS1wcm9kdWN0LXJlZGVzaWduXCI7XHJcbkBpbXBvcnQgXCJwYWdlcy90aGFuay15b3VcIjtcclxuQGltcG9ydCBcInBhZ2VzL3dpc2hsaXN0c1wiO1xyXG4vLyBGbGV4IGNvbnRlbnRcclxuQGltcG9ydCBcInBhZ2VzL2ZsZXgvcGNfcHJvZHVjdF92YXJpYXRpb25zX21lbWJlcnNoaXBcIjtcclxuQGltcG9ydCBcInBhZ2VzL2ZsZXgvcGNfcHJvZHVjdF92YXJpYXRpb25zXCI7XHJcbkBpbXBvcnQgXCJwYWdlcy9mbGV4L3BjX2FjY29yZGlvbl9ib3hlc1wiO1xyXG5AaW1wb3J0IFwicGFnZXMvZmxleC9wY19jYXJkX3NpbXBsZVwiO1xyXG5AaW1wb3J0IFwicGFnZXMvZmxleC9wY19hY3Rpb25fYmFyXCI7XHJcbkBpbXBvcnQgXCJwYWdlcy9mbGV4L3BjX2ljb25fYmFyXCI7XHJcbiIsIkBtaXhpbiBhc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0KSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdCY6YmVmb3Jle1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRjb250ZW50OiBcIiBcIjtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0cGFkZGluZy10b3A6ICgkaGVpZ2h0IC8gJHdpZHRoKSAqIDEwMCU7XHJcblx0fVxyXG5cclxuXHQ+IC5jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcbn1cclxuXHJcbi8qXHJcbi5zaXh0ZWVuLW5pbmUge1xyXG5cdEBpbmNsdWRlIGFzcGVjdC1yYXRpbygxNiw5KTtcclxufSovXHJcbiIsIi8qIE1lZGlhIFF1ZXJpZXMgQnJlYWtwb2ludHMgKi9cclxuXHJcbiRicmVha3BvaW50czogKFxyXG4gICAgICAgICdwaG9uZSc6IDMyMHB4LFxyXG4gICAgICAgICdwaG9uZS1sJzogNTc1cHgsXHJcbiAgICAgICAgJ3RhYmxldCc6IDc2N3B4LFxyXG4gICAgICAgICdkZXNrdG9wJzogMTExMnB4LFxyXG4gICAgICAgICdkZXNrdG9wLW0nOiAxMjgwcHgsXHJcbiAgICAgICAgJ2Rlc2t0b3AtbCc6IDE0NDBweCxcclxuICAgICAgICAnZGVza3RvcC14bCc6IDE2NjBweFxyXG4pO1xyXG5cclxuLyoqXHJcbiogKioqKioqKioqKioqKioqKioqKlxyXG4qICBVc2FnZSBleGFtcGxlc1xyXG4qICoqKioqKioqKioqKioqKioqKipcclxuKlxyXG4vL1xyXG4vLyAgdXNlIDw9XHJcbiogICBBTFdBWVMgdXNlIDw9ICggJzwnIHdpdGggJz0nIGNoYXJhY3RlcikgZm9yIGFsbCBicmVha3BvaW50c1xyXG4qICAgd2hlbiBzZXR0aW5nIG1heC13aWR0aCwgZXg6IG1heC13aWR0aDogNzY3cHgsXHJcbipcclxuKiAgIHNvIG1heC13aWR0aDogMTQ0MHB4ICA9PSBtZWRpYSgnPD1kZXNrdG9wLWwnKVxyXG4qXHJcbiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKlxyXG4vLyAgdXNlID5cclxuKiAgIEFMV0FZUyB1c2Ugb25seSA+IGFzIHNpbmdsZSBjaGFyYWN0ZXIgZm9yIGFsbCBicmVha3BvaW50c1xyXG4qICAgd2hlbiBzZXR0aW5nIG1pbi13aWR0aCwgZXg6IG1pbi13aWR0aDogNzY4cHgsXHJcbipcclxuKiAgIHNvIG1pbi13aWR0aDogMTAyNXB4ICA9PSBtZWRpYSgnPmRlc2t0b3AnKVxyXG4qXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKlxyXG4qIyMgRVhBTVBMRTpcclxuKlxyXG4qICAgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpXHJcbiogICA9XHJcbiogICBtZWRpYSAoJz50YWJsZXQnKSwgKCc8PWRlc2t0b3AnKVxyXG4qXHJcbi8vXHJcblxyXG4gKi9cclxuIiwiLypcclxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxyXG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxyXG4gKlxyXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxyXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcclxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxyXG4gKi9cclxuXHJcbi5zci1vbmx5LFxyXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIG1hcmdpbjogLTFweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDtcclxuICAgIC8qIDEgKi9cclxufVxyXG5cclxuXHJcbi8qXHJcbiAqIEV4dGVuZHMgdGhlIC5zci1vbmx5IGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50XHJcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxyXG4gKiBodHRwczovL3d3dy5kcnVwYWwub3JnL25vZGUvODk3NjM4XHJcbiAqL1xyXG5cclxuLnNyLW9ubHkuZm9jdXNhYmxlOmFjdGl2ZSxcclxuLnNyLW9ubHkuZm9jdXNhYmxlOmZvY3VzIHtcclxuICAgIGNsaXA6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG59XHJcblxyXG4uYWxpZ24tY2VudGVyLFxyXG4udGV4dC1jZW50ZXIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYSggJzw9dGFibGV0JyApIHtcclxuICAgIC5hbGlnbi1zbS1jZW50ZXIsXHJcbiAgICAudGV4dC1zbS1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4udGV4dC1yaWdodCxcclxuLmFsaWduLXJpZ2h0IHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYSggJzw9dGFibGV0JyApIHtcclxuICAgIC5hbGlnbi1zbS1yaWdodCxcclxuICAgIC50ZXh0LXNtLXJpZ2h0IHtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4udGV4dC1sZWZ0LFxyXG4uYWxpZ24tbGVmdCB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYSggJzw9dGFibGV0JyApIHtcclxuICAgIC5hbGlnbi1zbS1sZWZ0LFxyXG4gICAgLnRleHQtc20tbGVmdCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4udGV4dC11cHBlcmNhc2Uge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnRleHQtY2FwaXRhbGl6ZSB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxufVxyXG5cclxuLm92ZXJmbG93LWhpZGRlbiB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uaW1nLWludmVydCB7XHJcbiAgICBmaWx0ZXI6IGludmVydCgxKTtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxuLnBiLTEwIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5bZGF0YS1vYmplY3QtZml0PVwiY292ZXJcIl0ge1xyXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbltkYXRhLW9iamVjdC1maXQ9XCJjb250YWluXCJdIHtcclxuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbn1cclxuXHJcbi4tbm9iZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi4tbm93cmFwIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcblxyXG4vKiBCYWNrZ3JvdW5kICovXHJcblxyXG4uYmctYXV0byB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XHJcbn1cclxuXHJcbi5iZy1jb3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG59XHJcblxyXG4uYmctY29udGFpbiB7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbn1cclxuXHJcbi5iZy1maXhlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG59XHJcblxyXG4uYmctdHJhbnNwYXJlbnQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5iZy1ib3R0b20ge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tO1xyXG59XHJcblxyXG4uYmctY2VudGVyIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxufVxyXG5cclxuLmJnLWxlZnQge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcclxufVxyXG5cclxuLmJnLWxlZnQtYm90dG9tIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xyXG59XHJcblxyXG4uYmctbGVmdC10b3Age1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XHJcbn1cclxuXHJcbi5iZy1yaWdodCB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodDtcclxufVxyXG5cclxuLmJnLXJpZ2h0LWJvdHRvbSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XHJcbn1cclxuXHJcbi5iZy1yaWdodC10b3Age1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO1xyXG59XHJcblxyXG4uYmctdG9wIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcDtcclxufVxyXG5cclxuLmJnLXJlcGVhdCB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xyXG59XHJcblxyXG4uYmctbm8tcmVwZWF0IHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi5iZy1yZXBlYXQteCB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbi5iZy1yZXBlYXQteSB7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XHJcbn1cclxuXHJcbi5iZy1yZXBlYXQtcm91bmQge1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJvdW5kO1xyXG59XHJcblxyXG4uYmctcmVwZWF0LXNwYWNlIHtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBzcGFjZTtcclxufVxyXG5cclxuXHJcbi8qIEZsZXggKi9cclxuXHJcbi5kLWZsZXgge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmZsZXgtcm93IHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5mbGV4LXJvdy1yZXZlcnNlIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxufVxyXG5cclxuLmZsZXgtY29sIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5mbGV4LWNvbC1yZXZlcnNlIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxufVxyXG5cclxuLmZsZXgtd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi5mbGV4LXdyYXAtcmV2ZXJzZSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcclxufVxyXG5cclxuLmZsZXgtbm93cmFwIHtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG59XHJcblxyXG4uaXRlbXMtc3RhcnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5pdGVtcy1lbmQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uaXRlbXMtY2VudGVyIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5pdGVtcy1iYXNlbGluZSB7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XHJcbn1cclxuXHJcbi5pdGVtcy1zdHJldGNoIHtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG59XHJcblxyXG4uY29udGVudC1jZW50ZXIge1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uY29udGVudC1zdGFydCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uY29udGVudC1lbmQge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XHJcbn1cclxuXHJcbi5jb250ZW50LWJldHdlZW4ge1xyXG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLmNvbnRlbnQtYXJvdW5kIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxufVxyXG5cclxuLmNvbnRlbnQtZXZlbmx5IHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcclxufVxyXG5cclxuLnNlbGYtYXV0byB7XHJcbiAgICBhbGlnbi1zZWxmOiBhdXRvO1xyXG59XHJcblxyXG4uc2VsZi1zdGFydCB7XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xyXG59XHJcblxyXG4uc2VsZi1lbmQge1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XHJcbn1cclxuXHJcbi5zZWxmLWNlbnRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zZWxmLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcclxufVxyXG5cclxuLmp1c3RpZnktaXRlbXMtYXV0byB7XHJcbiAgICBqdXN0aWZ5LWl0ZW1zOiBhdXRvO1xyXG59XHJcblxyXG4uanVzdGlmeS1pdGVtcy1zdGFydCB7XHJcbiAgICBqdXN0aWZ5LWl0ZW1zOiBzdGFydDtcclxufVxyXG5cclxuLmp1c3RpZnktaXRlbXMtZW5kIHtcclxuICAgIGp1c3RpZnktaXRlbXM6IGVuZDtcclxufVxyXG5cclxuLmp1c3RpZnktaXRlbXMtY2VudGVyIHtcclxuICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmp1c3RpZnktaXRlbXMtc3RyZXRjaCB7XHJcbiAgICBqdXN0aWZ5LWl0ZW1zOiBzdHJldGNoO1xyXG59XHJcblxyXG4uanVzdGlmeS1zdGFydCxcclxuLmZsZXgtbGVmdCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LWVuZCxcclxuLmZsZXgtcmlnaHQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLmp1c3RpZnktY2VudGVyLFxyXG4uZmxleC1jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LWJldHdlZW4ge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4uanVzdGlmeS1hcm91bmQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LWV2ZW5seSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcclxufVxyXG5cclxuLmp1c3RpZnktc2VsZi1hdXRvIHtcclxuICAgIGp1c3RpZnktc2VsZjogYXV0bztcclxufVxyXG5cclxuLmp1c3RpZnktc2VsZi1zdGFydCB7XHJcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xyXG59XHJcblxyXG4uanVzdGlmeS1zZWxmLWVuZCB7XHJcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcclxufVxyXG5cclxuLmp1c3RpZnktc2VsZi1jZW50ZXIge1xyXG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LXNlbGYtc3RyZXRjaCB7XHJcbiAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7XHJcbn1cclxuXHJcbi5mbGV4LTEge1xyXG4gICAgZmxleDogMSAxIDAlO1xyXG59XHJcblxyXG4uZmxleC1hdXRvIHtcclxuICAgIGZsZXg6IDEgMSBhdXRvO1xyXG59XHJcblxyXG4uZmxleC1pbml0aWFsIHtcclxuICAgIGZsZXg6IDAgMSBhdXRvO1xyXG59XHJcblxyXG4uZmxleC1ub25lIHtcclxuICAgIGZsZXg6IG5vbmU7XHJcbn1cclxuXHJcbi5mbGV4LWdyb3ctMCB7XHJcbiAgICBmbGV4LWdyb3c6IDA7XHJcbn1cclxuXHJcbi5mbGV4LWdyb3cge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG59XHJcblxyXG4uZmxleC1zaHJpbmstMCB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLmZsZXgtc2hyaW5rIHtcclxuICAgIGZsZXgtc2hyaW5rOiAxO1xyXG59XHJcblxyXG4ub3JkZXItMiB7XHJcbiAgICBvcmRlcjogMjtcclxufVxyXG5cclxuLm9yZGVyLTMge1xyXG4gICAgb3JkZXI6IDM7XHJcbn1cclxuXHJcbi5vcmRlci1maXJzdCB7XHJcbiAgICBvcmRlcjogLTk5OTk7XHJcbn1cclxuXHJcbi5vcmRlci1sYXN0IHtcclxuICAgIG9yZGVyOiA5OTk5O1xyXG59XHJcblxyXG4ub3JkZXItbm9uZSB7XHJcbiAgICBvcmRlcjogMDtcclxufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG4gICdwaG9uZSc6IDMyMHB4LFxyXG4gICd0YWJsZXQnOiA3NjhweCxcclxuICAnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcclxuICAncHJpbnQnOiAncHJpbnQnLFxyXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcbiAgJ3B4JzogMSxcclxuICAnZW0nOiAwLjAxLFxyXG4gICdyZW0nOiAwLjEsXHJcbiAgJyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiAkbWVzc2FnZTtcclxuICAgICRfOiBub29wKCk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuICB9XHJcblxyXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcbiAgICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xyXG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuICB9XHJcblxyXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcbiAgfVxyXG5cclxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcbiAgICBAcmV0dXJuICgpO1xyXG4gIH1cclxuXHJcbiAgJHJlc3VsdDogKCk7XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG4gIH1cclxuXHJcbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGlnaXRzOiAwO1xyXG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG4gICAgICAkZGlnaXRzOiAxO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcbiAgQGNvbnRlbnQ7XHJcblxyXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxyXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFNDU1MgdmFyaWFibGVzXHJcbiAqIE5PVEU6IFRoaXMgaXMgcGFydCBvZiBvbGQgY29kZS4uLnRoaXMgc2hvdWxkIGJlIHJlZmFjdG9yZWRcclxuICovXHJcblxyXG4vLyBiYXNlIGNvbG9yIHNjaGVtZVxyXG4kYm9keS1iYWNrZ3JvdW5kOiAjZmZmO1xyXG4kY29sb3JfYm9keTogIzQzNDU0YjtcclxuJGNvbG9yX2xpbmtzOiAjMmMyZDMzO1xyXG4kY29sb3JfYm9yZGVyOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG4kY29sb3Jfd29vY29tbWVyY2U6ICM5NjU4OGE7XHJcbiRlcnJvcjogI2UyNDAxYztcclxuJHN1Y2Nlc3M6ICMwZjgzNGQ7XHJcbiRpbmZvOiAjM2Q5Y2QyO1xyXG5cclxuLy8gbGF5b3V0IHNpemVzXHJcbiRkZXNrdG9wOiA3NjhweDtcclxuJGhhbmRoZWxkOiA1NjhweDtcclxuJGNvbnRhaW5lci13aWR0aDogbXMoMTgpO1xyXG5cclxuLy8gc3VzeVxyXG4kc3VzeTogKFxyXG4gIGNvbHVtbnM6IDEyLFxyXG4gIGd1dHRlcnM6IDEsXHJcbiAgbWF0aDogZmx1aWQsXHJcbiAgb3V0cHV0OiBmbG9hdCxcclxuICBndXR0ZXItcG9zaXRpb246IGFmdGVyLFxyXG4gIHVzZS1jdXN0b206IChcclxuICAgIGJveC1zaXppbmc6IGZhbHNlLFxyXG4gICksXHJcbik7XHJcbiIsIi8qKlxyXG4gKiBXb29jb21tZXJjZTogTWl4aW5zXHJcbiAqL1xyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAmOjpiZWZvcmUsXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc2NyZWVuLXJlYWRlci10ZXh0KCkge1xyXG4gIGJvcmRlcjogMDtcclxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XHJcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSk7XHJcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xyXG4gIGhlaWdodDogMXB4O1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcclxuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWl4aW4gdW5kZXJsaW5lZC1saW5rKCkge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUmVtb3ZlIHVuZGVybGluZSBpZiBlbGVtZW50IGhhcyBhIGJ1dHRvbiBjbGFzcy5cclxuQG1peGluIHJlbW92ZS1idXR0b24tdW5kZXJsaW5lKCkge1xyXG4gICYuYnV0dG9uLFxyXG4gICYuY29tcG9uZW50cy1idXR0b246bm90KC5pcy1saW5rKSxcclxuICAmLndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uKCkge1xyXG4gIGJvcmRlcjogMDtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9ib2R5O1xyXG4gIGJvcmRlci1jb2xvcjogJGNvbG9yX2JvZHk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgY3Vyc29yOiBwb2ludGVyOyAvKiBJbXByb3ZlcyB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGUgJ2lucHV0JyBhbmQgb3RoZXJzICovXHJcbiAgcGFkZGluZzogbXMoLTIpIG1zKDIpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoIzAwMCwgMC4zKTtcclxufVxyXG5cclxuQG1peGluIHdyYXAtYnJlYWstd29yZCB7XHJcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL292ZXJmbG93LXdyYXBcclxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1Mvd29yZC1icmVha1xyXG4gIC8vIFRoaXMgaXMgdGhlIGN1cnJlbnQgc3RhbmRhcmQsIHdvcmtzIGluIG1vc3QgYnJvd3NlcnMuXHJcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XHJcbiAgLy8gU2FmYXJpIHN1cHBvcnRzIHdvcmQtYnJlYWsuXHJcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcclxuICAvLyBXZSBhbHNvIG5lZWQgd29yZC13cmFwIGFuZCBmb3IgSUUuXHJcbiAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxufVxyXG5cclxuQG1peGluIG1hc2staW1hZ2UoJGltYWdlKSB7XHJcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoJGltYWdlKTtcclxuICBtYXNrLWltYWdlOiB1cmwoJGltYWdlKTtcclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IEtleWZyYW1lcy9hbmltYXRpb25zXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyBzbGlkZUluRG93biB7XHJcbiAgZnJvbSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBzbGlkZU91dFVwIHtcclxuICBmcm9tIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcm90YXRlMzYwIHtcclxuICAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTM2MGRlZyk7XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29jb21tZXJjZTogR2VuZXJhbCBzZXR0aW5nc1xyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAgIC8vIEdlbmVyYWwgc2V0dGluZ3NcclxuICAgIC0td2MtdG9wLW9mZnNldDogMTMwcHg7IC8vIFRPRE86IEZpbmQgYmV0dGVyIHNvbHV0aW9uIGZvciB0aGlzP1xyXG4gICAgLS13Yy12ZXJ0aWNhbC1zcGFjZTogNXZtaW47XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3AtbVwiKSB7XHJcbiAgICAgICAgLS13Yy12ZXJ0aWNhbC1zcGFjZTogM3ZtaW47XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgIC0td2MtdG9wLW9mZnNldDogMDtcclxuICAgIH1cclxufVxyXG5cclxuYm9keSB7XHJcbiAgICAmLndvb2NvbW1lcmNlLFxyXG4gICAgJi53b29jb21tZXJjZS1wYWdlIHtcclxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIE1haW4gd3JhcHBlclxyXG5tYWluLnNpdGUtY29udGVudCB7XHJcbiAgICAvL21hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgLy9tYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAvL21heC13aWR0aDogY2xhbXAoMTAyNHB4LCA4My41dncsIGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyB2YXIoLS1wYWdlLWd1dHRlciwgMjBweCkgKiAyKSk7XHJcbiAgICAvL3dpZHRoOiAxMDAlO1xyXG5cclxuICAgIC5hcmNoaXZlICYge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUGFnZSB0aXRsZVxyXG4gICAgLmwtaGVhZGluZyB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tcGFnZS1ndXR0ZXIpICogLTEpO1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1wYWdlLWd1dHRlcikgKiAtMSk7XHJcblxyXG4gICAgICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1oMS1mb250LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWgxLWZvbnQtd2VpZ2h0KTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMS1saW5lLWhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbWcge1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIC5zaXRlLWhlYWRlci1jYXJ0IHtcclxuLy8gICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbi8vICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vICAgcGFkZGluZzogMDtcclxuLy8gICBtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuLy8gICAuY2FydC1jb250ZW50cyB7XHJcbi8vICAgICBkaXNwbGF5OiBub25lO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgLndpZGdldF9zaG9wcGluZ19jYXJ0IHtcclxuLy8gICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4vLyAgICAgLnByb2R1Y3RfbGlzdF93aWRnZXQge1xyXG4vLyAgICAgICBpbWcge1xyXG4vLyAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9XHJcblxyXG4vLyAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8gICAgIC5zaXRlLWhlYWRlci1jYXJ0IHtcclxuLy8gICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuLy8gICAgICAgLmNhcnQtY29udGVudHMge1xyXG4vLyAgICAgICAgIHBhZGRpbmc6IG1zKDMpIDA7XHJcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4vLyAgICAgICAgIGhlaWdodDogYXV0bztcclxuLy8gICAgICAgICB3aWR0aDogYXV0bztcclxuLy8gICAgICAgICB0ZXh0LWluZGVudDogMDtcclxuXHJcbi8vICAgICAgICAgLmFtb3VudCB7XHJcbi8vICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzI3ZW07XHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICAuY291bnQge1xyXG4vLyAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuLy8gICAgICAgICAgIG9wYWNpdHk6IDAuNTtcclxuLy8gICAgICAgICB9XHJcblxyXG4vLyAgICAgICAgIHNwYW4ge1xyXG4vLyAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG5cclxuLy8gICAgICAgLndpZGdldF9zaG9wcGluZ19jYXJ0IHtcclxuLy8gICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICAgICAgdG9wOiAxMDAlO1xyXG4vLyAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgICAgICAgIHotaW5kZXg6IDk5OTk5OTtcclxuLy8gICAgICAgICBmb250LXNpemU6IG1zKC0xKTtcclxuLy8gICAgICAgICBsZWZ0OiAtOTk5ZW07XHJcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4vLyAgICAgICAgICYuc3ViLW1lbnUtLWlzLXRvdWNoLWRldmljZSB7XHJcbi8vICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4vLyAgICAgICAgICAgbGVmdDogMDtcclxuLy8gICAgICAgICB9XHJcblxyXG4vLyAgICAgICAgIGgyLndpZGdldHRpdGxlIHtcclxuLy8gICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICAucHJvZHVjdF9saXN0X3dpZGdldCB7XHJcbi8vICAgICAgICAgICBoZWlnaHQ6IDA7XHJcblxyXG4vLyAgICAgICAgICAgbGkge1xyXG4vLyAgICAgICAgICAgICBhLnJlbW92ZSB7XHJcbi8vICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICAgICAgICAgICAgIHRvcDogYXV0bztcclxuXHJcbi8vICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuLy8gICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbi8vICAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICB9XHJcbi8vICAgICAgICAgfVxyXG4vLyAgICAgICB9XHJcblxyXG4vLyAgICAgICAmOmhvdmVyLFxyXG4vLyAgICAgICAmLmZvY3VzIHtcclxuLy8gICAgICAgICAud2lkZ2V0X3Nob3BwaW5nX2NhcnQge1xyXG4vLyAgICAgICAgICAgbGVmdDogMDtcclxuLy8gICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuLy8gICAgICAgICAgIC5wcm9kdWN0X2xpc3Rfd2lkZ2V0IHtcclxuLy8gICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuLy8gLnNpdGUtc2VhcmNoIHtcclxuLy8gICBjbGVhcjogYm90aDtcclxuLy8gICBkaXNwbGF5OiBub25lO1xyXG5cclxuLy8gICAud2lkZ2V0X3Byb2R1Y3Rfc2VhcmNoIHtcclxuLy8gICAgIGlucHV0W3R5cGU9J3RleHQnXSxcclxuLy8gICAgIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcclxuLy8gICAgICAgcGFkZGluZzogbXMoMSkgbXMoMik7XHJcbi8vICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4vLyAgICAgfVxyXG5cclxuLy8gICAgIGZvcm0ge1xyXG4vLyAgICAgICAmOjpiZWZvcmUge1xyXG4vLyAgICAgICAgIHRvcDogMS4xNWVtO1xyXG4vLyAgICAgICAgIGxlZnQ6IDEuMTVlbTtcclxuLy8gICAgICAgfVxyXG4vL1xyXG4vLyAgIH1cclxuLy8gICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbi8vICAgICBmb3JtIHtcclxuLy8gICAgICAgbWFyZ2luOiAwO1xyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuLy8gfVxyXG4vLyAuc2l0ZS1oZWFkZXJfX3dpZGdldCB7XHJcbi8vICAgLndvb2NvbW1lcmNlLXByb2R1Y3Qtc2VhcmNoIHtcclxuLy8gICAgIGRpc3BsYXk6IGZsZXg7XHJcbi8vICAgICBidXR0b24ge1xyXG4vLyAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuLy8gICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taGVhZGVyLWxpbmstY29sb3IpO1xyXG4vLyAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xyXG4vLyAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogOHB4O1xyXG4vLyAgICAgICBib3JkZXItbGVmdDogMDtcclxuLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXByaW1hcnktY29sb3IpO1xyXG4vLyAgICAgICBjb2xvcjogdmFyKC0tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO1xyXG4vLyAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuLy8gICAgICAgJjpob3ZlciB7XHJcbi8vICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnRuLXNlY29uZGFyeS1jb2xvcik7XHJcbi8vICAgICAgICAgY29sb3I6IHZhcigtLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWFsdCk7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi8vIC8qKlxyXG4vLyAgKiBSaWdodCB0byBsZWZ0IHN0eWxlc1xyXG4vLyAgKi9cclxuXHJcbi8vIC8qIXJ0bDplbmQ6aWdub3JlKi9cclxuXHJcbi8vIC5kZW1vX3N0b3JlIHtcclxuLy8gICBwb3NpdGlvbjogZml4ZWQ7XHJcbi8vICAgbGVmdDogMDtcclxuLy8gICBib3R0b206IDY5cHg7XHJcbi8vICAgcmlnaHQ6IDA7XHJcbi8vICAgbWFyZ2luOiAwO1xyXG4vLyAgIHBhZGRpbmc6IDFlbSBtcygyKTtcclxuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mbztcclxuLy8gICBjb2xvcjogI2ZmZjtcclxuLy8gICB6LWluZGV4OiA5OTk4O1xyXG5cclxuLy8gICBhIHtcclxuLy8gICAgIGNvbG9yOiAjZmZmO1xyXG4vLyAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuLy8gICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuLy8gICAgICY6aG92ZXIge1xyXG4vLyAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgJi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2VfX2Rpc21pc3MtbGluayB7XHJcbi8vICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuLy8gLndjLWl0ZW0tbWV0YSB7XHJcbi8vICAgZm9udC1zaXplOiBtcygtMSk7XHJcbi8vICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbi8vICAgbGkge1xyXG4vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcblxyXG4vLyAgICAgc3Ryb25nLFxyXG4vLyAgICAgcCB7XHJcbi8vICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi8vIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAzMjBweCkge1xyXG4vLyAgIC5zZi1pbnB1dC1mb2N1c2VkIHtcclxuLy8gICAgIC53b29jb21tZXJjZS1zdG9yZS1ub3RpY2Uge1xyXG4vLyAgICAgICBkaXNwbGF5OiBub25lO1xyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuLy8gfVxyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IEFKQVggTGF5ZXJlZCBOYXZcclxuICogVE9ETzogUmVmYWN0b3IgdGhpc1xyXG4gKi9cclxuXHJcbi53aWRnZXRfbGF5ZXJlZF9uYXYge1xyXG4gIHVsLmNvbG9ycyB7XHJcbiAgICBsaSB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYm94IHtcclxuICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4yMDJlbTtcclxuICAgICAgICBoZWlnaHQ6IG1zKDMpO1xyXG4gICAgICAgIHdpZHRoOiBtcygzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jaG9zZW4ge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgb3BhY2l0eTogMTtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwuY2hlY2tib3hlcyB7XHJcbiAgICBsaSB7XHJcbiAgICAgIGlucHV0IHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IG1zKC0yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwuc2l6ZXMge1xyXG4gICAgbGkge1xyXG4gICAgICBhIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2l6ZS1maWx0ZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgIGhlaWdodDogbXMoMyk7XHJcbiAgICAgICAgbWluLXdpZHRoOiBtcygzKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjE4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjAyZW07XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuY2hvc2VuIHtcclxuICAgICAgICAuc2l6ZS1maWx0ZXIge1xyXG4gICAgICAgICAgb3BhY2l0eTogMTtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwuY29sb3JzLFxyXG4gIHVsLmNoZWNrYm94ZXMsXHJcbiAgdWwuc2l6ZXMge1xyXG4gICAgbGkge1xyXG4gICAgICAmLmNob3NlbiB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnNob3ctY291bnQge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmNvdW50IHtcclxuICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjYxODtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IEhlYWRlclxyXG4gKi9cclxuXHJcbi5pcy1zdGlja3kgLnNpdGUtaGVhZGVyX190b3AgLnNpdGUtaGVhZGVyX19yb3cge1xyXG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XHJcbiAgb3ZlcmZsb3c6IGluaXRpYWw7XHJcbiAgLy9wYWRkaW5nOiAxNXB4IDI1cHg7XHJcbiAgLy9wYWRkaW5nOiB2YXIoLS1oZWFkZXItdmVydGljYWwtcGFkZGluZykgdmFyKC0tcGFnZS1ndXR0ZXIpO1xyXG59XHJcbiIsIi8qKlxyXG4gKiBTdHJpY3RseSBMYXlvdXQgU3R5bGVzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAtLXdjLXByb2R1Y3RzLXNpZGViYXItY29sOiAyNSU7XHJcbiAgICAtLXdjLXByb2R1Y3RzLXNpZGViYXItbWluLXdpZHRoOiAyNjBweDtcclxuICAgIC0td2MtcHJvZHVjdHMtZ2FwOiAzMHB4O1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcclxuICAgICAgICAtLXdjLXByb2R1Y3RzLXNpZGViYXItY29sOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBTaG9wIHBhZ2VcclxuLndvb2NvbW1lcmNlLWFyY2hpdmUtY29udGVudCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0cmFuc2l0aW9uOiBtYXgtd2lkdGggdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuICAgIG1heC13aWR0aDogY2FsYyh2YXIoLS1jb250ZW50LXdpZHRoKSArIHZhcigtLXBhZ2UtZ3V0dGVyLCAyMHB4KSAqIDIpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgICAmLi1oYXMtc2lkZWJhciB7XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLXNpZGViYXIge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgdmFyKC0td2MtcHJvZHVjdHMtc2lkZWJhci1jb2wpO1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiB2YXIoLS13Yy1wcm9kdWN0cy1zaWRlYmFyLW1pbi13aWR0aCk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS13Yy1wcm9kdWN0cy1nYXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLXNpZGViYXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLi1zaWRlYmFyLWxlZnQge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLi1zaWRlYmFyLXJpZ2h0IHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtbG9vcCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAuYy1ibG9jayB7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKlxyXG4gKiBPbGQgY29kZVxyXG4gKi9cclxuXHJcbi5hZG1pbi1iYXIge1xyXG4gICAgLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcclxuICAgICAgICAjd2NfY2hlY2tvdXRfYWRkX29ucyBsYWJlbCticiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XHJcbiAgICAgICAgLnN0b3JlZnJvbnQtc3RpY2t5LWFkZC10by1jYXJ0IHtcclxuICAgICAgICAgICAgJi0tc2xpZGVJbkRvd24ge1xyXG4gICAgICAgICAgICAgICAgdG9wOiAzMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UtYWN0aXZlIHtcclxuICAgIC5zaXRlLWJyYW5kaW5nIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLFxyXG4ud29vY29tbWVyY2UtcGFnZSB7XHJcbiAgICAud29vY29tbWVyY2UtcHJvZHVjdHMtaGVhZGVyIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgLy9tYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICAgICAgLnNob3Bfc3ViaGVhZGVyIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10aXRsZXMtY29sb3IpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0taGVhZGVyLWhpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1wYWdlIHtcclxuICAgICYud29vY29tbWVyY2UtY2FydCAuZW50cnktaGVhZGVyLFxyXG4gICAgJi53b29jb21tZXJjZS1jaGVja291dCAuZW50cnktaGVhZGVyLFxyXG4gICAgJi53b29jb21tZXJjZS1hY2NvdW50IC5lbnRyeS1oZWFkZXIsXHJcbiAgICAud29vY29tbWVyY2UtcHJvZHVjdHMtaGVhZGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAucHJvZHVjdC1jdGEge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDU2OHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgLnByb2R1Y3QtY3RhX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0taDEtZm9udC1zaXplKTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0taDItbWFyZ2luLWJvdHRvbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9kdWN0LWN0YV9fc3VidGl0bGUge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWgzLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWgyLW1hcmdpbi1ib3R0b20pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gICAgICAgIGgxOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAudXAtc2VsbHMsXHJcbiAgICAgICAgLnJlbGF0ZWQucHJvZHVjdHMge1xyXG4gICAgICAgICAgICA+aDI6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBTaWRlYmFyXHJcbiAqL1xyXG5cclxuOnJvb3Qge1xyXG4gIC0td2Mtc2lkZWJhci1zaGFkb3c6IDAgM3B4IDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgLS13Yy1zaWRlYmFyLW1vYmlsZS13aWR0aDogMzQwcHg7XHJcbiAgLS13Yy1zaWRlYmFyLW1vYmlsZS1vdmVybGF5LWJnOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbn1cclxuXHJcbi8vIFNpZGViYXIgZmlsdGVycyBhbmQgY2F0ZWdvcmllc1xyXG4ud29vY29tbWVyY2Utc2lkZWJhciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGxlZnQ6IGNhbGModmFyKC0td2MtcHJvZHVjdHMtc2lkZWJhci1jb2wpICogLTEpO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjAxcyBlYXNlO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XHJcbiAgICAmLmlzLXZpc2libGUge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuMnMgZWFzZSwgdmlzaWJpbGl0eSAwLjFzIGVhc2UgMC4wMXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcbiAgICB6LWluZGV4OiAxMDAwMDA7IC8vIHdwYWRtaW4gYmFyIGlzIDk5OTk5XHJcblxyXG4gICAgLy8gRXh0ZW5kZWQvdmlzaWJsZVxyXG4gICAgJi5pcy12aXNpYmxlLW9uLW1vYmlsZSB7XHJcbiAgICAgIGxlZnQ6IDA7XHJcblxyXG4gICAgICAjY2xvc2UtZmlsdGVyLW1vYmlsZS1vdmVybGF5IHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi13aWRnZXRzIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogdmFyKC0td2Mtc2lkZWJhci1tb2JpbGUtd2lkdGgpO1xyXG4gICAgICBtYXgtd2lkdGg6IDkwJTtcclxuICAgICAgcGFkZGluZzogMjBweDsgLy8gVE9ET1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyAvLyBUT0RPXHJcbiAgICAgIHotaW5kZXg6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQmFja2dyb3VuZCBvdmVybGF5XHJcbiAgICAjY2xvc2UtZmlsdGVyLW1vYmlsZS1vdmVybGF5IHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13Yy1zaWRlYmFyLW1vYmlsZS1vdmVybGF5LWJnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEZpbHRlciBidXR0b25cclxuQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gIC53b29jb21tZXJjZS1zaWRlYmFyLXRvZ2dsZSAuZmlsdGVyLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjY2xvc2UtZmlsdGVyLW1vYmlsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XHJcbiAgLy8gSGlkZSBjbG9zZSBmaWx0ZXIgYnV0dG9uLCBzaW5jZSBzaG93IGZpbHRlciBidXRvdG4gd2lsbCBhbHdheXMgYmUgdmlzaWJsZVxyXG4gICNjbG9zZS1maWx0ZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICNjbG9zZS1maWx0ZXItbW9iaWxlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFdpZGdldHNcclxuICogVE9ETzogUmVmYWN0b3IgdGhpc1xyXG4gKi9cclxuXHJcbi53aWRnZXQge1xyXG4gIHVsLnByb2R1Y3RzIHtcclxuICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICBhIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53aWRnZXRfcHJvZHVjdHMge1xyXG4gIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4ud2lkZ2V0X3Nob3BwaW5nX2NhcnQge1xyXG4gIC5wcm9kdWN0X2xpc3Rfd2lkZ2V0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgYS5yZW1vdmUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDFlbTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHAudG90YWwsXHJcbiAgcC5idXR0b25zIHtcclxuICAgIHBhZGRpbmc6IDFlbSAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgcC50b3RhbCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBhIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKC0yKTtcclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zaXRlLWhlYWRlciB7XHJcbiAgLndpZGdldF9zaG9wcGluZ19jYXJ0IHtcclxuICAgIHAudG90YWwsXHJcbiAgICBwLmJ1dHRvbnMsXHJcbiAgICBsaSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogbXMoMik7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1zKDIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFByb2R1Y3Qgc2FsZSBiYWRnZVxyXG4gKiBOb3RlIHRoYXQgdGhpcyBuZWVkcyB0byBiZSB3cmFwcGVkIGludG8gcmVsYXRpdmUgcGFyZW50XHJcbiAqL1xyXG5cclxuOnJvb3Qge1xyXG4gIC0td2MtYmFkZ2Utb2Zmc2V0OiAxMHB4O1xyXG4gIC0td2MtYmFkZ2UtcGFkZGluZzogMTBweDtcclxuICAtLXdjLWJhZGdlLWZvbnQtc2l6ZTogMXJlbTtcclxuICAtLXdjLWJhZGdlLWNvbG9yOiAjZmZmO1xyXG4gIC0td2MtYmFkZ2UtYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gIC0td2MtYmFkZ2UtYm9yZGVyOiBub25lO1xyXG4gIC0td2MtYmFkZ2UtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAtLXdjLWJhZGdlLWJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAtLXdjLWJhZGdlLWFzcGVjdC1yYXRpbzogMS8xO1xyXG59XHJcblxyXG4ud2MtYmxvY2stZ3JpZF9fcHJvZHVjdC1vbnNhbGUsXHJcbi5vbnNhbGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiB2YXIoLS13Yy1iYWRnZS1vZmZzZXQpO1xyXG4gIHJpZ2h0OiB2YXIoLS13Yy1iYWRnZS1vZmZzZXQpOyAvLyBUT0RPOiBBZGQgbGVmdC9yaWdodCBwb3NpdGlvbiBvcHRpb25cclxuICBwYWRkaW5nOiB2YXIoLS13Yy1iYWRnZS1wYWRkaW5nKTtcclxuICBmb250LXNpemU6IHZhcigtLXdjLWJhZGdlLWZvbnQtc2l6ZSk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGNvbG9yOiB2YXIoLS13Yy1iYWRnZS1jb2xvcik7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0td2MtYmFkZ2UtYmFja2dyb3VuZCk7XHJcbiAgYm9yZGVyOiB2YXIoLS13Yy1iYWRnZS1ib3JkZXIpO1xyXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2MtYmFkZ2UtYm9yZGVyLWNvbG9yKTtcclxuICBib3JkZXItcmFkaXVzOiB2YXIoLS13Yy1iYWRnZS1ib3JkZXItcmFkaXVzKTtcclxuICBhc3BlY3QtcmF0aW86IHZhcigtLXdjLWJhZGdlLWFzcGVjdC1yYXRpbyk7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IEJvb2tpbmdzXHJcbiAqL1xyXG5cclxuI3djLWJvb2tpbmdzLWJvb2tpbmctZm9ybSB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcblxyXG4gIC53Yy1ib29raW5ncy1ib29raW5nLWNvc3Qge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gIH1cclxuXHJcbiAgLndjLWJvb2tpbmdzLWRhdGUtcGlja2VyLWRhdGUtZmllbGRzIHtcclxuICAgIGlucHV0IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbCB7XHJcbiAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudWktd2lkZ2V0IHtcclxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgLndjLWJvb2tpbmdzLWRhdGUtcGlja2VyIHtcclxuICAgIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAudWktd2lkZ2V0LWNvbnRlbnQge1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAudWktZGF0ZXBpY2tlciB7XHJcbiAgICAgIHRhYmxlIHtcclxuICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGgge1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGQge1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuXHJcbiAgICAgICAgJi5ib29rYWJsZSB7XHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnVpLWRhdGVwaWNrZXItdG9kYXkge1xyXG4gICAgICAgICAgYSxcclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggcmdiYSgjMDAwLCAwLjIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5mdWxseV9ib29rZWQge1xyXG4gICAgICAgICAgYSxcclxuICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5ibG9jay1waWNrZXIge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDAuMjM2ZW0gbXMoLTMpO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtdHlwZS1ib29raW5nIHtcclxuICBmb3JtLmNhcnQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy1yaWdodDogMDtcclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gIHRhYmxlLm15X2FjY291bnRfYm9va2luZ3Mge1xyXG4gICAgZm9udC1zaXplOiBtcygtMSk7XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogQnJhbmRzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICogVE9ETzogRG8gd2UgbmVlZCBwbHVnaW4gZm9yIHRoaXM/XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEhlYWRlciByZWdpb25cclxuICovXHJcbi5oZWFkZXItd2lkZ2V0LXJlZ2lvbiB7XHJcbiAgLndpZGdldF9icmFuZF90aHVtYm5haWxzIHtcclxuICAgIHVsLmJyYW5kLXRodW1ibmFpbHMge1xyXG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgbWF4LWhlaWdodDogMTZweDtcclxuICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogV29vQ29tbWVyY2UgQnJhbmQgTGF5ZXJlZCBOYXZcclxuICovXHJcbi53aWRnZXRfYnJhbmRfbmF2IHtcclxuICB1bCB7XHJcbiAgICBsaSB7XHJcbiAgICAgIC5jb3VudCB7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogV29vQ29tbWVyY2UgQnJhbmQgQXJjaGl2ZVxyXG4gKi9cclxuLnRheC1wcm9kdWN0X2JyYW5kIHtcclxuICAud29vY29tbWVyY2UtcHJvZHVjdHMtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWFyZ2luOiAwIDAgbXMoNCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgLmJyYW5kLXRodW1ibmFpbCB7XHJcbiAgICAgIG1hcmdpbjogMCAwIG1zKDEpO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgbWF4LWhlaWdodDogbXMoNCk7XHJcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgb3JkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3RzLWhlYWRlcl9fdGl0bGUsXHJcbiAgICAudGVybS1kZXNjcmlwdGlvbiB7XHJcbiAgICAgIG9yZGVyOiAyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZGl2I2JyYW5kc19hX3oge1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG5cclxuICB1bC5icmFuZHNfaW5kZXgge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgIGxpIHtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luOiAwIG1zKC01KSBtcygtNikgMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHJcbiAgICAgIGEsXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBwYWRkaW5nOiBtcygtNCk7XHJcbiAgICAgICAgbWluLXdpZHRoOiBtcygzKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgICBjb2xvcjogJGNvbG9yX2JvZHk7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIG9wYWNpdHk6IDAuMztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB9XHJcblxyXG4gIGEudG9wIHtcclxuICAgIHBhZGRpbmc6IG1zKC0yKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICBjb2xvcjogJGNvbG9yX2JvZHk7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICB9XHJcblxyXG4gIHVsLmJyYW5kcyB7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIG1hcmdpbjogMCAwIG1zKC00KTtcclxuICAgICAgcGFkZGluZzogMCAwIG1zKC00KTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogV29vQ29tbWVyY2UgQnJhbmQgc2luZ2xlIHByb2R1Y3RcclxuICovXHJcblxyXG5AaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICBkaXYjYnJhbmRzX2FfeiB7XHJcbiAgICB1bC5icmFuZHNfaW5kZXgge1xyXG4gICAgICBAaW5jbHVkZSBzcGFuKDMgb2YgMTIpO1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xyXG4gICAgfVxyXG5cclxuICAgIGgzIHtcclxuICAgICAgQGluY2x1ZGUgc3BhbihsYXN0IDkgb2YgMTIpO1xyXG4gICAgICBjbGVhcjogcmlnaHQ7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhLnRvcCB7XHJcbiAgICAgIGNsZWFyOiByaWdodDtcclxuICAgIH1cclxuXHJcbiAgICB1bC5icmFuZHMge1xyXG4gICAgICBAaW5jbHVkZSBzcGFuKGxhc3QgOSBvZiAxMik7XHJcbiAgICAgIGNsZWFyOiByaWdodDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRGVmYXVsdCBTZXR0aW5nc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFBSSVZBVEU6IFRoZSBiYXNpYyBzZXR0aW5nc1xyXG4kc3VzeS1kZWZhdWx0czogKCBjb2x1bW5zOiA0LCBndXR0ZXJzOiAuMjUsICk7XHJcbiRzdXN5OiAoIGNvbHVtbnM6IDEyLCBndXR0ZXJzOiAxLCBtYXRoOiBmbHVpZCwgb3V0cHV0OiBmbG9hdCwgZ3V0dGVyLXBvc2l0aW9uOiBhZnRlciwgdXNlLWN1c3RvbTogKCBib3gtc2l6aW5nOiBmYWxzZSkpO1xyXG4vLyBTdXN5IERlZmF1bHRzXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuLy8gUFJJVkFURTogQWRkIGRlZmF1bHRzIHRvIFN1c3lcclxuQG1peGluIHN1c3ktZGVmYXVsdHMoICRkZWZhdWx0cykge1xyXG4gICAgJHN1c3ktZGVmYXVsdHM6IG1hcC1tZXJnZSgkc3VzeS1kZWZhdWx0cywgJGRlZmF1bHRzKSAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLyBTdXN5IEVuZCBEZWZhdWx0c1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAtIFBSSVZBVEVcclxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoIGxhc3QtZmxvdzogdG8sICkpO1xyXG4vLyBWYWxpZCBLZXl3b3JkIFZhbHVlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAtIFBSSVZBVEU6IERPTlQnVCBUT1VDSFxyXG4kc3VzeS1rZXl3b3JkczogKCBjb250YWluZXI6IGF1dG8sIG1hdGg6IHN0YXRpYyBmbHVpZCwgb3V0cHV0OiBpc29sYXRlIGZsb2F0LCBjb250YWluZXItcG9zaXRpb246IGxlZnQgY2VudGVyIHJpZ2h0LCBmbG93OiBsdHIgcnRsLCBndXR0ZXItcG9zaXRpb246IGJlZm9yZSBhZnRlciBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYywgYm94LXNpemluZzogYm9yZGVyLWJveCBjb250ZW50LWJveCwgc3BhbjogZnVsbCwgZWRnZTogZmlyc3QgYWxwaGEgbGFzdCBvbWVnYSBmdWxsLCBzcHJlYWQ6IG5hcnJvdyB3aWRlIHdpZGVyLCBndXR0ZXItb3ZlcnJpZGU6IG5vLWd1dHRlcnMgbm8tZ3V0dGVyLCByb2xlOiBuZXN0LCBjbGVhcjogYnJlYWsgbm9icmVhaywgZGVidWcgaW1hZ2U6IHNob3cgaGlkZSBzaG93LWNvbHVtbnMgc2hvdy1iYXNlbGluZSwgZGVidWcgb3V0cHV0OiBiYWNrZ3JvdW5kIG92ZXJsYXksICk7XHJcbi8vIE1hcCBGdW5jdGlvbnNcclxuLy8gPT09PT09PT09PT09PVxyXG4vLyBUcnVuY2F0ZSBMaXN0XHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuLy8gLSBSZXR1cm4gYSBsaXN0LCB0cnVuY2F0ZWQgdG8gYSBnaXZlbiBsZW5ndGhcclxuQGZ1bmN0aW9uIF9zdXN5LXRydW5jYXRlLWxpc3QoICRsaXN0LCAkbGVuZ3RoKSB7XHJcbiAgICAkX3JldHVybjogKCk7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xyXG4gICAgICAgICRfcmV0dXJuOiBpZigkaSA8PSRsZW5ndGgsIGFwcGVuZCgkX3JldHVybiwgbnRoKCRsaXN0LCAkaSkpLCAkX3JldHVybik7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBEZWVwIEdldFxyXG4vLyAtLS0tLS0tLVxyXG4vLyAtIFJldHVybiBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcclxuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtZ2V0KCAkbWFwLCAka2V5cy4uLikge1xyXG4gICAgJF9yZXR1cm46ICRtYXA7XHJcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcclxuICAgICAgICBAaWYgdHlwZS1vZigkX3JldHVybik9PW1hcCB7XHJcbiAgICAgICAgICAgICRfcmV0dXJuOiBtYXAtZ2V0KCRfcmV0dXJuLCAka2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBEZWVwIFNldFxyXG4vLyAtLS0tLS0tLVxyXG4vLyAtIFNldCBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcclxuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtc2V0KCAkbWFwLCAka2V5cy12YWx1ZS4uLikge1xyXG4gICAgJF92YWx1ZTogbnRoKCRrZXlzLXZhbHVlLCAtMSk7XHJcbiAgICAkX2tleXM6IF9zdXN5LXRydW5jYXRlLWxpc3QoJGtleXMtdmFsdWUsIGxlbmd0aCgka2V5cy12YWx1ZSkgLSAxKTtcclxuICAgICRfbGVuZ3RoOiBsZW5ndGgoJF9rZXlzKTtcclxuICAgICRfcmV0dXJuOiAoKTtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJF9sZW5ndGgge1xyXG4gICAgICAgICRfbjogMCAtICRpO1xyXG4gICAgICAgICRfbGV2ZWw6IF9zdXN5LXRydW5jYXRlLWxpc3QoJF9rZXlzLCAkX2xlbmd0aCArICRfbik7XHJcbiAgICAgICAgJF9sZXZlbDogX3N1c3ktZGVlcC1nZXQoJG1hcCwgJF9sZXZlbC4uLik7XHJcbiAgICAgICAgJF9tZXJnZTogbnRoKCRfa2V5cywgJF9uKTtcclxuICAgICAgICAkX21lcmdlOiAoJF9tZXJnZTogJF92YWx1ZSk7XHJcbiAgICAgICAgJF9yZXR1cm46IGlmKCRfbGV2ZWwsIG1hcC1tZXJnZSgkX2xldmVsLCAkX21lcmdlKSwgJF9tZXJnZSk7XHJcbiAgICAgICAgJF92YWx1ZTogJF9yZXR1cm47XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBEZWVwIE1lcmdlXHJcbi8vIC0tLS0tLS0tLS1cclxuLy8gUmV0dXJuIDIgb2JqZWN0cyBvZiBhbnkgZGVwdGgsIG1lcmdlZFxyXG5AZnVuY3Rpb24gX3N1c3ktZGVlcC1tZXJnZSggJG1hcDEsICRtYXAyKSB7XHJcbiAgICBAaWYgdHlwZS1vZigkbWFwMSkgIT1tYXAgb3IgdHlwZS1vZigkbWFwMikgIT1tYXAge1xyXG4gICAgICAgICRtYXAxOiAkbWFwMjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAZWFjaCAka2V5LFxyXG4gICAgICAgICR2YWx1ZSBpbiAkbWFwMiB7XHJcbiAgICAgICAgICAgICRfbmV3OiAoJGtleTogX3N1c3lfZGVlcC1tZXJnZShtYXAtZ2V0KCRtYXAxLCAka2V5KSwgJHZhbHVlKSk7XHJcbiAgICAgICAgICAgICRtYXAxOiBtYXAtbWVyZ2UoJG1hcDEsICRfbmV3KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRtYXAxO1xyXG59XHJcblxyXG4vLyBEZWVwIEhhcy1LZXlcclxuLy8gLS0tLS0tLS0tLS0tXHJcbi8vIC0gUmV0dXJuIHRydWUgaWYgYSBkZWVwIGtleSBleGlzdHNcclxuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtaGFzLWtleSggJG1hcCwgJGtleXMuLi4pIHtcclxuICAgICRfcmV0dXJuOiBudWxsO1xyXG4gICAgJF9zdG9wOiBmYWxzZTtcclxuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xyXG4gICAgICAgIEBpZiBub3QoJF9zdG9wKSB7XHJcbiAgICAgICAgICAgICRfcmV0dXJuOiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICRfcmV0dXJuIHtcclxuICAgICAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAkX3N0b3A6IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQHJldHVybiAkX3JldHVybjtcclxufVxyXG5cclxuLy8gU3VzeSBTdXBwb3J0IFttaXhpbl1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gU2VuZCBwcm9wZXJ0eS12YWx1ZSBwYWlycyB0byB0aGUgcHJvcGVyIHN1cHBvcnQgbW9kdWxlcy5cclxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxyXG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XHJcbkBtaXhpbiBzdXN5LXN1cHBvcnQoICRwcm9wLCAkdmFsKSB7XHJcbiAgICAvLyBCYWNrZ3JvdW5kIFN1cHBvcnRcclxuICAgIEBpZiAkcHJvcD09YmFja2dyb3VuZC1pbWFnZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHZhbDtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRwcm9wPT1iYWNrZ3JvdW5kLXNpemUge1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJHZhbDtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRwcm9wPT1iYWNrZ3JvdW5kLW9yaWdpbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1vcmlnaW46ICR2YWw7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkcHJvcD09YmFja2dyb3VuZC1jbGlwIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6ICR2YWw7XHJcbiAgICB9XHJcbiAgICAvLyBCb3gtU2l6aW5nIFN1cHBvcnRcclxuICAgIEBlbHNlIGlmICRwcm9wPT1ib3gtc2l6aW5nIHtcclxuICAgICAgICAvL0BpbmNsdWRlIHN1c3ktYm94LXNpemluZygkdmFsKTtcclxuICAgICAgICAvL0BpbmNsdWRlIGJveC1zaXppbmcoJHZhbCk7XHJcbiAgICAgICAgYm94LXNpemluZzogJHZhbDtcclxuICAgIH1cclxuICAgIC8vIFJlbSBTdXBwb3J0XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgI3skcHJvcH06ICR2YWw7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIE91dHB1dFxyXG4vLyAtLS0tLS1cclxuLy8gT3V0cHV0IENTUyB3aXRoIHByb3BlciBicm93c2VyIHN1cHBvcnQuXHJcbi8vIC0gJHN0eWxlcyAgOiA8bWFwIG9mIGNzcyBwcm9wZXJ0eS12YWx1ZSBwYWlycz5cclxuQG1peGluIG91dHB1dCggJHN0eWxlcykge1xyXG4gICAgQGVhY2ggJHByb3AsXHJcbiAgICAkdmFsIGluICRzdHlsZXMge1xyXG4gICAgICAgIEBpbmNsdWRlIHN1c3ktc3VwcG9ydCgkcHJvcCwgJHZhbCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFBhcnNlIFN1c3kgS2V5d29yZHMgYW5kIE1hcHNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5AZnVuY3Rpb24gcGFyc2Utc2V0dGluZ3MoICRzaG9ydDogJHN1c3kpIHtcclxuICAgICRfcmV0dXJuOiAoKTtcclxuICAgIEBpZiB0eXBlLW9mKCRzaG9ydCk9PW1hcCB7XHJcbiAgICAgICAgJF9yZXR1cm46ICRzaG9ydDtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAZWFjaCAkaXRlbSBpbiAkc2hvcnQge1xyXG4gICAgICAgICAgICAvLyBzdHJpbmdzXHJcbiAgICAgICAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKT09c3RyaW5nIHtcclxuICAgICAgICAgICAgICAgIEBlYWNoICRrZXksXHJcbiAgICAgICAgICAgICAgICAkdmFsdWUgaW4gJHN1c3kta2V5d29yZHMge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZiBpbmRleCgkdmFsdWUsICRpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRfa2V5LXZhbHVlOiBhcHBlbmQoJGtleSwgJGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkX3JldHVybjogX3N1c3ktZGVlcC1zZXQoJF9yZXR1cm4sICRfa2V5LXZhbHVlLi4uKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBtYXBzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2UgaWYgdHlwZS1vZigkaXRlbSk9PW1hcCB7XHJcbiAgICAgICAgICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBQYXJzZSBDb2x1bW5zICYgR3V0dGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5AZnVuY3Rpb24gcGFyc2UtbGF5b3V0KCAkc2hvcnQpIHtcclxuICAgICRfcmV0dXJuOiAoKTtcclxuICAgICRfY29sdW1uczogKCk7XHJcbiAgICAkX2d1dHRlcnM6IG51bGw7XHJcbiAgICBAaWYgbm90KHVuaXRsZXNzKG50aChudGgoJHNob3J0LCAxKSwgMSkpKSB7XHJcbiAgICAgICAgJF9ndXR0ZXJzOiBudGgoJHNob3J0LCAxKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICAkX2NvbHVtbnM6IChjb2x1bW5zOiBudGgoJHNob3J0LCAxKSk7XHJcbiAgICAgICAgJF9ndXR0ZXJzOiBpZihsZW5ndGgoJHNob3J0KSA+IDEsIG50aCgkc2hvcnQsIDIpLCAkX2d1dHRlcnMpO1xyXG4gICAgfVxyXG4gICAgQGlmIHR5cGUtb2YoJF9ndXR0ZXJzKT09bGlzdCBhbmQgbGVuZ3RoKCRfZ3V0dGVycyk+MCB7XHJcbiAgICAgICAgJF9ndXR0ZXJzOiAoIGd1dHRlcnM6IG50aCgkX2d1dHRlcnMsIDIpIC8gbnRoKCRfZ3V0dGVycywgMSksIGNvbHVtbi13aWR0aDogbnRoKCRfZ3V0dGVycywgMSksICk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgJF9ndXR0ZXJzOiBpZigkX2d1dHRlcnMsIChndXR0ZXJzOiAkX2d1dHRlcnMpLCAoKSk7XHJcbiAgICB9XHJcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2NvbHVtbnMpO1xyXG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgJF9ndXR0ZXJzKTtcclxuICAgIEByZXR1cm4gJF9yZXR1cm47XHJcbn1cclxuXHJcbi8vIFBhcnNlIEdyaWQvQ29udGV4dFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cclxuQGZ1bmN0aW9uIHBhcnNlLWdyaWQoICRzaG9ydDogJHN1c3kpIHtcclxuICAgICRfcmV0dXJuOiBwYXJzZS1zZXR0aW5ncygkc2hvcnQpO1xyXG4gICAgJF9sYXlvdXQ6ICgpO1xyXG4gICAgQGlmIHR5cGUtb2YoJHNob3J0KT09bWFwIHtcclxuICAgICAgICAkX3JldHVybjogJHNob3J0O1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBlYWNoICRpdGVtIGluICRzaG9ydCB7XHJcbiAgICAgICAgICAgIC8vIG51bWJlciBvciBsaXN0XHJcbiAgICAgICAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKT09bnVtYmVyIG9yIHR5cGUtb2YoJGl0ZW0pPT1saXN0IHtcclxuICAgICAgICAgICAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKT09bGlzdCBvciB1bml0bGVzcygkaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICRfbGF5b3V0OiBhcHBlbmQoJF9sYXlvdXQsICRpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoY29udGFpbmVyOiAkaXRlbSkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICRfbGF5b3V0OiBpZihsZW5ndGgoJF9sYXlvdXQpID4gMCwgcGFyc2UtbGF5b3V0KCRfbGF5b3V0KSwgJF9sYXlvdXQpO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiBtYXAtbWVyZ2UoJF9yZXR1cm4sICRfbGF5b3V0KTtcclxufVxyXG5cclxuLy8gUGFyc2UgU3BhblxyXG4vLyAtLS0tLS0tLS0tXHJcbkBmdW5jdGlvbiBwYXJzZS1zcGFuKCAkc2hvcnQsICRrZXk6IHNwYW4pIHtcclxuICAgICRfcmV0dXJuOiAoKTtcclxuICAgIEBpZiB0eXBlLW9mKCRzaG9ydCk9PW1hcCB7XHJcbiAgICAgICAgJF9yZXR1cm46ICRzaG9ydDtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICAkX2F0OiBpbmRleCgkc2hvcnQsIGF0KTtcclxuICAgICAgICBAaWYgJF9hdCB7XHJcbiAgICAgICAgICAgICRfbG9jaTogJF9hdCArIDE7XHJcbiAgICAgICAgICAgICRfbG9jYXRpb246IG50aCgkc2hvcnQsICRfbG9jaSk7XHJcbiAgICAgICAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChsb2NhdGlvbjogJF9sb2NhdGlvbikpO1xyXG4gICAgICAgICAgICAkc2hvcnQ6IHNldC1udGgoJHNob3J0LCAkX2F0LCBudWxsKTtcclxuICAgICAgICAgICAgJHNob3J0OiBzZXQtbnRoKCRzaG9ydCwgJF9sb2NpLCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJF9pOiAxO1xyXG4gICAgICAgICRfc3BhbjogKCk7XHJcbiAgICAgICAgQHdoaWxlICRfaSA8PWxlbmd0aCgkc2hvcnQpIHtcclxuICAgICAgICAgICAgJF90aGlzOiBudGgoJHNob3J0LCAkX2kpO1xyXG4gICAgICAgICAgICBAaWYgdHlwZS1vZigkX3RoaXMpPT1udW1iZXIge1xyXG4gICAgICAgICAgICAgICAgJF9zcGFuOiBhcHBlbmQoJF9zcGFuLCAkX3RoaXMpO1xyXG4gICAgICAgICAgICAgICAgJHNob3J0OiBzZXQtbnRoKCRzaG9ydCwgJF9pLCBudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAkX3RoaXM9PW9mIHtcclxuICAgICAgICAgICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAkX2k6IGxlbmd0aCgkc2hvcnQpICsgMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAkX2k6ICRfaSsxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgbGVuZ3RoKCRfc3Bhbik+MCB7XHJcbiAgICAgICAgICAgICRfc3BhbjogaWYobGVuZ3RoKCRfc3Bhbik9PTEsIG50aCgkX3NwYW4sIDEpLCAkX3NwYW4pO1xyXG4gICAgICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoJGtleTogJF9zcGFuKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIHBhcnNlLWdyaWQoJHNob3J0KSk7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBGbG9hdCBTcGFuIE91dHB1dFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyAtICR3aWR0aCAgICAgICAgICAgICA6IDxsZW5ndGg+XHJcbi8vIC0gWyRmbG9hdF0gICAgICAgICAgIDogZnJvbSB8IHRvXHJcbi8vIC0gWyRtYXJnaW4tYmVmb3JlXSAgIDogPGxlbmd0aD5cclxuLy8gLSBbJG1hcmdpbi1hZnRlcl0gICAgOiA8bGVuZ3RoPlxyXG4vLyAtIFskcGFkZGluZy1iZWZvcmVdICA6IDxsZW5ndGg+XHJcbi8vIC0gWyRwYWRkaW5nLWFmdGVyXSAgIDogPGxlbmd0aD5cclxuLy8gLSBbJGZsb3ddICAgICAgICAgICAgOiBsdHIgfCBydGxcclxuQG1peGluIGZsb2F0LXNwYW4tb3V0cHV0KCAkd2lkdGgsICRmbG9hdDogZnJvbSwgJG1hcmdpbi1iZWZvcmU6IG51bGwsICRtYXJnaW4tYWZ0ZXI6IG51bGwsICRwYWRkaW5nLWJlZm9yZTogbnVsbCwgJHBhZGRpbmctYWZ0ZXI6IG51bGwsICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSkge1xyXG4gICAgJHRvOiB0bygkZmxvdyk7XHJcbiAgICAkZnJvbTogZnJvbSgkZmxvdyk7XHJcbiAgICAkb3V0cHV0OiAoIHdpZHRoOiAkd2lkdGgsIGZsb2F0OiBpZigkZmxvYXQ9PXRvLCAkdG8sIG51bGwpIG9yIGlmKCRmbG9hdD09ZnJvbSwgJGZyb20sIG51bGwpLCBtYXJnaW4tI3skZnJvbX06ICRtYXJnaW4tYmVmb3JlLCBtYXJnaW4tI3skdG99OiAkbWFyZ2luLWFmdGVyLCBwYWRkaW5nLSN7JGZyb219OiAkcGFkZGluZy1iZWZvcmUsIHBhZGRpbmctI3skdG99OiAkcGFkZGluZy1hZnRlciwgKTtcclxuICAgIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcclxufVxyXG5cclxuLy8gRmxvYXQgTGFzdFxyXG4vLyAtLS0tLS0tLS0tXHJcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcclxuQG1peGluIGZsb2F0LWxhc3QoICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSwgJGxhc3QtZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgbGFzdC1mbG93KSwgJG1hcmdpbjogMCkge1xyXG4gICAgJHRvOiB0bygkZmxvdyk7XHJcbiAgICAkb3V0cHV0OiAoIGZsb2F0OiBpZigkbGFzdC1mbG93PT10bywgJHRvLCBudWxsKSwgbWFyZ2luLSN7JHRvfTogJG1hcmdpbiwgKTtcclxuICAgIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcclxufVxyXG5cclxuLy8gTGFzdFxyXG4vLyAtLS0tXHJcbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxyXG5AbWl4aW4gbGFzdCggJGNvbnRleHQ6ICRzdXN5KSB7XHJcbiAgICAkaW5zcGVjdDogJGNvbnRleHQ7XHJcbiAgICAkY29udGV4dDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XHJcbiAgICAvL0BpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XHJcbiAgICAkb3V0cHV0OiAoIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSwgbGFzdC1mbG93OiBzdXN5LWdldChsYXN0LWZsb3csICRjb250ZXh0KSwgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLCApO1xyXG4gICAgQGluY2x1ZGUgZmxvYXQtbGFzdCgkb3V0cHV0Li4uKTtcclxufVxyXG5cclxuLy8gU3VzeSBTbGljZVxyXG4vLyAtLS0tLS0tLS0tXHJcbi8vIFJldHVybiBhIHN1YnNldCBvZiBjb2x1bW5zIGF0IGEgZ2l2ZW4gbG9jYXRpb24uXHJcbi8vIC0gJHNwYW4gICAgICAgIDogPG51bWJlcj5cclxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxyXG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XHJcbkBmdW5jdGlvbiBzdXN5LXNsaWNlKCAkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucykpIHtcclxuICAgICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcclxuICAgICRzdWItY29sdW1uczogJHNwYW47XHJcbiAgICBAaWYgbm90KGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSkge1xyXG4gICAgICAgICRsb2NhdGlvbjogJGxvY2F0aW9uIG9yIDE7XHJcbiAgICAgICAgJHN1Yi1jb2x1bW5zOiAoKTtcclxuICAgICAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRvICgkbG9jYXRpb24gKyAkc3Bhbikge1xyXG4gICAgICAgICAgICAkc3ViLWNvbHVtbnM6IGFwcGVuZCgkc3ViLWNvbHVtbnMsIG50aCgkY29sdW1ucywgJGkpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRzdWItY29sdW1ucztcclxufVxyXG5cclxuLy8gTmVzdGVkIFtmdW5jdGlvbl1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gUmV0dXJuIGEgc3Vic2V0IGdyaWQgZm9yIG5lc3RlZCBjb250ZXh0LlxyXG4vLyAtICRjb250ZXh0ICAgOiA8c3Bhbj5cclxuQGZ1bmN0aW9uIG5lc3RlZCggJGNvbnRleHQpIHtcclxuICAgICRjb250ZXh0OiBwYXJzZS1zcGFuKCRjb250ZXh0KTtcclxuICAgICRzcGFuOiBzdXN5LWdldChzcGFuLCAkY29udGV4dCk7XHJcbiAgICAkbG9jYXRpb246IGdldC1sb2NhdGlvbigkY29udGV4dCk7XHJcbiAgICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xyXG4gICAgQHJldHVybiBzdXN5LXNsaWNlKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcclxufVxyXG5cclxuLy8gTmVzdGVkIFttaXhpbl1cclxuLy8gLS0tLS0tLS0tLS0tLS1cclxuLy8gVXNlIGEgc3Vic2V0IGdyaWQgZm9yIGEgbmVzdGVkIGNvbnRleHRcclxuLy8gLSAkY29udGV4dCAgIDogPHNwYW4+XHJcbi8vIC0gQGNvbnRlbnQgICA6IDxjb250ZW50PlxyXG5AbWl4aW4gbmVzdGVkKCAkY29udGV4dCkge1xyXG4gICAgJGluc3BlY3Q6ICRjb250ZXh0O1xyXG4gICAgJGNvbnRleHQ6IHBhcnNlLXNwYW4oJGNvbnRleHQpO1xyXG4gICAgJG9sZDogc3VzeS1nZXQoY29sdW1ucyk7XHJcbiAgICAkc3VzeTogbWFwLW1lcmdlKCRzdXN5LCAoY29sdW1uczogbmVzdGVkKCRjb250ZXh0KSkpICFnbG9iYWw7XHJcbiAgICAvL0BpbmNsdWRlIHN1c3ktaW5zcGVjdChuZXN0ZWQsICRpbnNwZWN0KTtcclxuICAgIEBjb250ZW50O1xyXG4gICAgJHN1c3k6IG1hcC1tZXJnZSgkc3VzeSwgKGNvbHVtbnM6ICRvbGQpKSAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLyBTdXN5IEdldFxyXG4vLyAtLS0tLS0tLVxyXG4vLyBSZXR1cm4gb25lIHNldHRpbmcgZnJvbSBhIGdyaWRcclxuLy8gLSAka2V5ICAgICA6IDxrZXl3b3JkPlxyXG4vLyAtICRsYXlvdXQgIDogPHNldHRpbmdzPlxyXG5AZnVuY3Rpb24gc3VzeS1nZXQoICRrZXksICRsYXlvdXQ6IG1hcC1tZXJnZSgkc3VzeS1kZWZhdWx0cywgJHN1c3kpKSB7XHJcbiAgICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xyXG4gICAgJF9vcHRpb25zOiAkbGF5b3V0ICRzdXN5ICRzdXN5LWRlZmF1bHRzO1xyXG4gICAgJF9icmVhazogZmFsc2U7XHJcbiAgICAkX3JldHVybjogbnVsbDtcclxuICAgIEBlYWNoICRvcHQgaW4gJF9vcHRpb25zIHtcclxuICAgICAgICBAaWYgdHlwZS1vZigkb3B0KT09bWFwIGFuZCBub3QoJF9icmVhaykge1xyXG4gICAgICAgICAgICAkX2tleXNldDogX3N1c3ktZGVlcC1oYXMta2V5KCRvcHQsICRrZXkuLi4pO1xyXG4gICAgICAgICAgICBAaWYgJF9rZXlzZXQge1xyXG4gICAgICAgICAgICAgICAgJF9yZXR1cm46IF9zdXN5LWRlZXAtZ2V0KCRvcHQsICRrZXkuLi4pO1xyXG4gICAgICAgICAgICAgICAgJF9icmVhazogdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEByZXR1cm4gJF9yZXR1cm47XHJcbn1cclxuXHJcbi8vIEJyZWFrXHJcbi8vIC0tLS0tXHJcbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cclxuQG1peGluIGJyZWFrIHtcclxuICAgIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcclxufVxyXG5cclxuLy8gTm9CcmVha1xyXG4vLyAtLS0tLS0tXHJcbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxyXG5AbWl4aW4gbm9icmVhayB7XHJcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XHJcbn1cclxuXHJcbi8vIFNwYW4gW21peGluXVxyXG4vLyAtLS0tLS0tLS0tLS1cclxuLy8gU2V0IGEgc3Bhbm5pbmcgZWxlbWVudCB1c2luZyBzaG9ydGhhbmQgc3ludGF4LlxyXG4vLyAtICRzcGFuICA6IDxzcGFuPlxyXG5AbWl4aW4gc3BhbiggJHNwYW4pIHtcclxuICAgICRpbnNwZWN0OiAkc3BhbjtcclxuICAgICRzcGFuOiBwYXJzZS1zcGFuKCRzcGFuKTtcclxuICAgICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XHJcbiAgICAkbmVzdGluZzogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xyXG4gICAgJGNsZWFyOiBzdXN5LWdldChjbGVhciwgJHNwYW4pO1xyXG4gICAgJGJveDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xyXG4gICAgJGNvbnRlbnQtYm94OiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0nYm9yZGVyLWJveCcsIHRydWUsIGZhbHNlKTtcclxuICAgICRib3g6ICRib3ggb3IgaWYoaXMtaW5zaWRlKCRzcGFuKSBhbmQgJGNvbnRlbnQtYm94LCBib3JkZXItYm94LCBudWxsKTtcclxuICAgIEBpZiAkY2xlYXI9PWJyZWFrIHtcclxuICAgICAgICBAaW5jbHVkZSBicmVhaztcclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRjbGVhcj09bm9icmVhayB7XHJcbiAgICAgICAgQGluY2x1ZGUgbm9icmVhaztcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpO1xyXG4gICAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XHJcbiAgICBAaWYgdmFsaWQtY29sdW1ucygkbmVzdGluZywgc2lsZW50KSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbmVzdGVkKCRzcGFuKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgIH1cclxufVxyXG5cclxuLy8gU3BhbiBbZnVuY3Rpb25dXHJcbi8vIC0tLS0tLS0tLS0tLS0tLVxyXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgc3Bhbi5cclxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cclxuQGZ1bmN0aW9uIHNwYW4oICRzcGFuKSB7XHJcbiAgICBAcmV0dXJuIGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcclxufVxyXG5cclxuLy8gR2V0IElzb2xhdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxyXG4vLyAtICRpbnB1dDogPG1hcD5cclxuQGZ1bmN0aW9uIGdldC1pc29sYXRpb24oICRpbnB1dCkge1xyXG4gICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcclxuICAgICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xyXG4gICAgJHdpZHRoOiBudWxsO1xyXG4gICAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKT09bnVtYmVyIGFuZCBub3QodW5pdGxlc3MoJGxvY2F0aW9uKSkge1xyXG4gICAgICAgICR3aWR0aDogJGxvY2F0aW9uO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGxvY2F0aW9uIHtcclxuICAgICAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcclxuICAgICAgICBAaWYgJHB1c2g+MCB7XHJcbiAgICAgICAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoIHNwYW46ICRwdXNoLCBsb2NhdGlvbjogMSwgc3ByZWFkOiB3aWRlLCApKTtcclxuICAgICAgICAgICAgJHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkcHVzaCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGlmIHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGlucHV0KT09c3BsaXQgYW5kIHN1c3ktZ2V0KGd1dHRlcnMsICRpbnB1dCk+MCB7XHJcbiAgICAgICAgJHdpZHRoOiBpZigkd2lkdGg9PW51bGwsIGd1dHRlcnMoJGlucHV0KSwgJHdpZHRoICsgZ3V0dGVycygkaW5wdXQpKTtcclxuICAgIH1cclxuICAgIEByZXR1cm4gJHdpZHRoIG9yIDA7XHJcbn1cclxuXHJcbi8vIFNwYW4gTWF0aFxyXG4vLyAtLS0tLS0tLS1cclxuLy8gR2V0IGFsbCB0aGUgc3BhbiByZXN1bHRzLlxyXG4vLyAtICRzcGFuOiA8bWFwPlxyXG5AZnVuY3Rpb24gc3Bhbi1tYXRoKCAkc3Bhbikge1xyXG4gICAgJG5lc3Q6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKT09bmVzdCwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgJHNwbGl0LW5lc3Q6IGlmKGlzLXNwbGl0KCRzcGFuKSBhbmQgJG5lc3QsIHRydWUsIGZhbHNlKTtcclxuICAgICRlZGdlOiBnZXQtZWRnZSgkc3Bhbik7XHJcbiAgICAkbG9jYXRpb246IGdldC1sb2NhdGlvbigkc3Bhbik7XHJcbiAgICAkZmxvYXQ6IGZyb207XHJcbiAgICAkcGFkZGluZy1iZWZvcmU6IG51bGw7XHJcbiAgICAkcGFkZGluZy1hZnRlcjogbnVsbDtcclxuICAgICRtYXJnaW4tYmVmb3JlOiBudWxsO1xyXG4gICAgJG1hcmdpbi1hZnRlcjogbnVsbDtcclxuICAgIC8vIGNhbGN1bGF0ZSB3aWR0aHNcclxuICAgICRzcHJlYWQ6IGluZGV4KG1hcC12YWx1ZXMoJHNwYW4pLCBzcHJlYWQpO1xyXG4gICAgJHNwYW46IGlmKCRzcGxpdC1uZXN0IGFuZCBub3QoJHNwcmVhZCksIG1hcC1tZXJnZSgkc3BhbiwgKHNwcmVhZDogd2lkZSkpLCAkc3Bhbik7XHJcbiAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcclxuICAgICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XHJcbiAgICAvLyBhcHBseSBndXR0ZXJzXHJcbiAgICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XHJcbiAgICAgICAgQGlmIG5vdChzdXN5LWdldChyb2xlLCAkc3BhbikpIHtcclxuICAgICAgICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xyXG4gICAgICAgICAgICAkcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBAaWYgbm90KCRzcGxpdC1uZXN0KSB7XHJcbiAgICAgICAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xyXG4gICAgICAgICAgICAkbWFyZ2luLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc3BlY2lhbCBtYXJnaW4gaGFuZGxpbmdcclxuICAgIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKT09aXNvbGF0ZSBhbmQgJGxvY2F0aW9uIHtcclxuICAgICAgICAkbWFyZ2luLWJlZm9yZTogZ2V0LWlzb2xhdGlvbigkc3Bhbik7XHJcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogLTEwMCU7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkZWRnZSB7XHJcbiAgICAgICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XHJcbiAgICAgICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XHJcbiAgICAgICAgQGlmICRlZGdlPT1sYXN0IHtcclxuICAgICAgICAgICAgJGZsb2F0OiBzdXN5LWdldChsYXN0LWZsb3csICRzcGFuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIG5vdCgkaXMtc3BsaXQpIHtcclxuICAgICAgICAgICAgQGlmICRlZGdlPT1mdWxsIG9yICgkZWRnZT09Zmlyc3QgYW5kICRwb3M9PWJlZm9yZSkge1xyXG4gICAgICAgICAgICAgICAgJG1hcmdpbi1iZWZvcmU6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmICRlZGdlPT1mdWxsIG9yICgkZWRnZT09bGFzdCBhbmQgJHBvcz09YWZ0ZXIpIHtcclxuICAgICAgICAgICAgICAgICRtYXJnaW4tYWZ0ZXI6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICggd2lkdGg6ICR3aWR0aCwgZmxvYXQ6ICRmbG9hdCwgbWFyZ2luLWJlZm9yZTogJG1hcmdpbi1iZWZvcmUsIG1hcmdpbi1hZnRlcjogJG1hcmdpbi1hZnRlciwgcGFkZGluZy1iZWZvcmU6ICRwYWRkaW5nLWJlZm9yZSwgcGFkZGluZy1hZnRlcjogJHBhZGRpbmctYWZ0ZXIsIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRzcGFuKSwgKTtcclxufVxyXG5cclxuLy8gVmFsaWQgQ29sdW1uc1xyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIENoZWNrIHRoYXQgYSBjb2x1bW4gc2V0dGluZyBpcyB2YWxpZC5cclxuQGZ1bmN0aW9uIHZhbGlkLWNvbHVtbnMoICRjb2x1bW5zLCAkc2lsZW50OiBmYWxzZSkge1xyXG4gICAgJHR5cGU6IHR5cGUtb2YoJGNvbHVtbnMpO1xyXG4gICAgJHJldHVybjogbnVsbDtcclxuICAgIEBpZiAkdHlwZT09bnVtYmVyIGFuZCB1bml0bGVzcygkY29sdW1ucykge1xyXG4gICAgICAgICRyZXR1cm46ICRjb2x1bW5zO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJHR5cGU9PWxpc3Qge1xyXG4gICAgICAgICRmYWlsOiBudWxsO1xyXG4gICAgICAgIEBlYWNoICRjb2wgaW4gJGNvbHVtbnMge1xyXG4gICAgICAgICAgICBAaWYgdHlwZS1vZigkY29sKT09bnVtYmVyIHtcclxuICAgICAgICAgICAgICAgICRmYWlsOiAkZmFpbCBvciBpZih1bml0bGVzcygkY29sKSwgbnVsbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJGZhaWw6IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJHJldHVybjogaWYoJGZhaWwsICRyZXR1cm4sICRjb2x1bW5zKTtcclxuICAgIH1cclxuICAgIEBpZiAkcmV0dXJuICE9JGNvbHVtbnMgYW5kIG5vdCgkc2lsZW50KSB7XHJcbiAgICAgICAgJHJldHVybjogbnVsbDtcclxuICAgICAgICAkd2FybjogJyRjb2x1bW5zIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXIgb3IgbGlzdCBvZiB1bml0bGVzcyBudW1iZXJzLic7XHJcbiAgICAgICAgQHdhcm4gJHdhcm4rJyBDdXJyZW50IHZhbHVlIFsjeyR0eXBlfV06ICN7JGNvbHVtbnN9JztcclxuICAgIH1cclxuICAgIEByZXR1cm4gJHJldHVybjtcclxufVxyXG5cclxuLy8gTWFyZ2luIE91dHB1dFxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxyXG4vLyAtICRhZnRlciAgIDogPGxlbmd0aD5cclxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxyXG5AbWl4aW4gbWFyZ2luLW91dHB1dCggJGJlZm9yZSwgJGFmdGVyLCAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdykpIHtcclxuICAgICR0bzogdG8oJGZsb3cpO1xyXG4gICAgJGZyb206IGZyb20oJGZsb3cpO1xyXG4gICAgJG91dHB1dDogKCBtYXJnaW4tI3skZnJvbX06ICRiZWZvcmUsIG1hcmdpbi0jeyR0b306ICRhZnRlciwgKTtcclxuICAgIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcclxufVxyXG5cclxuLy8gR2V0IERpcmVjdGlvblxyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxyXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXHJcbi8vIC0gWyRrZXldICAgOiBmcm9tIHwgdG9cclxuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSwgJGtleTogZnJvbSkge1xyXG4gICAgJHJldHVybjogaWYoJGZsb3c9PXJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkcmV0dXJuLCAka2V5KTtcclxufVxyXG5cclxuLy8gVG9cclxuLy8gLS1cclxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcclxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxyXG5AZnVuY3Rpb24gdG8oICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSkge1xyXG4gICAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XHJcbn1cclxuXHJcbi8vIEZyb21cclxuLy8gLS0tLVxyXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XHJcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcclxuQGZ1bmN0aW9uIGZyb20oICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSkge1xyXG4gICAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcclxufVxyXG5cclxuLy8gUGFkZGluZyBPdXRwdXRcclxuLy8gLS0tLS0tLS0tLS0tLS1cclxuLy8gLSAkYmVmb3JlICA6IDxsZW5ndGg+XHJcbi8vIC0gJGFmdGVyICAgOiA8bGVuZ3RoPlxyXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXHJcbkBtaXhpbiBwYWRkaW5nLW91dHB1dCggJGJlZm9yZSwgJGFmdGVyLCAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdykpIHtcclxuICAgICR0bzogdG8oJGZsb3cpO1xyXG4gICAgJGZyb206IGZyb20oJGZsb3cpO1xyXG4gICAgJG91dHB1dDogKCBwYWRkaW5nLSN7JGZyb219OiAkYmVmb3JlLCBwYWRkaW5nLSN7JHRvfTogJGFmdGVyLCApO1xyXG4gICAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xyXG59XHJcblxyXG4vLyBHdXR0ZXIgU3ludGF4XHJcbi8vID09PT09PT09PT09PT1cclxuLy8gR3V0dGVyc1xyXG4vLyAtLS0tLS0tXHJcbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXHJcbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxyXG5AbWl4aW4gZ3V0dGVycyggJHNwYW46ICRzdXN5KSB7XHJcbiAgICAkaW5zcGVjdDogJHNwYW47XHJcbiAgICAkc3BhbjogcGFyc2UtZ3V0dGVycygkc3Bhbik7XHJcbiAgICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcclxuICAgICRfb3V0cHV0OiAoIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksIGFmdGVyOiBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpLCBmbG93OiBzdXN5LWdldChmbG93LCAkc3BhbiksICk7XHJcbiAgICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQoJF9vdXRwdXQuLi4pO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJF9vdXRwdXQuLi4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZ3V0dGVyKCAkc3BhbjogJHN1c3kpIHtcclxuICAgIEBpbmNsdWRlIGd1dHRlcnMoJHNwYW4pO1xyXG59XHJcblxyXG4vLyBHdXR0ZXJcclxuLy8gLS0tLS0tXHJcbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXHJcbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxyXG5AZnVuY3Rpb24gZ3V0dGVyKCAkc3BhbjogJHN1c3kpIHtcclxuICAgICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcclxuICAgICRfZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xyXG4gICAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xyXG4gICAgQHJldHVybiAkX2d1dHRlcnM7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBndXR0ZXJzKCAkc3BhbjogJHN1c3kpIHtcclxuICAgIEByZXR1cm4gZ3V0dGVyKCRzcGFuKTtcclxufVxyXG5cclxuLy8gR2V0IEd1dHRlciBXaWR0aFxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXHJcbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XHJcbkBmdW5jdGlvbiBnZXQtZ3V0dGVyLXdpZHRoKCAkY29udGV4dDogJHN1c3kpIHtcclxuICAgICRjb250ZXh0OiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcclxuICAgICRfZ3V0dGVyczogc3VzeS1nZXQoZ3V0dGVycywgJGNvbnRleHQpO1xyXG4gICAgJF9ndXR0ZXI6IHN1c3ktZ2V0KGd1dHRlci1vdmVycmlkZSwgJGNvbnRleHQpO1xyXG4gICAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcclxuICAgICAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XHJcbiAgICAgICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XHJcbiAgICAgICAgQGlmICRfbWF0aD09c3RhdGljIHtcclxuICAgICAgICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICRfY29sdW1uczogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xyXG4gICAgICAgICAgICAkX3NwcmVhZDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XHJcbiAgICAgICAgICAgICRfZ3V0dGVyOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICRfZ3V0dGVyOiBpZigkX2d1dHRlcj09J25vLWd1dHRlcnMnIG9yICRfZ3V0dGVyPT0nbm8tZ3V0dGVyJywgbnVsbCwgJF9ndXR0ZXIpO1xyXG4gICAgQHJldHVybiAkX2d1dHRlcjtcclxufVxyXG5cclxuLy8gUGFyc2UgR3V0dGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbkBmdW5jdGlvbiBwYXJzZS1ndXR0ZXJzKCAkc2hvcnQ6ICRzdXN5KSB7XHJcbiAgICAkX2d1dHRlcnM6IHBhcnNlLXNwYW4oJHNob3J0LCBndXR0ZXItb3ZlcnJpZGUpO1xyXG4gICAgJF9zcGFuOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRfZ3V0dGVycyk7XHJcbiAgICBAaWYgJF9zcGFuIGFuZCBub3QobWFwLWdldCgkX2d1dHRlcnMsIGNvbHVtbnMpKSB7XHJcbiAgICAgICAgJF9jb250ZXh0OiAoKTtcclxuICAgICAgICAkX25ldzogKCk7XHJcbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJF9zcGFuIHtcclxuICAgICAgICAgICAgQGlmIHR5cGUtb2YoJGl0ZW0pPT1udW1iZXIgYW5kIHVuaXRsZXNzKCRpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAkX2NvbnRleHQ6IGFwcGVuZCgkX2NvbnRleHQsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkX25ldzogYXBwZW5kKCRfbmV3LCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJF9jb250ZXh0OiBwYXJzZS1ncmlkKCRfY29udGV4dCk7XHJcbiAgICAgICAgJF9uZXc6IGlmKGxlbmd0aCgkX25ldyk9PTAsIG51bGwsICRfbmV3KTtcclxuICAgICAgICAkX25ldzogaWYobGVuZ3RoKCRfbmV3KT09MSwgbnRoKCRfbmV3LCAxKSwgJF9uZXcpO1xyXG4gICAgICAgICRfbmV3OiAoZ3V0dGVyLW92ZXJyaWRlOiBpZigkX25ldyAhPSRfc3BhbiwgJF9uZXcsICRfc3BhbikpO1xyXG4gICAgICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9uZXcpO1xyXG4gICAgICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9jb250ZXh0KTtcclxuICAgIH1cclxuICAgIEByZXR1cm4gJF9ndXR0ZXJzO1xyXG59XHJcblxyXG4vLyBHZXQgR3V0dGVyc1xyXG4vLyAtLS0tLS0tLS0tLVxyXG4vLyBSZXR1cm4gYmVmb3JlIGFuZCBhZnRlciBndXR0ZXIgdmFsdWVzLlxyXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxyXG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoICRjb250ZXh0OiAkc3VzeSkge1xyXG4gICAgJGNvbnRleHQ6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xyXG4gICAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xyXG4gICAgJF9ndXR0ZXI6IGdldC1ndXR0ZXItd2lkdGgoJGNvbnRleHQpO1xyXG4gICAgJF9yZXR1cm46IChiZWZvcmU6IG51bGwsIGFmdGVyOiBudWxsKTtcclxuICAgIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcclxuICAgICAgICAkX2d1dHRlcjogY2FsYygkLWd1dHRlciAvIDIpO1xyXG4gICAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoJF9ndXR0ZXItcG9zaXRpb246ICRfZ3V0dGVyKSk7XHJcbiAgICB9XHJcbiAgICBAcmV0dXJuICRfcmV0dXJuO1xyXG59XHJcblxyXG4vLyBJcyBJbnNpZGVcclxuLy8gLS0tLS0tLS0tXHJcbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBpbnNpZGUuXHJcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cclxuQGZ1bmN0aW9uIGlzLWluc2lkZSggJGNvbnRleHQpIHtcclxuICAgICRfaW5zaWRlOiBpbnNpZGUgaW5zaWRlLXN0YXRpYztcclxuICAgICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcclxuICAgIEByZXR1cm4gaWYoaW5kZXgoJF9pbnNpZGUsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xyXG59XHJcblxyXG4vLyBJcyBTcGxpdFxyXG4vLyAtLS0tLS0tLVxyXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXHJcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cclxuQGZ1bmN0aW9uIGlzLXNwbGl0KCAkY29udGV4dCkge1xyXG4gICAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XHJcbiAgICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XHJcbiAgICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xyXG59XHJcblxyXG4vLyBHdXR0ZXIgTWF0aFxyXG4vLyAtLS0tLS0tLS0tLVxyXG4vLyBSZXR1cm4gdGhlIG1hdGggdG8gdXNlIGZvciBndXR0ZXIgY2FsY3VsYXRpb25zXHJcbi8vICRjb250ZXh0OiA8Y29udGV4dD5cclxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKCAkY29udGV4dDogJHN1c3kpIHtcclxuICAgICRfcmV0dXJuOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XHJcbiAgICAkX3JldHVybjogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk9PWluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xyXG4gICAgQHJldHVybiAkX3JldHVybjtcclxufVxyXG5cclxuLy8gVmFsaWQgR3V0dGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tXHJcbi8vIENoZWNrIHRoYXQgYSBndXR0ZXIgc2V0dGluZyBpcyB2YWxpZC5cclxuQGZ1bmN0aW9uIHZhbGlkLWd1dHRlcnMoICRndXR0ZXJzLCAkc2lsZW50OiBmYWxzZSkge1xyXG4gICAgJHR5cGU6IHR5cGUtb2YoJGd1dHRlcnMpO1xyXG4gICAgJHJldHVybjogbnVsbDtcclxuICAgIEBpZiAkdHlwZT09bnVtYmVyIGFuZCB1bml0bGVzcygkZ3V0dGVycykge1xyXG4gICAgICAgICRyZXR1cm46ICRndXR0ZXJzO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgbm90KCRzaWxlbnQpIHtcclxuICAgICAgICAkd2FybjogJyRndXR0ZXJzIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXIuJztcclxuICAgICAgICBAd2FybiAkd2FybisnIEN1cnJlbnQgdmFsdWUgWyN7JHR5cGV9XTogI3skZ3V0dGVyc30nO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAkcmV0dXJuO1xyXG59XHJcblxyXG4vLyBTdXN5XHJcbi8vIC0tLS1cclxuLy8gRmluZCB0aGUgc3VtIG9mIGEgY29sdW1uLXNwYW4uXHJcbi8vIC0gJHNwYW4gICAgICAgIDogPG51bWJlcj5cclxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxyXG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XHJcbi8vIC0gWyRndXR0ZXJzXSAgIDogPHJhdGlvPlxyXG4vLyAtIFskc3ByZWFkXSAgICA6IGZhbHNlL25hcnJvdyB8IHdpZGUgfCB3aWRlclxyXG5AZnVuY3Rpb24gc3VzeSggJHNwYW4sICRsb2NhdGlvbjogZmFsc2UsICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zKSwgJGd1dHRlcnM6IHN1c3ktZ2V0KGd1dHRlcnMpLCAkc3ByZWFkOiBmYWxzZSkge1xyXG4gICAgJGNvbHVtbnM6IHZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xyXG4gICAgJGd1dHRlcnM6IHZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xyXG4gICAgJHNwYW46IHN1c3ktc2xpY2UoJHNwYW4sICRsb2NhdGlvbiwgJGNvbHVtbnMpO1xyXG4gICAgQHJldHVybiBzdXN5LXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQpO1xyXG59XHJcblxyXG4vLyBTdXN5IENvdW50XHJcbi8vIC0tLS0tLS0tLS1cclxuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSBnaXZlbiBsYXlvdXRcclxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxyXG5AZnVuY3Rpb24gc3VzeS1jb3VudCggJGNvbHVtbnM6IHN1c3ktZ2V0KGNvbHVtbnMpKSB7XHJcbiAgICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XHJcbiAgICBAcmV0dXJuIGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSBvciBsZW5ndGgoJGNvbHVtbnMpO1xyXG59XHJcblxyXG4vLyBJcyBTeW1tZXRyaWNhbFxyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG4vLyBSZXR1cm5zIHRydWUgaWYgYSBncmlkIGlzIHN5bW1ldHJpY2FsLlxyXG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XHJcbkBmdW5jdGlvbiBpcy1zeW1tZXRyaWNhbCggJGNvbHVtbnM6IHN1c3ktZ2V0KGNvbHVtbnMpKSB7XHJcbiAgICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XHJcbiAgICBAcmV0dXJuIGlmKHR5cGUtb2YoJGNvbHVtbnMpPT1udW1iZXIsICRjb2x1bW5zLCBudWxsKTtcclxufVxyXG5cclxuLy8gU3VzeSBTdW1cclxuLy8gLS0tLS0tLS1cclxuLy8gRmluZCB0aGUgdG90YWwgc3VtIG9mIGNvbHVtbi11bml0cyBpbiBhIGxheW91dFxyXG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XHJcbi8vIC0gWyRndXR0ZXJzXSAgIDogPHJhdGlvPlxyXG4vLyAtIFskc3ByZWFkXSAgICA6IGZhbHNlL25hcnJvdyB8IHdpZGUgfCB3aWRlclxyXG5AZnVuY3Rpb24gc3VzeS1zdW0oICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zKSwgJGd1dHRlcnM6IHN1c3ktZ2V0KGd1dHRlcnMpLCAkc3ByZWFkOiBmYWxzZSkge1xyXG4gICAgJGNvbHVtbnM6IHZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xyXG4gICAgJGd1dHRlcnM6IHZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xyXG4gICAgJHNwcmVhZDogaWYoJHNwcmVhZD09d2lkZSwgMCwgaWYoJHNwcmVhZD09d2lkZXIsIDEsIC0xKSk7XHJcbiAgICAkZ3V0dGVyLXN1bTogKHN1c3ktY291bnQoJGNvbHVtbnMpICsgJHNwcmVhZCkgKiAkZ3V0dGVycztcclxuICAgICRjb2x1bW4tc3VtOiBpcy1zeW1tZXRyaWNhbCgkY29sdW1ucyk7XHJcbiAgICBAaWYgbm90KCRjb2x1bW4tc3VtKSB7XHJcbiAgICAgICAgQGVhY2ggJGNvbHVtbiBpbiAkY29sdW1ucyB7XHJcbiAgICAgICAgICAgICRjb2x1bW4tc3VtOiAoJGNvbHVtbi1zdW0gb3IgMCkgKyAkY29sdW1uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEByZXR1cm4gJGNvbHVtbi1zdW0rJGd1dHRlci1zdW07XHJcbn1cclxuXHJcbi8vIFZhbGlkYXRlIENvbHVtbiBNYXRoXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbkBmdW5jdGlvbiB2YWxpZC1jb2x1bW4tbWF0aCggJG1hdGgsICRjb2x1bW4td2lkdGgpIHtcclxuICAgIEBpZiAkbWF0aD09c3RhdGljIGFuZCBub3QoJGNvbHVtbi13aWR0aCkge1xyXG4gICAgICAgIEBlcnJvciAnU3RhdGljIG1hdGggcmVxdWlyZXMgYSB2YWxpZCBjb2x1bW4td2lkdGggc2V0dGluZy4nO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAkY29sdW1uLXdpZHRoO1xyXG59XHJcblxyXG4vLyBHZXQgRWRnZVxyXG4vLyAtLS0tLS0tLVxyXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcclxuQGZ1bmN0aW9uIGdldC1lZGdlKCAkc3Bhbikge1xyXG4gICAgJHNwYW46IHBhcnNlLXNwYW4oJHNwYW4pO1xyXG4gICAgJGVkZ2U6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcclxuICAgIEBpZiBub3QoJGVkZ2UpIHtcclxuICAgICAgICAkY291bnQ6IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKTtcclxuICAgICAgICAkbG9jYXRpb246IHN1c3ktZ2V0KGxvY2F0aW9uLCAkc3Bhbik7XHJcbiAgICAgICAgJG46IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcclxuICAgICAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbik9PW51bWJlciwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgIEBpZiAkbj09JGNvdW50IHtcclxuICAgICAgICAgICAgJGVkZ2U6IGZ1bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XHJcbiAgICAgICAgICAgIEBpZiAkbG9jYXRpb249PTEge1xyXG4gICAgICAgICAgICAgICAgJGVkZ2U6IGlmKCRuPT0kY291bnQsIGZ1bGwsIGZpcnN0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAkbG9jYXRpb24rJG4gLSAxPT0kY291bnQge1xyXG4gICAgICAgICAgICAgICAgJGVkZ2U6IGxhc3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAaWYgJGVkZ2U9PWFscGhhIG9yICRlZGdlPT1vbWVnYSB7XHJcbiAgICAgICAgJGVkZ2U6IGlmKCRlZGdlPT1hbHBoYSwgZmlyc3QsIGxhc3QpO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAkZWRnZTtcclxufVxyXG5cclxuLy8gR2V0IExvY2F0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLVxyXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcclxuQGZ1bmN0aW9uIGdldC1sb2NhdGlvbiggJHNwYW4pIHtcclxuICAgICRzcGFuOiBwYXJzZS1zcGFuKCRzcGFuKTtcclxuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcclxuICAgICRlZGdlOiBnZXQtZWRnZSgkc3Bhbik7XHJcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xyXG4gICAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbik9PW51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcclxuICAgICAgICBAaWYgJGVkZ2U9PWZpcnN0IHtcclxuICAgICAgICAgICAgJGxvY2F0aW9uOiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSBpZiAkZWRnZT09bGFzdCB7XHJcbiAgICAgICAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEByZXR1cm4gJGxvY2F0aW9uXHJcbn1cclxuXHJcbi8vIEdldCBTcGFuIFdpZHRoXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcbi8vIFJldHVybiBzcGFuIHdpZHRoLlxyXG4vLyAtICRzcGFuOiA8bWFwPlxyXG5AZnVuY3Rpb24gZ2V0LXNwYW4td2lkdGgoICRzcGFuKSB7XHJcbiAgICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XHJcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xyXG4gICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xyXG4gICAgJGNvbHVtbnM6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcclxuICAgICRndXR0ZXJzOiBzdXN5LWdldChndXR0ZXJzLCAkc3Bhbik7XHJcbiAgICAkc3ByZWFkOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcclxuICAgICRjb250ZXh0OiBudWxsO1xyXG4gICAgJHNwYW4tc3VtOiBudWxsO1xyXG4gICAgJHdpZHRoOiBudWxsO1xyXG4gICAgQGlmICRuPT0nZnVsbCcge1xyXG4gICAgICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xyXG4gICAgICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XHJcbiAgICAgICAgJG46IGlmKCRwb3M9PXNwbGl0IGFuZCAkcm9sZSAhPW5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcclxuICAgIH1cclxuICAgIEBpZiB0eXBlLW9mKCRuKSAhPW51bWJlciB7XHJcbiAgICAgICAgQHdhcm4gXCIoI3t0eXBlLW9mKCRuKX0pICN7JG59IGlzIG5vdCBhIHZhbGlkIHNwYW4uXCI7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiB1bml0bGVzcygkbikge1xyXG4gICAgICAgICRjb250ZXh0OiBzdXN5LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsIGlmKGlzLXNwbGl0KCRzcGFuKSwgd2lkZSwgbmFycm93KSk7XHJcbiAgICAgICAgJHNwcmVhZDogaWYoaXMtaW5zaWRlKCRzcGFuKSwgJHNwcmVhZCBvciB3aWRlLCAkc3ByZWFkKTtcclxuICAgICAgICAkc3Bhbi1zdW06IHN1c3koJG4sICRsb2NhdGlvbiwgJGNvbHVtbnMsICRndXR0ZXJzLCAkc3ByZWFkKTtcclxuICAgICAgICAkX21hdGg6IHN1c3ktZ2V0KG1hdGgsICRzcGFuKTtcclxuICAgICAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkc3Bhbik7XHJcbiAgICAgICAgQGlmICRfbWF0aD09c3RhdGljIHtcclxuICAgICAgICAgICAgJHdpZHRoOiAkc3Bhbi1zdW0gKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICAkd2lkdGg6ICRuO1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAkd2lkdGg7XHJcbn0iLCIvKipcclxuICogV29vY29tbWVyY2U6IEJyZWFkY3J1bWJzXHJcbiAqL1xyXG5cclxuOnJvb3Qge1xyXG4gIC0td2MtYnJlYWRjcnVtYi1wYWRkaW5nLXRiOiAyLjRlbTtcclxuICAtLXdjLWJyZWFkY3J1bWItZm9udC1zaXplOiAxLjRyZW07XHJcbiAgLS13Yy1icmVhZGNydW1iLWZvbnQtd2VpZ2h0OiB2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO1xyXG4gIC0td2MtYnJlYWRjcnVtYi1saW5lLWhlaWdodDogMS4yO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2UtYnJlYWRjcnVtYiB7XHJcbiAgcGFkZGluZzogdmFyKC0td2MtYnJlYWRjcnVtYi1wYWRkaW5nLXRiKSAwO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0td2MtYnJlYWRjcnVtYi1mb250LXNpemUpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS13Yy1icmVhZGNydW1iLWZvbnQtd2VpZ2h0KTtcclxuICBsaW5lLWhlaWdodDogdmFyKC0td2MtYnJlYWRjcnVtYi1saW5lLWhlaWdodCk7XHJcbiAgY29sb3I6IHZhcigtLWJvZHktdGV4dC1jb2xvcik7XHJcblxyXG4gIGRpc3BsYXk6IG5vbmU7IC8vIHRlbXAgaGlkZVxyXG5cclxuICBhIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5kZWxpbWl0ZXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZzogMCAwLjVlbTtcclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb2NvbW1lcmNlOiBCdXR0b25zXHJcbiAqIEFsbCBidXR0b25zIGFyZSBjb25uZWN0ZWQgdG8gdGhlIERTTVAgY29yZSwgZXhjZXB0IHNob3cvaGlkZSBmaWx0ZXIgYnV0dG9uXHJcbiAqIFRPRE86IERpc2N1c3MgZG8gd2UgbmVlZCBhbCB0aG9zZSB2YXJpYWJsZXMgdG8gc3R5bGUgb25lIGJ1dHRvbiAoZmlsdGVyIGJ1dHRvbik/Pz9cclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAvLyBGaWxsdGVyIGJ1dHRvbiBjb25maWd1cmF0aW9uXHJcbiAgICAtLXdjLWZpbHRlci1idG4tcGFkZGluZy10YjogMDtcclxuICAgIC0td2MtZmlsdGVyLWJ0bi1wYWRkaW5nLWxyOiAwO1xyXG4gICAgLS13Yy1maWx0ZXItYnRuLWZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgLS13Yy1maWx0ZXItYnRuLWZvbnQtZmFtaWx5OiB2YXIoLS1idG4tZm9udC1mYW1pbHkpO1xyXG4gICAgLS13Yy1maWx0ZXItYnRuLWZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAtLXdjLWZpbHRlci1idG4tdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIC0td2MtZmlsdGVyLWJ0bi1wcmltYXJ5LWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAtLXdjLWZpbHRlci1idG4tcHJpbWFyeS1iZzogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLXdjLWZpbHRlci1idG4tcHJpbWFyeS1ib3JkZXI6IDA7XHJcbiAgICAtLXdjLWZpbHRlci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgLS13Yy1maWx0ZXItYnRuLWJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAtLXdjLWZpbHRlci1idG4taWNvbi1zaXplOiAyNHB4O1xyXG4gICAgLS13Yy1maWx0ZXItYnRuLXByaW1hcnktY29sb3ItaG92ZXI6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIC0td2MtZmlsdGVyLWJ0bi1wcmltYXJ5LWJnLWhvdmVyOiBcInRyYW5zcGFyZW50XCI7XHJcbiAgICAtLXdjLWZpbHRlci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3ItaG92ZXI6IFwidHJhbnNwYXJlbnRcIjtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWJ1dHRvbiB7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgYm9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJhY2tncm91bmQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi8vIERlZmF1bHQgYnV0dG9ucywgZnJvbSBEU01QIGNvcmVcclxuYS5idXR0b24sXHJcbmJ1dHRvbi5idXR0b24sXHJcbmlucHV0LmJ1dHRvbixcclxuI3Jlc3BvbmQgaW5wdXQjc3VibWl0IHtcclxuICAgIEBleHRlbmQgLndvb2NvbW1lcmNlLWJ1dHRvbjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IHZhcigtLWJ0bi1wYWRkaW5nLXRvcC1ib3R0b20sIDEwcHgpIHZhcigtLWJ0bi1wYWRkaW5nLWxlZnQtcmlnaHQsIDIwcHgpO1xyXG4gICAgbWFyZ2luOiAycHg7IC8vIFRPRE9cclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tYnRuLWZvbnQtc2l6ZSwgMS44cmVtKTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1idG4tZm9udC1mYW1pbHkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWJ0bi1mb250LXdlaWdodCwgNDAwKTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB2YXIoLS1idG4tdGV4dC10cmFuc2Zvcm0sIG5vbmUpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1iZyk7XHJcbiAgICBib3JkZXI6IHZhcigtLWJ0bi1wcmltYXJ5LWJvcmRlcikgc29saWQgdmFyKC0tYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ0bi1ib3JkZXItcmFkaXVzLCAwKTtcclxuICAgIGJveC1zaGFkb3c6IHZhcigtLWJ0bi1ib3gtc2hhZG93LCBub25lKTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1wcmltYXJ5LWJnLWhvdmVyKTtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idG4tcHJpbWFyeS1ib3JkZXItY29sb3ItaG92ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICB9XHJcbiAgICAvLyBUT0RPOiBDaGVjayB0aGlzXHJcbiAgICAvLyAmOmRpc2FibGVkLFxyXG4gICAgLy8gJi5kaXNhYmxlZCxcclxuICAgIC8vICY6ZGlzYWJsZWRbZGlzYWJsZWRdIHtcclxuICAgIC8vICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIC8vICAgb3BhY2l0eTogMC41O1xyXG4gICAgLy8gfVxyXG59XHJcblxyXG4vLyBTaG93L2hpZGUgZmlsdGVycyBidXR0b25cclxuLmZpbHRlci1idG4ge1xyXG4gICAgQGV4dGVuZCAud29vY29tbWVyY2UtYnV0dG9uO1xyXG4gICAgcGFkZGluZzogdmFyKC0td2MtZmlsdGVyLWJ0bi1wYWRkaW5nLXRiLCAxMHB4KSB2YXIoLS13Yy1maWx0ZXItYnRuLXBhZGRpbmctbHIsIDIwcHgpO1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS13Yy1maWx0ZXItYnRuLWZvbnQtc2l6ZSwgMS44cmVtKTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS13Yy1maWx0ZXItYnRuLWZvbnQtZmFtaWx5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS13Yy1maWx0ZXItYnRuLWZvbnQtd2VpZ2h0LCA0MDApO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHZhcigtLXdjLWZpbHRlci1idG4tdGV4dC10cmFuc2Zvcm0sIG5vbmUpO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS13Yy1maWx0ZXItYnRuLXByaW1hcnktY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2MtZmlsdGVyLWJ0bi1wcmltYXJ5LWJnKTtcclxuICAgIGJvcmRlcjogdmFyKC0td2MtZmlsdGVyLWJ0bi1wcmltYXJ5LWJvcmRlcikgc29saWQgdmFyKC0td2MtZmlsdGVyLWJ0bi1wcmltYXJ5LWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS13Yy1maWx0ZXItYnRuLWJvcmRlci1yYWRpdXMsIDApO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13Yy1maWx0ZXItYnRuLXByaW1hcnktY29sb3ItaG92ZXIpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13Yy1maWx0ZXItYnRuLXByaW1hcnktYmctaG92ZXIpO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXdjLWZpbHRlci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3ItaG92ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICB9XHJcbiAgICBzdmcge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS13Yy1maWx0ZXItYnRuLWljb24tc2l6ZSk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjdlbTtcclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogQ29tcG9zaXRlIFByb2R1Y3RzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICogVE9ETzogRG8gd2UgbmVlZCBwbHVnaW4gZm9yIHRoaXM/XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEJhc2VcclxuICovXHJcblxyXG4uY29tcG9zaXRlX3N1bW1hcnkgLnN1bW1hcnlfZWxlbWVudCB7XHJcbiAgLnN1bW1hcnlfZWxlbWVudF93cmFwcGVyIHtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDAsIDAsIDAsIDApO1xyXG5cclxuICAgICYuc2VsZWN0ZWQsXHJcbiAgICAmLnNlbGVjdGVkOmhvdmVyIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMDMpO1xyXG4gICAgfVxyXG5cclxuICAgICYuZGlzYWJsZWQsXHJcbiAgICAmLmRpc2FibGVkOmhvdmVyIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMCwgMCwgMCwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY29tcG9zaXRlX2Zvcm0ge1xyXG4gIC5jb21wb25lbnQge1xyXG4gICAgLmNvbXBvbmVudF9zdW1tYXJ5IHtcclxuICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY29tcG9zaXRlZF9wcm9kdWN0X2RldGFpbHNfd3JhcHBlciB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG5cclxuICAgICAgICAuY29tcG9zaXRlZF9wcm9kdWN0X2ltYWdlcyB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOm5vdCguc2VsZWN0aW9uX3RodW1ibmFpbF9oaWRkZW4pIC5jb21wb25lbnRfc3VtbWFyeSB7XHJcbiAgICAgIC5jb21wb3NpdGVkX3Byb2R1Y3RfZGV0YWlsc193cmFwcGVyID4gLmRldGFpbHMge1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY29tcG9uZW50X29wdGlvbl90aHVtYm5haWxzIHtcclxuICAgICAgLmNvbXBvbmVudF9vcHRpb25fdGh1bWJuYWlsIHtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAwLCAwLCAwKTtcclxuXHJcbiAgICAgICAgJi5zZWxlY3RlZCxcclxuICAgICAgICAmLnNlbGVjdGVkOmhvdmVyIHtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5zZWxlY3RlZDpub3QoLmxvYWRpbmcpIGJ1dHRvbiB7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAwLCAwLCAwLjAzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuZGlzYWJsZWQsXHJcbiAgICAgICAgJi5kaXNhYmxlZDpob3ZlciB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2VsZWN0X2xhYmVsIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZSxcclxuLndvb2NvbW1lcmNlLXBhZ2Uge1xyXG4gICNjb250ZW50IGRpdi5wcm9kdWN0LFxyXG4gIGRpdi5wcm9kdWN0IHtcclxuICAgIC5jb21wb25lbnQgLmNvbXBvc2l0ZWRfcHJvZHVjdF9pbWFnZXMge1xyXG4gICAgICBAaW5jbHVkZSBzcGFuKDIgb2YgMTApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNvbXBvc2l0ZV9mb3JtIHtcclxuICAuY29tcG9uZW50IHtcclxuICAgICY6bm90KC5zZWxlY3Rpb25fdGh1bWJuYWlsX2hpZGRlbikgLmNvbXBvbmVudF9zdW1tYXJ5IHtcclxuICAgICAgLmNvbXBvc2l0ZWRfcHJvZHVjdF9kZXRhaWxzX3dyYXBwZXIgPiAuZGV0YWlscyB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3BhbihsYXN0IDggb2YgMTApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY29tcG9uZW50X3RhYmxlX2l0ZW0ge1xyXG4gIC5wcm9kdWN0LW5hbWUge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xyXG4gIH1cclxufVxyXG5cclxudGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyLmNvbXBvbmVudF90YWJsZV9pdGVtIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogRGVza3RvcFxyXG4gKi9cclxuXHJcbkBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gIC5jb21wb25lbnRfY29udGFpbmVyX3RhYmxlX2l0ZW0gZGwuY29tcG9zaXRlX2NvbmZpZ3VyYXRpb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHRhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZSB0ci5jb21wb25lbnRfdGFibGVfaXRlbSB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XHJcbiAgfVxyXG5cclxuICAuc3AtcHJvZHVjdC1nYWxsZXJ5LXN0YWNrZWQsXHJcbiAgLndvb2NvbW1lcmNlLXBhZ2UsXHJcbiAgLnBhZ2UtdGVtcGxhdGUtdGVtcGxhdGUtZnVsbHdpZHRoLXBocCB7XHJcbiAgICAjY29udGVudCBkaXYucHJvZHVjdCxcclxuICAgIGRpdi5wcm9kdWN0IHtcclxuICAgICAgLmNvbXBvbmVudCAuY29tcG9zaXRlZF9wcm9kdWN0X2ltYWdlcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgc3BhbigyIG9mIDgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbXBvc2l0ZV9mb3JtIHtcclxuICAgICAgLmNvbXBvbmVudCB7XHJcbiAgICAgICAgJjpub3QoLnNlbGVjdGlvbl90aHVtYm5haWxfaGlkZGVuKSAuY29tcG9uZW50X3N1bW1hcnkge1xyXG4gICAgICAgICAgLmNvbXBvc2l0ZWRfcHJvZHVjdF9kZXRhaWxzX3dyYXBwZXIgPiAuZGV0YWlscyB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4obGFzdCA2IG9mIDgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEhhbmRoZWxkXHJcbiAqL1xyXG5cclxuQGluY2x1ZGUgbWVkaWEoXCI8cGhvbmUtbFwiKSB7XHJcbiAgLndvb2NvbW1lcmNlLFxyXG4gIC53b29jb21tZXJjZS1wYWdlIHtcclxuICAgICNjb250ZW50IGRpdi5wcm9kdWN0LFxyXG4gICAgZGl2LnByb2R1Y3Qge1xyXG4gICAgICAuY29tcG9uZW50IC5jb21wb3NpdGVkX3Byb2R1Y3RfaW1hZ2VzIHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuKDEwIG9mIDEwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbXBvc2l0ZV9mb3JtIHtcclxuICAgIC5jb21wb25lbnQge1xyXG4gICAgICAmOm5vdCguc2VsZWN0aW9uX3RodW1ibmFpbF9oaWRkZW4pIC5jb21wb25lbnRfc3VtbWFyeSB7XHJcbiAgICAgICAgLmNvbXBvc2l0ZWRfcHJvZHVjdF9kZXRhaWxzX3dyYXBwZXIgPiAuZGV0YWlscyB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEwIG9mIDEwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jb21wb25lbnRfc3VtbWFyeSB7XHJcbiAgICAgICAgLmNvbXBvc2l0ZWRfcHJvZHVjdF9kZXRhaWxzX3dyYXBwZXIge1xyXG4gICAgICAgICAgLmNvbXBvc2l0ZWRfcHJvZHVjdF9pbWFnZXMge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogV2lkZ2V0XHJcbiAqL1xyXG5cclxuLndpZGdldC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnkud2lkZ2V0X3Bvc2l0aW9uX2ZpeGVkIHtcclxuICBmb250LXNpemU6IG1zKDEpO1xyXG59XHJcblxyXG4ud2lkZ2V0LndpZGdldF9jb21wb3NpdGVfc3VtbWFyeS53aWRnZXRfcG9zaXRpb25fZml4ZWQgLndpZGdldF9jb21wb3NpdGVfc3VtbWFyeV9wcmljZSB7XHJcbiAgZm9udC1zaXplOiBtcygyKTtcclxufVxyXG5cclxuLndpZGdldC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnkud2lkZ2V0X3Bvc2l0aW9uX2ZpeGVkIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfY29udGVudCB7XHJcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgbWF4LXdpZHRoOiAxMDY0cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDAgbXMoNSk7XHJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbn1cclxuXHJcbi8vQGluY2x1ZGUgc3VzeS1tZWRpYSAobWF4LXdpZHRoICRjb250YWluZXItd2lkdGgpIHtcclxuQG1lZGlhIChtYXgtd2lkdGg6IGNhbGModmFyKC0tY29udGVudC13aWR0aCkgKyB2YXIoLS1wYWdlLWd1dHRlciwgMjBweCkgKiAyKSkge1xyXG4gIC53aWRnZXQud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5LndpZGdldF9wb3NpdGlvbl9maXhlZCAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X2NvbnRlbnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IG1zKDUpO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBtcyg1KTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYShcIjxwaG9uZS1sXCIpIHtcclxuICAud2lkZ2V0LndpZGdldF9jb21wb3NpdGVfc3VtbWFyeS53aWRnZXRfcG9zaXRpb25fZml4ZWQgLndpZGdldF9jb21wb3NpdGVfc3VtbWFyeV9jb250ZW50IHtcclxuICAgIG1hcmdpbi1sZWZ0OiBtcygyKTtcclxuICAgIG1hcmdpbi1yaWdodDogbXMoMik7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLndpZGdldF9jb21wb3NpdGVfc3VtbWFyeS53aWRnZXRfcG9zaXRpb25fZml4ZWRcclxuICAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X2NvbnRlbnRcclxuICAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X3VpX3dyYXBwZXJcclxuICA+IGRpdiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbn1cclxuXHJcbi53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnkud2lkZ2V0X3Bvc2l0aW9uX2ZpeGVkIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfY29udGVudCB7XHJcbiAgLndpZGdldF9jb21wb3NpdGVfc3VtbWFyeV9kZXRhaWxzX3dyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgc3Bhbig5IG9mIDEyKTtcclxuICB9XHJcblxyXG4gIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfdWlfd3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKGxhc3QgMyBvZiAxMik7XHJcbiAgfVxyXG59XHJcblxyXG4ucmlnaHQtc2lkZWJhciAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5LndpZGdldF9wb3NpdGlvbl9maXhlZCAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X2NvbnRlbnQge1xyXG4gIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfZGV0YWlsc193cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIHNwYW4oOSBvZiAxMik7XHJcbiAgfVxyXG5cclxuICAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X3VpX3dyYXBwZXIge1xyXG4gICAgQGluY2x1ZGUgc3BhbihsYXN0IDMgb2YgMTIpO1xyXG4gIH1cclxufVxyXG5cclxuLmxlZnQtc2lkZWJhciAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5LndpZGdldF9wb3NpdGlvbl9maXhlZCAud2lkZ2V0X2NvbXBvc2l0ZV9zdW1tYXJ5X2NvbnRlbnQge1xyXG4gIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfZGV0YWlsc193cmFwcGVyIHtcclxuICAgIEBpbmNsdWRlIHNwYW4obGFzdCA5IG9mIDEyKTtcclxuICB9XHJcblxyXG4gIC53aWRnZXRfY29tcG9zaXRlX3N1bW1hcnlfdWlfd3JhcHBlciB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKDMgb2YgMTIpO1xyXG4gIH1cclxuXHJcbiAgLmNvbXBvc2l0ZV9idXR0b24ge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogRGVwb3NpdHNcclxuICogVE9ETzogUmVmYWN0b3IgdGhpc1xyXG4gKiBUT0RPOiBEbyB3ZSBuZWVkIHBsdWdpbiBmb3IgdGhpcz9cclxuICovXHJcblxyXG4vKipcclxuICogU3R5bGVcclxuICovXHJcbi53Yy1kZXBvc2l0cy13cmFwcGVyIHtcclxuICAud2MtZGVwb3NpdHMtb3B0aW9uIHtcclxuICAgIGxpIHtcclxuICAgICAgcGFkZGluZzogbXMoLTIpIDFlbTtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIDAuMDEyNSk7XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIDAuMDIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbnB1dCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtcygtMik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53Yy1kZXBvc2l0cy1wYXltZW50LWRlc2NyaXB0aW9uIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gIH1cclxuXHJcbiAgLndjLWRlcG9zaXRzLXBheW1lbnQtcGxhbnMge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuXHJcbiAgICBsaS53Yy1kZXBvc2l0cy1wYXltZW50LXBsYW4ge1xyXG4gICAgICBib3JkZXI6IDFlbSBzb2xpZCByZ2JhKCMwMDAsIDAuMDEyNSk7XHJcbiAgICAgIHBhZGRpbmc6IG1zKDMpO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcblxyXG4gICAgICBpbnB1dCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCMwMDAsIDAuMDEyNSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMWVtIHNvbGlkIHJnYmEoIzAwMCwgMC4wMTI1KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLndjLWRlcG9zaXRzLXBheW1lbnQtcGxhbi1kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxhYmVsIHtcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYud2MtZGVwb3NpdHMtb3B0aW9uYWwge1xyXG4gICAgLndjLWRlcG9zaXRzLXBheW1lbnQtcGxhbnMge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiBtcygzKTtcclxuXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoIzAwMCwgMC4wMjUpO1xyXG4gICAgICAgIHRvcDogLTFweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IFRvcCBGaWx0ZXIgV2lkZ2V0cyAoRmlsdGVycyBhbmQgQ2F0ZWdvcmllcylcclxuICogTk9URTogVG9wIGZpbHRlcnMgd2lsbCBhbHdheXMgYmUgaW4gZm9ybXMgb2YgYSBkcm9wZG93blxyXG4gKi9cclxuXHJcbjpyb290IHt9XHJcblxyXG4uc2hvcC1maWx0ZXJzIC5wcm9kdWN0c19zaG9wX2ZpbHRlciB7XHJcbiAgICAvL2Rpc3BsYXk6IGZsZXg7XHJcbiAgICA+bGkge1xyXG4gICAgICAgIC8vIEZpbHRlciB0aXRsZVxyXG4gICAgICAgID5zcGFuIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAuNWVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDE0cHgsIDEuMDV2dywgMjBweCk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNGVtO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnRvZ2dsZS1maWx0ZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjbGFtcCgxNXB4LCAxLjE0NnZ3LCAyMnB4KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogY2xhbXAoMTVweCwgMS4xNDZ2dywgMjJweCk7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgdG9wOiA0cHg7XHJcbiAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZGMUY2O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgJi5pY29uLWNpcmNsZS1taW51cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5pY29uLWNpcmNsZS1wbHVzIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgID5uYXYge1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgPio6bm90KHNwYW4pIHtcclxuICAgICAgICAgICAgLy8gbWF4LWhlaWdodDogMDtcclxuICAgICAgICAgICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tY29sbGFwc2VkIHtcclxuICAgICAgICAgICAgPnNwYW4ge1xyXG4gICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICYuaWNvbi1jaXJjbGUtbWludXMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLmljb24tY2lyY2xlLXBsdXMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID5uYXYge1xyXG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYud2lkZ2V0X2xheWVyZWRfbmF2X2NsZWFyIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgdG9wOiA3cHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiA0MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0X2xheWVyZWRfbmF2IHtcclxuICAgICAgICBib3JkZXItdG9wOiAycHggZGFzaGVkIHJnYmEoMjA4LCAyMTIsIDIyMiwgMC4zKTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjVweCBzb2xpZCByZ2JhKDQyLCA2MSwgMzYsIDAuNSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgLmNoZWNrYm94ZXMge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNoZWNrYm94ZXMge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAuOGVtO1xyXG4gICAgICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDdweCA4cHggMCAwO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgICYrbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxNHB4LCAxLjA1dncsIDIwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEJveC5cclxuICAgICAgICAgICAgICAgICYrbGFiZWw6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2xhbXAoM3B4LCAwLjI2dncsIDVweCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogY2xhbXAoMTNweCwgMC45M3Z3LCAxOHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2xhbXAoMTNweCwgMC45M3Z3LCAxOHB4KTtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNsYW1wKDEzcHgsIDAuOTN2dywgMThweCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEJveCBob3ZlclxyXG4gICAgICAgICAgICAgICAgJjpob3ZlcitsYWJlbDpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEJveCBjaGVja2VkXHJcbiAgICAgICAgICAgICAgICAmOmNoZWNrZWQrbGFiZWw6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTMnIGhlaWdodD0nMTAnIHZpZXdCb3g9JzAgMCAxMyAxMCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEgNC40NzIyIDQuNjg2IDggMTIgMScgc3Ryb2tlPSclMjMyMTNCOEMnIHN0cm9rZS13aWR0aD0nMicvJTNFJTNDL3N2ZyUzRVwiKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEzJyBoZWlnaHQ9JzEwJyB2aWV3Qm94PScwIDAgMTMgMTAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xIDQuNDcyMiA0LjY4NiA4IDEyIDEnIHN0cm9rZT0nJTIzRkZGRkZGJyBzdHJva2Utd2lkdGg9JzInLyUzRSUzQy9zdmclM0VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2hvcC1maWx0ZXJzIGRldGFpbHNbb3Blbl0gaW5wdXQrbGFiZWw6OmJlZm9yZSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2xvc2UtZmlsdGVyIHtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgc3ZnIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIH1cclxufVxyXG5cclxuLnNob3AtZmlsdGVycyB7XHJcbiAgICAmX19jbG9zZSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBXb29jb21tZXJjZTogRm9ybXNcclxuICogSW5wdXQgZmllbGRzIGFyZSBjb25uZWN0ZWQgdG8gdGhlIERTTVAgY29yZVxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAgIC0td2MtaW5wdXQtbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIC0td2MtbGFiZWwtbWFyZ2luLWJvdHRvbTogMC41ZW07XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1wYWdlOm5vdCgud29vY29tbWVyY2Utc2hvcCkge1xyXG4gICAgLnNpdGUtY29udGVudCB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbGFiZWwtY29sb3IpO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUsIDEuNnJlbSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1sYWJlbC1mb250LXdlaWdodCwgNDAwKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxhYmVsLWxpbmUtaGVpZ2h0LCAxLjUpO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy1sYWJlbC1tYXJnaW4tYm90dG9tLCAwLjVlbSk7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgICAgICBpbnB1dFt0eXBlPVwicGhvbmVcIl0sXHJcbiAgICAgICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcclxuICAgICAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxyXG4gICAgICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcclxuICAgICAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxyXG4gICAgICAgIHRleHRhcmVhLFxyXG4gICAgICAgIHNlbGVjdCwgLy8uc2VsZWN0Mi1jb250YWluZXIsXHJcbiAgICAgICAgLndjLXN0cmlwZS1lbGVtZW50cy1maWVsZCxcclxuICAgICAgICAud2Mtc3RyaXBlLWliYW4tZWxlbWVudC1maWVsZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQtY29sb3IsICNmZmZmZmYpO1xyXG4gICAgICAgICAgICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aCwgMXB4KSBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IsICM2NjY2NjYpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1ib3JkZXItcmFkaXVzLCA1cHgpO1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0taW5wdXQtY29sb3IpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWlucHV0LWZvbnQtc2l6ZSwgMTZweCk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1pbnB1dC1mb250LXdlaWdodCwgNDAwKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXdjLWlucHV0LWxpbmUtaGVpZ2h0KTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1pbnB1dC1wYWRkaW5nLXRvcC1ib3R0b20sIDRweCkgdmFyKC0taW5wdXQtcGFkZGluZy1sZWZ0LXJpZ2h0LCAxMHB4KTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTU1NTU1O1xyXG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmRpc2FibGVkIHtcclxuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NSwgMjUwLCAyNTQsIDAuNik7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjEwLCAyMTYsIDIyNCwgMC41KTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjNzk3OTc5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zZWxlY3QyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAmLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vZm9udC1zaXplOiB2YXIoLS1pbnB1dC1mb250LXNpemUsIDE2cHgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFNpbmNlICdzZWxlY3QnIGRvbid0IGhhdmUgbGluZS1oZWlnaHQsIHdlIGhhY2UgdG8gY2FsY3VsYXRlIGhlaWdodCBiYXNlZCBvbiBmb250IHNpemUsIGxpbmUgaGVpZ2h0LCBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhcclxuICAgICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoIHZhcigtLWlucHV0LWZvbnQtc2l6ZSkgKiB2YXIoLS13Yy1pbnB1dC1saW5lLWhlaWdodCkgKyAodmFyKC0taW5wdXQtcGFkZGluZy10b3AtYm90dG9tKSAqIDIpICsgKHZhcigtLWlucHV0LWJvcmRlci13aWR0aCkgKiAyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0LmVycm9yLWlucHV0IHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS12YWxpZGF0aW9uLWVycm9yLWNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLUxvc3RQYXNzd29yZC5sb3N0X3Bhc3N3b3JkIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1saW5rLWNvbG9yKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUsIDEuNnJlbSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1iYXNlLXRleHQtbGluZS1oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIENoZWNrYm94ZXNcclxuICAgIC53b29jb21tZXJjZS1mb3JtX19sYWJlbC1mb3ItY2hlY2tib3gge1xyXG4gICAgICAgIEBleHRlbmQgLndvb2NvbW1lcmNlLWNoZWNrYm94LXdyYXBwZXI7XHJcbiAgICB9XHJcbiAgICBpbnB1dC53b29jb21tZXJjZS1mb3JtX19pbnB1dC1jaGVja2JveCB7XHJcbiAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2UtY2hlY2tib3gtaW5wdXQ7XHJcbiAgICAgICAgJitzcGFuIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2UtY2hlY2tib3gtbGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgICYrc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS1jaGVja2JveC1sYWJlbC1jaGVja2VkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYrLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRmN2U4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmVtYWlsLW5vdGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgLy8gcmlnaHQ6IDA7XHJcbiAgICAgICAgLy8gdG9wOiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MDBtcyBlYXNlLW91dDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50b29sdGlwIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMmQ4ZTA7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYygxMDAlICsgMTBweCk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMDBweDtcclxuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkICNkMmQ4ZTA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweCAwO1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAtNXB4O1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBjdXJzb3I6IGhlbHA7XHJcbiAgICAgICAgICAgIC50b29sdGlwIHtcclxuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBQYXltZW50IGNoZWNrYm94XHJcbi5wYXltZW50X2JveCB7XHJcbiAgICAud29vY29tbWVyY2UtdmFsaWRhdGVkIHtcclxuICAgICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS1jaGVja2JveC13cmFwcGVyO1xyXG4gICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2UtY2hlY2tib3gtaW5wdXQ7XHJcbiAgICAgICAgICAgICY6Y2hlY2tlZCtsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS1jaGVja2JveC1sYWJlbC1jaGVja2VkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2UtY2hlY2tib3gtbGFiZWw7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gVE9ETzogT2xkIGNvZGVcclxuLmZvcm0tcm93IHtcclxuICAgIGxhYmVsIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIGlucHV0LFxyXG4gICAgdGV4dGFyZWEsXHJcbiAgICBzZWxlY3Qge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxyXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gICAgJi5jcmVhdGUtYWNjb3VudCB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi53b29jb21tZXJjZS12YWxpZGF0ZWQge1xyXG4gICAgICAgIGlucHV0LmlucHV0LXRleHQge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzdWNjZXNzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYud29vY29tbWVyY2UtaW52YWxpZCB7XHJcbiAgICAgICAgaW5wdXQuaW5wdXQtdGV4dCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGVycm9yICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0LmlucHV0LWNoZWNrYm94IHtcclxuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICRlcnJvcjtcclxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uIHtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZXJyb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vICYuZGlzYWJsZWQge1xyXG4gICAgLy8gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8vICAgICBpbnB1dCB7XHJcbiAgICAvLyAgICAgICAgIC8vIGZpbHRlcjogZ3JheXNjYWxlKDEpO1xyXG4gICAgLy8gICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIC8vICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAvLyAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAvLyAgICAgICAgIGJvcmRlci1jb2xvcjogI2VlZTtcclxuICAgIC8vICAgICAgICAgY29sb3I6ICMzMzM7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gfVxyXG59XHJcblxyXG4uZm9ybS1yb3ctd2lkZSB7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZW0ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgfVxyXG4gICAgc21hbGwge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4ucmVxdWlyZWQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICRlcnJvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFzc3dvcmQtaW5wdXQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5zaG93LXBhc3N3b3JkLWlucHV0IHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI4JyBoZWlnaHQ9JzE1JyB2aWV3Qm94PScwIDAgMjggMTUnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIG9wYWNpdHk9JzAuNScgZD0nTTE0IDBDNy4zMDI5NSAwIDEuNjY5MTcgMy4xNzk1OSAwIDcuNUMxLjY2OTMzIDExLjgyMDQgNy4zMDI5NSAxNSAxNCAxNUMyMC42OTcxIDE1IDI2LjMzMTQgMTEuODIwNCAyOCA3LjVDMjYuMzMxMSAzLjE3OTY0IDIwLjY5NzEgMCAxNCAwWk0xNCAxMy4zMDM2QzEwLjY4MjMgMTMuMzAzNiA3Ljk5MjQ5IDEwLjcwNTMgNy45OTI0OSA3LjVDNy45OTI0OSA0LjI5NDY3IDEwLjY4MjUgMS42OTY0MiAxNCAxLjY5NjQyQzE3LjMxODMgMS42OTY0MiAyMC4wMDc1IDQuMjk0NjcgMjAuMDA3NSA3LjVDMjAuMDA3NSAxMC43MDUzIDE3LjMxODIgMTMuMzAzNiAxNCAxMy4zMDM2Wk0xNCAzLjgwMTU0QzExLjg4NiAzLjgwMTU0IDEwLjE3MTcgNS40NTczIDEwLjE3MTcgNy40OTk5QzEwLjE3MTcgOS41NDI0OSAxMS44ODYxIDExLjE5ODMgMTQgMTEuMTk4M0MxNi4xMTM5IDExLjE5ODMgMTcuODI4MyA5LjU0MjQ5IDE3LjgyODMgNy40OTk5QzE3LjgyODMgNS40NTczIDE2LjExMzkgMy44MDE1NCAxNCAzLjgwMTU0VjMuODAxNTRaJyBmaWxsPSclMjMyMTNCOEMnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWlucHV0LWZvbnQtc2l6ZSkgKiB2YXIoLS13Yy1pbnB1dC1saW5lLWhlaWdodCkpO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDIwcHg7XHJcbiAgICB0b3A6IHZhcigtLWlucHV0LXBhZGRpbmctdG9wLWJvdHRvbSk7XHJcbiAgICB3aWR0aDogMjJweDtcclxuICAgICYuZGlzcGxheS1wYXNzd29yZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjgnIGhlaWdodD0nMjEnIHZpZXdCb3g9JzAgMCAyOCAyMScgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggb3BhY2l0eT0nMC41JyBkPSdNMTQgM0M3LjMwMjk1IDMgMS42NjkxNyA2LjE3OTU5IDAgMTAuNUMxLjY2OTMzIDE0LjgyMDQgNy4zMDI5NSAxOCAxNCAxOEMyMC42OTcxIDE4IDI2LjMzMTQgMTQuODIwNCAyOCAxMC41QzI2LjMzMTEgNi4xNzk2NCAyMC42OTcxIDMgMTQgM1pNMTQgMTYuMzAzNkMxMC42ODIzIDE2LjMwMzYgNy45OTI0OSAxMy43MDUzIDcuOTkyNDkgMTAuNUM3Ljk5MjQ5IDcuMjk0NjcgMTAuNjgyNSA0LjY5NjQyIDE0IDQuNjk2NDJDMTcuMzE4MyA0LjY5NjQyIDIwLjAwNzUgNy4yOTQ2NyAyMC4wMDc1IDEwLjVDMjAuMDA3NSAxMy43MDUzIDE3LjMxODIgMTYuMzAzNiAxNCAxNi4zMDM2Wk0xNCA2LjgwMTU0QzExLjg4NiA2LjgwMTU0IDEwLjE3MTcgOC40NTczIDEwLjE3MTcgMTAuNDk5OUMxMC4xNzE3IDEyLjU0MjUgMTEuODg2MSAxNC4xOTgzIDE0IDE0LjE5ODNDMTYuMTEzOSAxNC4xOTgzIDE3LjgyODMgMTIuNTQyNSAxNy44MjgzIDEwLjQ5OTlDMTcuODI4MyA4LjQ1NzMgMTYuMTEzOSA2LjgwMTU0IDE0IDYuODAxNTRWNi44MDE1NFonIGZpbGw9JyUyMzIxM0I4QycvJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTIuNjAzMTMgMS4yMDAzOUMyLjkzNDUgMC43NTg1NjMgMy41NjEzIDAuNjY5MDIgNC4wMDMxMyAxLjAwMDM5TDI1LjYwMzEgMTcuMjAwNEMyNi4wNDUgMTcuNTMxOCAyNi4xMzQ1IDE4LjE1ODYgMjUuODAzMSAxOC42MDA0QzI1LjQ3MTggMTkuMDQyMiAyNC44NDUgMTkuMTMxOCAyNC40MDMxIDE4LjgwMDRMMi44MDMxMyAyLjYwMDM5QzIuMzYxMyAyLjI2OTAyIDIuMjcxNzUgMS42NDIyMiAyLjYwMzEzIDEuMjAwMzlaJyBmaWxsPSd3aGl0ZScvJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTEuNjAzMTMgMi4yMDAzOUMxLjkzNDUgMS43NTg1NiAyLjU2MTMgMS42NjkwMiAzLjAwMzEzIDIuMDAwMzlMMjQuNjAzMSAxOC4yMDA0QzI1LjA0NSAxOC41MzE4IDI1LjEzNDUgMTkuMTU4NiAyNC44MDMxIDE5LjYwMDRDMjQuNDcxOCAyMC4wNDIyIDIzLjg0NSAyMC4xMzE4IDIzLjQwMzEgMTkuODAwNEwxLjgwMzEzIDMuNjAwMzlDMS4zNjEzIDMuMjY5MDIgMS4yNzE3NSAyLjY0MjIyIDEuNjAzMTMgMi4yMDAzOVonIGZpbGw9JyUyMzhBOTNBRCcvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQ2hlY2tib3ggc2hhcmVkIGNsYXNzZXNcclxuLndvb2NvbW1lcmNlLWNoZWNrYm94LXdyYXBwZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAzNXB4OyAvLyBUT0RPXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1jaGVja2JveC1pbnB1dCB7XHJcbiAgICBoZWlnaHQ6IDEycHg7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMTJweDtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWNoZWNrYm94LWxhYmVsIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIC8qIGlPUyBTYWZhcmkgKi9cclxuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC8qIEtvbnF1ZXJvciBIVE1MICovXHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLyogT2xkIHZlcnNpb25zIG9mIEZpcmVmb3ggKi9cclxuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC8qIEludGVybmV0IEV4cGxvcmVyL0VkZ2UgKi9cclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAvKiBTYWZhcmkgKi9cclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgJjpiZWZvcmUsXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHRvcDogMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTUuODk3JyBoZWlnaHQ9JzEyLjIyJyB2aWV3Qm94PScwIDAgMTUuODk3IDEyLjIyJyUzRSUzQ3BhdGggaWQ9J9Ca0L7QvdGC0YPRgF85NTgnIGRhdGEtbmFtZT0n0JrQvtC90YLRg9GAIDk1OCcgZD0nTTE1MjIuMjQyLDY5Ny4wNDFsNC4zODQsNC4zODQsMTAuMS0xMC4xJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgtMTUyMS41MzUgLTY5MC42MTkpJyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzE4NDQ4NCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBzdHJva2Utd2lkdGg9JzInLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICBoZWlnaHQ6IDEycHg7XHJcbiAgICAgICAgbGVmdDogMnB4O1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdG9wOiAzcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWJhc2UtdHJhbnNpdGlvbikgZWFzZTtcclxuICAgICAgICB3aWR0aDogMTRweDtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHRvcDogNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWNoZWNrYm94LWxhYmVsLWNoZWNrZWQge1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFNlbGVjdDIgcGx1Z2luIHN0eWxpbmdcclxuLy8uc2VsZWN0Mi1jb250YWluZXIge1xyXG4vLyAgICBoZWlnaHQ6IDQ1cHg7XHJcbi8vICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbi8vICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvcjIpO1xyXG4vLyAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcclxuLy99XHJcbi8vXHJcbi8vLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcclxuLy8gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbi8vICAgIGJvcmRlcjogbm9uZTtcclxuLy8gICAgYm9yZGVyLXJhZGl1czogMDtcclxuLy8gICAgaGVpZ2h0OiAxMDAlO1xyXG4vLyAgICBtYXJnaW46IDA7XHJcbi8vXHJcbi8vICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xyXG4vLyAgICAgICAgY29sb3I6IHZhcigtLWlucHV0LWNvbG9yKTtcclxuLy8gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0taW5wdXQtZm9udC1zaXplLCAxNnB4KTtcclxuLy8gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1pbnB1dC1mb250LXdlaWdodCwgNDAwKTtcclxuLy8gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4vLyAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4vLyAgICB9XHJcbi8vXHJcbi8vICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xyXG4vLyAgICAgICAgdG9wOiA1MCU7XHJcbi8vICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbi8vICAgIH1cclxuLy99XHJcbi8vIFN0cmlwZSBpbnB1dCBmaWVsZHNcclxuLy8gVE9ETzogRmluZCBiZXR0ZXIgc29sdXRpb25cclxuLndjLXN0cmlwZS1lbGVtZW50cy1maWVsZCxcclxuLndjLXN0cmlwZS1pYmFuLWVsZW1lbnQtZmllbGQge1xyXG4gICAgaGVpZ2h0OiBjYWxjKCB2YXIoLS1pbnB1dC1mb250LXNpemUpICogdmFyKC0td2MtaW5wdXQtbGluZS1oZWlnaHQpICsgKHZhcigtLWlucHV0LXBhZGRpbmctdG9wLWJvdHRvbSkgKiAyKSArICh2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgpICogMikpO1xyXG4gICAgZGl2LFxyXG4gICAgaWZyYW1lIHtcclxuICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIH1cclxufVxyXG5cclxuLndjX3BheW1lbnRfbWV0aG9kcyxcclxuLnBheW1lbnRfbWV0aG9kcyB7XHJcbiAgICAucGF5bWVudF9ib3gsXHJcbiAgICAud29vY29tbWVyY2UtUGF5bWVudE1ldGhvZCB7XHJcbiAgICAgICAgcCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZvcm0tcm93IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tbGFiZWwtY29sb3IpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSxcclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiBtYXgtY29udGVudDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICYuaW5wdXQtdGV4dCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAyNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKipcclxuICogV29vQ29tbWVyY2U6IE1lbWJlcnNoaXBzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICogVE9ETzogRG8gd2UgbmVlZCBwbHVnaW4gZm9yIHRoaXM/XHJcbiAqL1xyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IE1peCBhbmQgTWF0Y2hcclxuICogVE9ETzogUmVmYWN0b3IgdGhpc1xyXG4gKiBUT0RPOiBEbyB3ZSBuZWVkIHBsdWdpbiBmb3IgdGhpcz9cclxuICovXHJcblxyXG4ubW5tX3RhYmxlIHtcclxuICAucHJvZHVjdC10aHVtYm5haWwsXHJcbiAgLnByb2R1Y3QtbmFtZSxcclxuICAucHJvZHVjdC1xdWFudGl0eSxcclxuICAuY29udGFpbmVyLXF1YW50aXR5IHtcclxuICAgIHBhZGRpbmc6IG1zKC0yKSBtcygtMSkgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5tbm1faXRlbSB7XHJcbiAgICBpbWcge1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucHJvZHVjdC1uYW1lIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG59XHJcblxyXG4uY2FydCxcclxuLnNob3BfdGFibGUge1xyXG4gIC5tbm1fdGFibGVfaXRlbSB7XHJcbiAgICAucHJvZHVjdC10aHVtYm5haWwge1xyXG4gICAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogbXMoNSkgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tbm1fdGFibGVfaXRlbV9pbmRlbnQge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtbmFtZSxcclxuICAgIC5wcm9kdWN0LXByaWNlLFxyXG4gICAgLnByb2R1Y3QtcXVhbnRpdHkge1xyXG4gICAgICBmb250LXNpemU6IDFlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5tbm1faW1hZ2Uge1xyXG4gIG1heC13aWR0aDogbXMoNik7XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBOb3RpZmljYXRpb24gYm94ZXMgKGNvdXBvbnMsIG5vdGljZXMgZXRjKVxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAgIC0td2Mtbm90aWZpY2F0aW9uLWJveC1tYXJnaW4tYjogMXJlbTtcclxuICAgIC0td2Mtbm90aWZpY2F0aW9uLWJveC1wYWRkaW5nLWxyOiA0LjhyZW07XHJcbiAgICAtLXdjLW5vdGlmaWNhdGlvbi1ib3gtcGFkZGluZy10YjogMXJlbTtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAtLXdjLW5vdGlmaWNhdGlvbi1ib3gtbWFyZ2luLWI6IDNyZW07XHJcbiAgICAgICAgLS13Yy1ub3RpZmljYXRpb24tYm94LXBhZGRpbmctbHI6IDRyZW07XHJcbiAgICAgICAgLS13Yy1ub3RpZmljYXRpb24tYm94LXBhZGRpbmctdGI6IDJyZW07XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAtLXdjLW5vdGlmaWNhdGlvbi1ib3gtbWFyZ2luLWI6IDIuNXJlbTtcclxuICAgICAgICAtLXdjLW5vdGlmaWNhdGlvbi1ib3gtcGFkZGluZy1scjogM3JlbTtcclxuICAgICAgICAtLXdjLW5vdGlmaWNhdGlvbi1ib3gtcGFkZGluZy10YjogMnJlbTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQ291cG9uIGluZm9cclxuQGluY2x1ZGUgbWVkaWEoXCI+cGhvbmUtbFwiKSB7XHJcbiAgICAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlIC53b29jb21tZXJjZS1pbmZvOmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy93b29jb21tZXJjZS9pY29uLWNvdXBvbi5zdmcpO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDIxcHg7XHJcbiAgICAgICAgd2lkdGg6IDMxcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIEFwcGx5IGNvdXBvbiBib3hcclxuLndvb2NvbW1lcmNlLWZvcm0tY291cG9uIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0td2Mtbm90aWZpY2F0aW9uLWJveC1tYXJnaW4tYik7XHJcbiAgICA+cDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICB9XHJcbiAgICAuZm9ybS1yb3ctZmlyc3Qge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMS4yNWVtO1xyXG4gICAgICAgIHdpZHRoOiAyMjNweDsgLy8gVE9ET1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBOb3RpY2VzIGJveFxyXG4ud29vY29tbWVyY2Utbm90aWNlcy13cmFwcGVyIHtcclxuICAgIGJvdHRvbTogNDBweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA0MDBtcyBlYXNlLW91dCwgb3BhY2l0eSA0MDBtcyBlYXNlLW91dDtcclxuICAgIHotaW5kZXg6IDk5OTtcclxuICAgID4qIHtcclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgIH1cclxuICAgICY6ZW1wdHkge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICY+W2NsYXNzXj1cIndvb2NvbW1lcmNlLVwiXTpiZWZvcmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzEzJyB2aWV3Qm94PScwIDAgMTIgMTMnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J005Ljc4ODA3IDExLjkwOTlMNiA4LjEyMTgzTDIuMjExOTMgMTEuOTA5OUMxLjc5NTI0IDEyLjMyNjYgMS4xMTMzOSAxMi4zMjY2IDAuNjk2Njk5IDExLjkwOTlDMC4yODAwMTEgMTEuNDkzMiAwLjI4MDAxMiAxMC44MTE0IDAuNjk2NyAxMC4zOTQ3TDQuNDg0NzcgNi42MDY2TDAuNjk2Njk5IDIuODE4NTNDMC4yODAwMTEgMi40MDE4NCAwLjI4MDAxMSAxLjcxOTk5IDAuNjk2Njk5IDEuMzAzM0MxLjExMzM5IDAuODg2NjEzIDEuNzk1MjQgMC44ODY2MTMgMi4yMTE5MyAxLjMwMzNMNiA1LjA5MTM3TDkuNzg4MDcgMS4zMDMzQzEwLjIwNDggMC44ODY2MTMgMTAuODg2NiAwLjg4NjYxMyAxMS4zMDMzIDEuMzAzM0MxMS43MiAxLjcxOTk5IDExLjcyIDIuNDAxODQgMTEuMzAzMyAyLjgxODUzTDcuNTE1MjMgNi42MDY2TDExLjMwMzMgMTAuMzk0N0MxMS43MiAxMC44MTE0IDExLjcyIDExLjQ5MzIgMTEuMzAzMyAxMS45MDk5QzEwLjg4NjYgMTIuMzI2NiAxMC4yMDQ4IDEyLjMyNjYgOS43ODgwNyAxMS45MDk5WicgZmlsbD0nY3VycmVudENvbG9yJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTVweDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICByaWdodDogMTVweDtcclxuICAgICAgICB0b3A6IC0yMHB4O1xyXG4gICAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgcmlnaHQ6IDVweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICA+KiB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLW5vdGlmaWNhdGlvbi1ib3gtbWFyZ2luLWIpO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXdjLW5vdGlmaWNhdGlvbi1ib3gtcGFkZGluZy10YikgdmFyKC0td2Mtbm90aWZpY2F0aW9uLWJveC1wYWRkaW5nLWxyKTtcclxuICAgIH1cclxuICAgICYuaGlkZSB7XHJcbiAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIEVycm9yIGJveFxyXG4ud29vY29tbWVyY2UtZXJyb3IgbGkge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLnNpbmdsZS1wcm9kdWN0IHtcclxuICAgIC53b29jb21tZXJjZS1tZXNzYWdlIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1tZXNzYWdlLFxyXG4ud29vY29tbWVyY2UtaW5mbyxcclxuLndvb2NvbW1lcmNlLWVycm9yLFxyXG4ud29vY29tbWVyY2Utbm9yZXZpZXdzLFxyXG5wLm5vLWNvbW1lbnRzIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tYm9keS10ZXh0LWNvbG9yKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBnYXA6IDVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLW5vdGlmaWNhdGlvbi1ib3gtbWFyZ2luLWIpO1xyXG4gICAgcGFkZGluZzogdmFyKC0td2Mtbm90aWZpY2F0aW9uLWJveC1wYWRkaW5nLXRiKSB2YXIoLS13Yy1ub3RpZmljYXRpb24tYm94LXBhZGRpbmctbHIpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgfVxyXG4gICAgYSB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICB9XHJcbiAgICBhLnJlZ3VsYXItbGluayB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogMCAtMXB4O1xyXG4gICAgfVxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgIC8vbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgb3JkZXI6IDE7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIH1cclxufVxyXG5cclxudWwud29vY29tbWVyY2UtZXJyb3Ige1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcclxuICAgIC53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXIge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICA+KiB7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLW1lc3NhZ2UsXHJcbiAgICAud29vY29tbWVyY2UtaW5mbyxcclxuICAgIC53b29jb21tZXJjZS1lcnJvcixcclxuICAgIC53b29jb21tZXJjZS1ub3Jldmlld3Mge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgICBwYWRkaW5nOiAycmVtIDNyZW07XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKipcclxuICogV29vY29tbWVyY2U6IFNpbmdsZSBwcm9kdWN0IGdhbGxlcnkgc2VjdGlvblxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAtLXdjLWdhbGxlcnktdGh1bWItaXRlbXM6IDY7XHJcbiAgLS13Yy1nYWxsZXJ5LXRodW1iLXdpZHRoOiBjYWxjKDEwMCUgLyA4KTsgLy8gOCA9IHZhcigtLXdjLWdhbGxlcnktdGh1bWItaXRlbXMpICsgMlxyXG4gIC0td2MtZ2FsbGVyeS10aHVtYi1hc3BlY3QtcmF0aW86IDEvMTtcclxuICAtLXdjLWdhbGxlcnktdGh1bWItYm9yZGVyOiAxcHggc29saWQ7XHJcbiAgLS13Yy1nYWxsZXJ5LXRodW1iLWJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gIC0td2MtZ2FsbGVyeS10aHVtYi1pY29uLXNpemU6IDIwcHg7XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgIC0td2MtZ2FsbGVyeS10aHVtYi1pdGVtczogNDtcclxuICAgIC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aDogY2FsYygxMDAlIC8gNik7IC8vIDYgPSB2YXIoLS13Yy1nYWxsZXJ5LXRodW1iLWl0ZW1zKSArIDJcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgLS13Yy1nYWxsZXJ5LXRodW1iLWl0ZW1zOiAzO1xyXG4gICAgLS13Yy1nYWxsZXJ5LXRodW1iLXdpZHRoOiBjYWxjKDEwMCUgLyA1KTsgLy8gNSA9IHZhcigtLXdjLWdhbGxlcnktdGh1bWItaXRlbXMpICsgMlxyXG4gIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAuc3dpcGVyLXdyYXBwZXIge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC56b29tSW1nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAvLyBMYXJnZSBpbWFnZXNcclxuICAmX19pbWFnZSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAvLyBUaHVtYm5haWwgbmF2aWdhdGlvblxyXG4gICZfX25hdiB7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAuc3dpcGVyLXdyYXBwZXIge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2Uge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgYm9yZGVyOiB2YXIoLS13Yy1nYWxsZXJ5LXRodW1iLWJvcmRlcikgdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi1hc3BlY3QtcmF0aW8pO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICBpbWcge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zd2lwZXItc2xpZGUtdGh1bWItYWN0aXZlIHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS13Yy1nYWxsZXJ5LXRodW1iLWJvcmRlci1jb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLnN3aXBlci1idXR0b24tbmV4dCxcclxuICAgIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgICBjb2xvcjogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi1ib3JkZXItY29sb3IpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyAvLyBUT0RPXHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXdjLWdhbGxlcnktdGh1bWItYm9yZGVyLWNvbG9yKTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWdhbGxlcnktdGh1bWItaWNvbi1zaXplKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gSG9yaXpvbnRhbCB0aHVtYm5haWwgbmF2aWdhdGlvblxyXG4uaG9yaXpvbnRhbCAud29vY29tbWVyY2UtcHJvZHVjdC1nYWxsZXJ5X19uYXYge1xyXG4gIHBhZGRpbmctbGVmdDogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcbiAgcGFkZGluZy1yaWdodDogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcblxyXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX2ltYWdlIHtcclxuICAgIC8vIEFkZCB0aGlzIHRvIHByZXZlbnQgd2lkdGggcmVzaXplIGlmIGxlc3MgdGhhbiA2IHRodW1ibmFpbHNcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC8gdmFyKC0td2MtZ2FsbGVyeS10aHVtYi1pdGVtcykpICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuc3dpcGVyLWJ1dHRvbi1uZXh0LFxyXG4gIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB3aWR0aDogY2FsYyhcclxuICAgICAgdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCkgLSAxMHB4XHJcbiAgICApOyAvLyAxMHB4IHJlcHJlc2VudHMgc2xpY2sgc2xpZGVyIG1hcmdpbiBiZXR3ZWVuIHRodW1ic1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgfVxyXG5cclxuICAuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLnN3aXBlci1idXR0b24tcHJldiB7XHJcbiAgICBsZWZ0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8gVmVydGljYWwgbmF2aWdhdGlvblxyXG4udmVydGljYWwge1xyXG4gIC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aDogNzVweDtcclxuICAtLXdjLWdhbGxlcnktdGh1bWItaGVpZ2h0OiA3NXB4O1xyXG4gIC0td2MtZ2FsbGVyeS10aHVtYi10b3RhbC1pdGVtczogY2FsYyhcclxuICAgIHZhcigtLXdjLWdhbGxlcnktdGh1bWItaXRlbXMpICsgMlxyXG4gICk7IC8vICsyIGlzIGZvciBwcmV2IGFuZCBuZXh0IGJ1dHRvbnNcclxuXHJcbiAgJi53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnkge1xyXG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXdjLWdhbGxlcnktdGh1bWItaGVpZ2h0KSAqIHZhcigtLXdjLWdhbGxlcnktdGh1bWItdG90YWwtaXRlbXMpKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgfVxyXG5cclxuICAvLyBUaHVtYm5haWwgbmF2aWdhdGlvblxyXG4gIC53b29jb21tZXJjZS1wcm9kdWN0LWdhbGxlcnlfX25hdiB7XHJcbiAgICB3aWR0aDogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcbiAgICBmbGV4OiAwIDAgdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0td2MtZ2FsbGVyeS10aHVtYi13aWR0aCk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblxyXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3QtZ2FsbGVyeV9faW1hZ2Uge1xyXG4gICAgICAvLyBBZGQgdGhpcyB0byBwcmV2ZW50IHdpZHRoIHJlc2l6ZSBpZiBsZXNzIHRoYW4gNiB0aHVtYm5haWxzXHJcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAvIHZhcigtLXdjLWdhbGxlcnktdGh1bWItaXRlbXMpKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5zd2lwZXItYnV0dG9uLW5leHQsXHJcbiAgICAuc3dpcGVyLWJ1dHRvbi1wcmV2IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogY2FsYyhcclxuICAgICAgICB2YXIoLS13Yy1nYWxsZXJ5LXRodW1iLWhlaWdodCkgLSAxMHB4XHJcbiAgICAgICk7IC8vIDEwcHggcmVwcmVzZW50cyBzbGljayBzbGlkZXIgbWFyZ2luIGJldHdlZW4gdGh1bWJzXHJcbiAgICAgIGxlZnQ6IGluaXRpYWw7XHJcbiAgICAgIHJpZ2h0OiBpbml0aWFsO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnN3aXBlci1idXR0b24tbmV4dCB7XHJcbiAgICAgIHRvcDogaW5pdGlhbDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zd2lwZXItYnV0dG9uLXByZXYge1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogUGhvdG9ncmFwaHlcclxuICogVE9ETzogUmVmYWN0b3IgdGhpc1xyXG4gKiBUT0RPOiBEbyB3ZSBuZWVkIHBsdWdpbiBmb3IgdGhpcz9cclxuICovXHJcblxyXG4ud29vY29tbWVyY2UsXHJcbi53b29jb21tZXJjZS1wYWdlIHtcclxuICB1bC5wcm9kdWN0cyB7XHJcbiAgICBsaS5wcm9kdWN0LXR5cGUtcGhvdG9ncmFwaHkge1xyXG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgICAgIC5waG90b2dyYXBoeS1pbWFnZSxcclxuICAgICAgLnBob3RvZ3JhcGh5LWNvbnRlbnQge1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucGhvdG9ncmFwaHktaW1hZ2Uge1xyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5waG90b2dyYXBoeS1za3Uge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNrdSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBob3RvZ3JhcGh5LXByb2R1Y3RzIHtcclxuICAgIC50b29scyB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IG1zKDUpO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDI1KTtcclxuICAgICAgcGFkZGluZzogMWVtIDFlbSAxZW0gbXMoMyk7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBQcm9kdWN0IFJlY29tbWVuZGF0aW9uc1xyXG4gKiBUT0RPOiBSZWZhY3RvciB0aGlzXHJcbiAqIFRPRE86IERvIHdlIG5lZWQgcGx1Z2luIGZvciB0aGlzP1xyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBCYXNlXHJcbiAqL1xyXG4ud2MtcHJsLXJlY29tbWVuZGF0aW9ucyB7XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiBtcygzKTtcclxuICB9XHJcblxyXG4gICYud2MtcHJsLXBhZ2UtcHJvZHVjdF9kZXRhaWxzIHtcclxuICAgICYud2MtcHJsLWxvY2F0aW9uLWJlZm9yZV90YWJzLFxyXG4gICAgJi53Yy1wcmwtbG9jYXRpb24tYWZ0ZXJfdGFicyB7XHJcbiAgICAgIGgyIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiBtcygxKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLndjLXBybC1sb2NhdGlvbi1hZnRlcl9zdW1tYXJ5IHtcclxuICAgICAgbWFyZ2luLXRvcDogbXMoMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLndjLXBybC1sb2NhdGlvbi1hZnRlcl9wYXlfYnV0dG9uIHtcclxuICAgIG1hcmdpbi10b3A6IG1zKDIpO1xyXG4gIH1cclxuXHJcbiAgJi53Yy1wcmwtcGFnZS1jaGVja291dCB7XHJcbiAgICAmLndjLXBybC1sb2NhdGlvbi1vcmRlcl9yZXZpZXcge1xyXG4gICAgICBtYXJnaW4tdG9wOiBtcyg1KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBQcm9kdWN0IFJldmlld3MgUHJvXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICogVE9ETzogRG8gd2UgbmVlZCBwbHVnaW4gZm9yIHRoaXM/XHJcblxyXG4gXHJcbiAqIFRPRE86IFdlIHNob3VsZCBkZWxldGUgdGhpcyEhIVxyXG4gKi9cclxuXHJcbi8vIC53b29jb21tZXJjZSxcclxuLy8gLndvb2NvbW1lcmNlLXBhZ2Uge1xyXG4vLyAgICNyZXZpZXdzIHtcclxuLy8gICAgIC5wcm9kdWN0LXJhdGluZyB7XHJcbi8vICAgICAgIC5wcm9kdWN0LXJhdGluZy1zdW1tYXJ5LFxyXG4vLyAgICAgICAucHJvZHVjdC1yYXRpbmctZGV0YWlscyB7XHJcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbi8vICAgICAgIH1cclxuXHJcbi8vICAgICAgIC5wcm9kdWN0LXJhdGluZy1zdW1tYXJ5IHtcclxuLy8gICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4vLyAgICAgICB9XHJcblxyXG4vLyAgICAgICAucHJvZHVjdC1yYXRpbmctZGV0YWlscyB7XHJcbi8vICAgICAgICAgdGFibGUge1xyXG4vLyAgICAgICAgICAgdGQge1xyXG4vLyAgICAgICAgICAgICBwYWRkaW5nOiAwLjIwMmVtIG1zKC0zKTtcclxuXHJcbi8vICAgICAgICAgICAgICYucmF0aW5nLWdyYXBoIHtcclxuLy8gICAgICAgICAgICAgICAuYmFyIHtcclxuLy8gICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9ib2R5O1xyXG4vLyAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICAgICAgJi5yYXRpbmctY291bnQge1xyXG4vLyAgICAgICAgICAgICAgIGEge1xyXG4vLyAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4vLyAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuXHJcbi8vICAgLmNvbnRyaWJ1dGlvbi10eXBlLXNlbGVjdG9yIHtcclxuLy8gICAgIG1hcmdpbjogMDtcclxuXHJcbi8vICAgICA+IGEge1xyXG4vLyAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xyXG4vLyAgICAgICBwYWRkaW5nOiBtcygtMykgMDtcclxuLy8gICAgICAgYm9yZGVyLWJvdHRvbTogMC4yMDJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xyXG5cclxuLy8gICAgICAgJi5hY3RpdmUge1xyXG4vLyAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9XHJcbi8vIH1cclxuIiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBRdWljayBWaWV3XHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICogVE9ETzogRG8gd2UgbmVlZCBwbHVnaW4gZm9yIHRoaXM/XHJcbiAqL1xyXG5cclxuLnF1aWNrLXZpZXctYnV0dG9uIHNwYW4ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbmRpdi5xdWljay12aWV3IGRpdi5xdWljay12aWV3LWltYWdlIGEuYnV0dG9uIHtcclxuICBAaW5jbHVkZSBidXR0b24oKTtcclxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFJlbGF0ZWQgcHJvZHVjdHNcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtdGl0bGU6IDIuOHJlbTtcclxuICAtLXdjLXJlbGF0ZWQtcHJvZHVjdC1jb2w6IDU7XHJcbiAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtZ2FwLXZlcnRpY2FsOiAzMHB4O1xyXG4gIC0td2MtcmVsYXRlZC1wcm9kdWN0LWdhcC1ob3Jpem9udGFsOiA0OHB4O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcC1sXCIpIHtcclxuICAgIC0td2MtcmVsYXRlZC1wcm9kdWN0LWNvbDogNDtcclxuICAgIC0td2MtcmVsYXRlZC1wcm9kdWN0LWdhcC1ob3Jpem9udGFsOiAzMHB4O1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtZ2FwLXZlcnRpY2FsOiAyMHB4O1xyXG4gICAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtZ2FwLWhvcml6b250YWw6IDIwcHg7XHJcbiAgICAtLXdjLXJlbGF0ZWQtcHJvZHVjdC1jb2w6IDM7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmUtbFwiKSB7XHJcbiAgICAtLXdjLXJlbGF0ZWQtcHJvZHVjdC1nYXAtdmVydGljYWw6IDE1cHg7XHJcbiAgICAtLXdjLXJlbGF0ZWQtcHJvZHVjdC1nYXAtaG9yaXpvbnRhbDogMTVweDtcclxuICAgIC0td2MtcmVsYXRlZC1wcm9kdWN0LWNvbDogMjtcclxuICB9XHJcbn1cclxuXHJcbi51cHNlbGxzLnByb2R1Y3RzLFxyXG4ucmVsYXRlZC5wcm9kdWN0cyB7XHJcbiAgPiBoMiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LXNpemU6IHZhcigtLXdjLXJlbGF0ZWQtcHJvZHVjdC10aXRsZSk7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gIH1cclxuXHJcbiAgdWwucHJvZHVjdHMge1xyXG4gICAgLy8gVE9ET1xyXG4gICAgZ3JpZC10ZW1wbGF0ZTogYXV0by9yZXBlYXQodmFyKC0td2MtcmVsYXRlZC1wcm9kdWN0LWNvbCksIG1pbm1heCgwLCAxZnIpKTtcclxuICAgIHJvdy1nYXA6IHZhcigtLXdjLXJlbGF0ZWQtcHJvZHVjdC1nYXAtdmVydGljYWwpO1xyXG4gICAgY29sdW1uLWdhcDogdmFyKC0td2MtcmVsYXRlZC1wcm9kdWN0LWdhcC1ob3Jpem9udGFsKTtcclxuXHJcbiAgICBsaS5wcm9kdWN0IHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgaW1nIHtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud29vY29tbWVyY2UtbG9vcC1wcm9kdWN0X190aXRsZSB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmljZSB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgfVxyXG5cclxuICAgIC5hcmNoaXZlLXNob3J0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgZGlzcGxheTogbm9uZTsgLy8gVE9ETzogQWRkIHNldHRpbmdzIG9uIEJFXHJcbiAgICB9XHJcblxyXG4gICAgLnN0YXItcmF0aW5nIHtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbnZ3bF9hZGRfdG9fd2lzaGxpc3RfYnV0dG9uIHtcclxuICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb2NvbW1lcmNlOiBSZXZpZXdzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgLS13Yy1yZXZpZXctd3JhcHBlcjogODQ0cHg7XHJcbiAgLS13Yy1yZXZpZXctdGl0bGUtZm9udC1zaXplOiAyLjhyZW07XHJcblxyXG4gIC0td2MtcmV2aWV3LWNvbW1lbnQtcGFkZGluZzogMi40cmVtIDA7XHJcbiAgLS13Yy1yZXZpZXctY29tbWVudC1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xyXG5cclxuICAtLXdjLXJldmlldy1hdmF0YXI6IDcycHg7XHJcbiAgLS13Yy1yZXZpZXctYXZhdGFyLW1hcmdpbjogMy42cmVtO1xyXG4gIC0td2MtcmV2aWV3LWF2YXRhci1ib3JkZXItcmFkaXVzOiA1MCU7XHJcblxyXG4gIC0td2MtcmV2aWV3LWljb24tc2l6ZTogMjBweDtcclxuICAtLXdjLXJldmlldy1pY29uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE1JyUzRSUzQ3BhdGggZD0nTTggMTIuMDU3NkwxMi45NDQgMTVMMTEuNjM2IDkuNDUwNzlMMTYgNS43MTg5NUwxMC4yNDcyIDUuMjMxODRMOCAwTDUuNzUyOCA1LjIzMTg0TDAgNS43MTg5NUw0LjM2NCA5LjQ1MDc5TDMuMDU2IDE1TDggMTIuMDU3NlonIC8lM0UlM0Mvc3ZnJTNFXCIpO1xyXG59XHJcblxyXG4ud29vY29tbWVyY2UtUmV2aWV3cyB7XHJcbiAgd2lkdGg6IHZhcigtLXdjLXJldmlldy13cmFwcGVyKTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi8vIFJldmlldyBjb21tZW50c1xyXG4jY29tbWVudHMge1xyXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLXZlcnRpY2FsLXNwYWNlKTtcclxuXHJcbiAgLndvb2NvbW1lcmNlLVJldmlld3MtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS13Yy1yZXZpZXctdGl0bGUtZm9udC1zaXplKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuY29tbWVudGxpc3Qge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgYm9yZGVyLXRvcDogdmFyKC0td2MtcmV2aWV3LWNvbW1lbnQtYm9yZGVyKTtcclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0td2MtcmV2aWV3LWNvbW1lbnQtYm9yZGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jb21tZW50X2NvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcGFkZGluZzogdmFyKC0td2MtcmV2aWV3LWNvbW1lbnQtcGFkZGluZyk7XHJcblxyXG4gICAgLmF2YXRhciB7XHJcbiAgICAgIHdpZHRoOiB2YXIoLS13Yy1yZXZpZXctYXZhdGFyKTtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS13Yy1yZXZpZXctYXZhdGFyKTtcclxuICAgICAgbWFyZ2luOiAwIHZhcigtLXdjLXJldmlldy1hdmF0YXItbWFyZ2luKSB2YXIoLS13Yy1yZXZpZXctYXZhdGFyLW1hcmdpbikgMDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0td2MtcmV2aWV3LWF2YXRhci1ib3JkZXItcmFkaXVzKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29tbWVudC10ZXh0IHtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0td2MtcmV2aWV3LWF2YXRhcikgKyB2YXIoLS13Yy1yZXZpZXctYXZhdGFyLW1hcmdpbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zdGFyLXJhdGluZyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIj5waG9uZS1sXCIpIHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubWV0YSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuM2VtO1xyXG4gICAgfVxyXG5cclxuICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO1xyXG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgLy8gVE9ET1xyXG4gICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG5cclxuICAgICAgcDpsYXN0LWNoaWxkIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53b29jb21tZXJjZS1yZXZpZXcge1xyXG4gICAgJl9fYXV0aG9yIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyAvLyBUT0RPXHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fZGFzaCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fcHVibGlzaGVkLWRhdGUge1xyXG4gICAgICBmb250LXdlaWdodDogdmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtcclxuICAgICAgZm9udC1zaXplOiAxLjZyZW07IC8vIFRPRE9cclxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEFkZCByZXZpZXcgZm9ybVxyXG4uY29tbWVudC1yZXNwb25kIHtcclxuICBsYWJlbCB7XHJcbiAgICBmb250LXdlaWdodDogdmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgfVxyXG5cclxuICAuY29tbWVudC1yZXBseS10aXRsZSB7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICB9XHJcblxyXG4gIC5jb21tZW50LWZvcm0tcmF0aW5nIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBSZXZpZXcgc3RhcnRcclxuLnN0YXJzIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gID4gc3BhbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICB3aWR0aDogdmFyKC0td2MtcmV2aWV3LWljb24tc2l6ZSk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLXdjLXJldmlldy1pY29uLXNpemUpO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB2YXIoLS13Yy1yZXZpZXctaWNvbik7XHJcbiAgICBtYXNrLWltYWdlOiB2YXIoLS13Yy1yZXZpZXctaWNvbik7XHJcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xyXG4gIH1cclxuXHJcbiAgLy8gUGFzc2l2ZSBpY29uc1xyXG4gIGEsXHJcbiAgYTpob3ZlciB+IGEsXHJcbiAgJi5zZWxlY3RlZCBhLmFjdGl2ZSB+IGEge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gIH1cclxuXHJcbiAgLy8gQWN0aXZlIGljb25zXHJcbiAgJjpob3ZlciBhLFxyXG4gIGE6aG92ZXIsXHJcbiAgJi5zZWxlY3RlZCBhOm5vdCguYWN0aXZlKSxcclxuICAmLnNlbGVjdGVkIGEuYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFByb2R1Y3QgcmF0aW5nIC8gc3RhcnNcclxuLnN0YXItcmF0aW5nIHtcclxuICAtLXdjLXJldmlldy1pY29uLXNpemU6IDE2cHg7XHJcblxyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgJl9fd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIC5zdGFyIHtcclxuICAgICAgd2lkdGg6IHZhcigtLXdjLXJldmlldy1pY29uLXNpemUpO1xyXG4gICAgICBoZWlnaHQ6IHZhcigtLXdjLXJldmlldy1pY29uLXNpemUpO1xyXG4gICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICBtYXNrLWltYWdlOiB2YXIoLS13Yy1yZXZpZXctaWNvbik7XHJcbiAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogdmFyKC0td2MtcmV2aWV3LWljb24pO1xyXG4gICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICZfX292ZXJsYXkge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgbWFzay1pbWFnZTogdmFyKC0td2MtcmV2aWV3LWljb24pO1xyXG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB2YXIoLS13Yy1yZXZpZXctaWNvbik7XHJcbiAgICBtYXNrLXJlcGVhdDogcmVwZWF0LXg7XHJcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiByZXBlYXQteDtcclxuICAgIG1hc2stc2l6ZTogdmFyKC0td2MtcmV2aWV3LWljb24tc2l6ZSkgYXV0bztcclxuICAgIC13ZWJraXQtbWFzay1zaXplOiB2YXIoLS13Yy1yZXZpZXctaWNvbi1zaXplKSBhdXRvO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFxyXG4gKi9cclxuXHJcbi8vIFNoaXBwaW5nIHNlY3Rpb24gaW5zaWRlIHRhYmxlXHJcbi5zaG9wX3RhYmxlIC53b29jb21tZXJjZS1zaGlwcGluZy1tZXRob2RzIHtcclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgIGxhYmVsIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIG1hcmdpbjogMCAwIDAgMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1zaGlwcGluZy1maWVsZHMge1xyXG4gIC5zaGlwcGluZ19hZGRyZXNzIHtcclxuICAgIC5mb3JtLXJvdyB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFNoaXBwaW5nIGJhclxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAtLXdjLXNoaXBwaW5nLXRvcDogMzAwcHg7XHJcbiAgLS13Yy1zaGlwcGluZy13aWR0aDogMjIwcHg7XHJcbiAgLS13Yy1zaGlwcGluZy1pdGVtLWdhcDogNHJlbTtcclxuICAtLXdjLXNoaXBwaW5nLXBhZC10OiAxLjZyZW07XHJcbiAgLS13Yy1zaGlwcGluZy1wYWQtbHI6IDIuM3JlbTtcclxuICAtLXdjLXNoaXBwaW5nLXBhZC1iOiAxcmVtO1xyXG4gIC0td2Mtc2hpcHBpbmctdGl0bGUtc2l6ZTogMS40cmVtO1xyXG4gIC0td2Mtc2hpcHBpbmctdGl0bGUtd2VpZ2h0OiA2MDA7XHJcbiAgLS13Yy1zaGlwcGluZy10ZXh0LXNpemU6IDEuMXJlbTtcclxuICAtLXdjLXNoaXBwaW5nLWljb24tc2l6ZTogMzRweDtcclxuICAtLXdjLXNoaXBwaW5nLXRleHQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAtLXdjLXNoaXBwaW5nLWJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gIC0td2Mtc2hpcHBpbmctYm9yZGVyLWNvbG9yOiAjZTNlM2UzO1xyXG4gIC0td2Mtc2hpcHBpbmctYm94LXNoYWRvdzogLTRweCA0cHggMTRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcC1tXCIpIHtcclxuICAgIC0td2Mtc2hpcHBpbmctcGFkLWxyOiAxLjhyZW07XHJcbiAgICAtLXdjLXNoaXBwaW5nLWl0ZW0tZ2FwOiAxLjhyZW07XHJcbiAgfVxyXG59XHJcblxyXG4uc2hpcHBpbmctYmFyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG5cclxuICAmOjpiZWZvcmUsXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICNjNGM0YzQ7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgJl9fd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgZ2FwOiB2YXIoLS13Yy1zaGlwcGluZy1pdGVtLWdhcCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS13Yy1zaGlwcGluZy1wYWQtdCkgdmFyKC0td2Mtc2hpcHBpbmctcGFkLWxyKVxyXG4gICAgICB2YXIoLS13Yy1zaGlwcGluZy1wYWQtYik7XHJcbiAgICBtYXJnaW46IDVweCAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2Mtc2hpcHBpbmctYmFja2dyb3VuZCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS13Yy1zaGlwcGluZy1ib3JkZXItY29sb3IpO1xyXG4gIH1cclxuXHJcbiAgJl9faXRlbSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4OiAxO1xyXG5cclxuICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGg6IDFweDtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXdjLXNoaXBwaW5nLWl0ZW0tZ2FwKSAvIC0yKTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2Mtc2hpcHBpbmctYm9yZGVyLWNvbG9yKTtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzdmcsXHJcbiAgICBpbWcge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgZmxleDogMCAwIHZhcigtLXdjLXNoaXBwaW5nLWljb24tc2l6ZSk7XHJcbiAgICAgIG1heC13aWR0aDogdmFyKC0td2Mtc2hpcHBpbmctaWNvbi1zaXplKSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fYm9keSB7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07XHJcblxyXG4gICAgJl90aXRsZSB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xyXG4gICAgICBmb250LXNpemU6IHZhcigtLXdjLXNoaXBwaW5nLXRpdGxlLXNpemUpO1xyXG4gICAgICBmb250LXdlaWdodDogdmFyKC0td2Mtc2hpcHBpbmctdGl0bGUtd2VpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICAmX3RleHQge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2Mtc2hpcHBpbmctdGV4dC1zaXplKTtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgY29sb3I6IHZhcigtLXdjLXNoaXBwaW5nLXRleHQtY29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU3RpY2t5IHNlY3Rpb24gaXMgdmlzaWJsZSBvbmx5IG9uIGxhcmdlciBzY3JlZW5zXHJcbiAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1tXCIpIHtcclxuICAgIC8vIFN0aWNreSBzaWRlYmFyXHJcbiAgICAmLnN0aWNreSB7XHJcbiAgICAgIC0td2Mtc2hpcHBpbmctd2lkdGg6IDE4NXB4O1xyXG4gICAgICAtLXdjLXNoaXBwaW5nLWl0ZW0tZ2FwOiAxLjhyZW07XHJcbiAgICAgIC0td2Mtc2hpcHBpbmctcGFkLWxyOiAyLjRyZW07XHJcbiAgICAgIC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1wb3NpdGlvbjogY2FsYyhcclxuICAgICAgICB2YXIoLS13Yy1zaGlwcGluZy1pY29uLXNpemUpICsgdmFyKC0td2Mtc2hpcHBpbmctcGFkLWxyKSAqIDIgLVxyXG4gICAgICAgICAgdmFyKC0td2Mtc2hpcHBpbmctd2lkdGgpXHJcbiAgICAgICk7XHJcbiAgICAgIC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1ib2R5LW9mZnNldDogNXB4O1xyXG4gICAgICAtLXdjLXNoaXBwaW5nLWljb24tc2l6ZTogMzBweDtcclxuXHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgd2lkdGg6IHZhcigtLXdjLXNoaXBwaW5nLXdpZHRoKTtcclxuICAgICAgdG9wOiB2YXIoLS13Yy1zaGlwcGluZy10b3ApO1xyXG4gICAgICBib3gtc2hhZG93OiB2YXIoLS13Yy1zaGlwcGluZy1ib3gtc2hhZG93KTtcclxuICAgICAgei1pbmRleDogOTk5O1xyXG5cclxuICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNoaXBwaW5nLWJhciB7XHJcbiAgICAgICAgJl9fd3JhcHBlciB7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJl9faXRlbSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcclxuICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLXdjLXNoaXBwaW5nLWl0ZW0tZ2FwKSAvIC0yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICZfX2JvZHkge1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuXHJcbiAgICAgICAgICAmX3RpdGxlIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFN0aWNreSBzaWRlYmFyIG9uIHRoZSByaWdodFxyXG4gICAgICAmW2RhdGEtcG9zaXRpb249XCJyaWdodFwiXSB7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlO1xyXG5cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTc1MHB4KSB7XHJcbiAgICAgICAgICByaWdodDogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1wb3NpdGlvbik7XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5zaGlwcGluZy1iYXJfX2JvZHkge1xyXG4gICAgICAgICAgICBsZWZ0OiB2YXIoLS13Yy1zaGlwcGluZy1leHBhbmRhYmxlLWJvZHktb2Zmc2V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zaGlwcGluZy1iYXIge1xyXG4gICAgICAgICAgJl9faXRlbSB7XHJcbiAgICAgICAgICAgIHN2ZyxcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXdjLXNoaXBwaW5nLXBhZC1scik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS13Yy1zaGlwcGluZy1leHBhbmRhYmxlLWJvZHktb2Zmc2V0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTdGlja3kgc2lkZWJhciBvbiB0aGUgbGVmdFxyXG4gICAgICAmW2RhdGEtcG9zaXRpb249XCJsZWZ0XCJdIHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSBlYXNlO1xyXG5cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTc1MHB4KSB7XHJcbiAgICAgICAgICBsZWZ0OiB2YXIoLS13Yy1zaGlwcGluZy1leHBhbmRhYmxlLXBvc2l0aW9uKTtcclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuc2hpcHBpbmctYmFyX19ib2R5IHtcclxuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXdjLXNoaXBwaW5nLWV4cGFuZGFibGUtYm9keS1vZmZzZXQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNoaXBwaW5nLWJhciB7XHJcbiAgICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAgICAgICAgIHN2ZyxcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0td2Mtc2hpcHBpbmctcGFkLWxyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1ib2R5LW9mZnNldCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFN0aWNreSBzaWRlYmFyIHRoYXQgZXhwYW5kcyBvbiBob3ZlclxyXG4gICAgJi5leHBhbmRhYmxlIHtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcbiAgICAgIC5zaGlwcGluZy1iYXJfX2l0ZW06YWZ0ZXIge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS13Yy1zaGlwcGluZy1pY29uLXNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFeHBhbmRhYmxlIHNpZGViYXIgb24gdGhlIHJpZ2h0XHJcbiAgICAgICZbZGF0YS1wb3NpdGlvbj1cInJpZ2h0XCJdIHtcclxuICAgICAgICByaWdodDogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1wb3NpdGlvbik7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgLnNoaXBwaW5nLWJhcl9faXRlbTo6YWZ0ZXIge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zaGlwcGluZy1iYXJfX2JvZHkge1xyXG4gICAgICAgICAgbGVmdDogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1ib2R5LW9mZnNldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFeHBhbmRhYmxlIHNpZGViYXIgb24gdGhlIGxlZnRcclxuICAgICAgJltkYXRhLXBvc2l0aW9uPVwibGVmdFwiXSB7XHJcbiAgICAgICAgbGVmdDogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1wb3NpdGlvbik7XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuXHJcbiAgICAgICAgICAuc2hpcHBpbmctYmFyX19pdGVtOjphZnRlciB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNoaXBwaW5nLWJhcl9fYm9keSB7XHJcbiAgICAgICAgICByaWdodDogdmFyKC0td2Mtc2hpcHBpbmctZXhwYW5kYWJsZS1ib2R5LW9mZnNldCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogU2lkZWJhciBXaWRnZXRzIChGaWx0ZXJzIGFuZCBDYXRlZ29yaWVzKVxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAtLXNpZGViYXItaXRlbS1wYWRkaW5nLXRiOiA4cHg7XHJcbiAgLS1zaWRlYmFyLWl0ZW0tcGFkZGluZy1scjogMDtcclxuICAtLXNpZGViYXItaXRlbS10ZXh0LXNpemU6IDEuNnJlbTtcclxuICAtLXNpZGViYXItaXRlbS1jb2xvcjogdmFyKC0tYm9keS10ZXh0LWNvbG9yKTtcclxuICAtLXNpZGViYXItaXRlbS1ib3JkZXI6IDA7XHJcbiAgLS1zaWRlYmFyLWl0ZW0tYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgLS1maWx0ZXItc2VhcmNoLWJ0bi1zaXplOiA1MHB4O1xyXG4gIC0tZmlsdGVyLXNlYXJjaC1idG4taWNvbi1zaXplOiAxNnB4O1xyXG5cclxuICAtLWZpbHRlci1wcmljZS1oYW5kbGUtc2l6ZTogMTJweDtcclxuICAtLWZpbHRlci1wcmljZS1iYXItaGVpZ2h0OiAzcHg7XHJcbiAgLS1maWx0ZXItcHJpY2UtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuXHJcbiAgLS1wcm9kdWN0LWNhdGVnb3JpZXMtaW1nLXNpemU6IDQwcHg7XHJcbn1cclxuXHJcbi8vIE9sZCBjb2RlXHJcbi53b29jb21tZXJjZS1zaWRlYmFyLXdpZGdldHMge1xyXG4gIC8vIFdpZGdldCBibG9ja3NcclxuICA+IGxpIHtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLXZlcnRpY2FsLXNwYWNlKTtcclxuXHJcbiAgICAvLyBDYXRlZ29yeSB0aXRsZVxyXG4gICAgPiBzcGFuIHtcclxuICAgICAgQGV4dGVuZCAud29vY29tbWVyY2Utd2lkZ2V0LXRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGkuYWN0aXZlID4gYSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJvZHktdGV4dC1jb2xvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIC8vIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXNpZGViYXItaXRlbS1wYWRkaW5nLXRiKSB2YXIoLS1zaWRlYmFyLWl0ZW0tcGFkZGluZy1scik7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zaWRlYmFyLWl0ZW0tdGV4dC1zaXplKTtcclxuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tYmFzZS10ZXh0LWZvbnQtd2VpZ2h0KTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWl0ZW0tY29sb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY291bnQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2lkZWJhci1pdGVtLXRleHQtc2l6ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVsIHtcclxuICAgID4gbGkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLXNpZGViYXItaXRlbS1ib3JkZXIpIHNvbGlkIHZhcigtLXNpZGViYXItaXRlbS1ib3JkZXItY29sb3IpO1xyXG5cclxuICAgICAgJi5jYXQtcGFyZW50LFxyXG4gICAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAvKiB0aGUgbmV3IHRvZ2dsZSBlbGVtZW50IHdyYXBwZXIsIHdoaWNoIGlzIGFkZGVkIHZpYSBqUXVlcnkgKi9cclxuXHJcbiAgICAgICAgLmNhdC10b2dnbGUge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgdG9wOiAyM3B4O1xyXG4gICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICBib3R0b206IGF1dG87XHJcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgICAgICAmLmNhdC1wb3BwZWQge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxM1wiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmIH4gdWwuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgICYgfiB1bC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWxhcmdlci10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICAgICAgICAgICAgc3BlYWs6IG5vbmU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyYlwiO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcclxuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICYgfiB1bC5jaGlsZHJlbixcclxuICAgICAgICAgICYgfiB1bC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLXNpZGViYXItd2lkZ2V0cyB7XHJcbiAgLy8gUHJvZHVjdCBzZWFyY2hcclxuICAud2MtYmxvY2stcHJvZHVjdC1zZWFyY2gge1xyXG4gICAgbGFiZWwge1xyXG4gICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS13aWRnZXQtdGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fZmllbGRzIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICZfX2ZpZWxkIHtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fYnV0dG9uIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgd2lkdGg6IHZhcigtLWZpbHRlci1zZWFyY2gtYnRuLXNpemUpO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgb3V0bGluZTogbm9uZTtcclxuXHJcbiAgICAgIC8vIFdlIGFyZSBub3Qgc2hvd2luZyBkZWZhdWx0IGljb24sIGluc3RlYWQgb3VyIG93blxyXG4gICAgICBzdmcge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNlYXJjaCBpY29uXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogdmFyKC0tZmlsdGVyLXNlYXJjaC1idG4taWNvbi1zaXplKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLWZpbHRlci1zZWFyY2gtYnRuLWljb24tc2l6ZSk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEyLjE0MTUgMTAuMjg0MkwxMi4wOTYyIDEwLjM1MjNMMTIuMTU0MSAxMC40MTAyTDE1LjUzODggMTMuNzk0OUMxNi4wMjA0IDE0LjI3NjUgMTYuMDIwNCAxNS4wNTcyIDE1LjUzODggMTUuNTM4OEwxNS41Mzg3IDE1LjUzODhDMTUuMDU3OCAxNi4wMjA0IDE0LjI3NTggMTYuMDIwNCAxMy43OTQ5IDE1LjUzODhMMTMuNzk0OSAxNS41Mzg4TDEwLjQxMDIgMTIuMTU0MUwxMC4zNTIzIDEyLjA5NjJMMTAuMjg0MiAxMi4xNDE1QzkuMjQ1ODggMTIuODMwNCA4LjAwMjk5IDEzLjIzMzUgNi42NjY3NCAxMy4yMzM1QzMuMDQ1OTMgMTMuMjMzNSAwLjEgMTAuMjg3NSAwLjEgNi42NjY3NEMwLjEgMy4wNDU5MyAzLjA0NTkzIDAuMSA2LjY2Njc0IDAuMUMxMC4yODc1IDAuMSAxMy4yMzM1IDMuMDQ1OTMgMTMuMjMzNSA2LjY2Njc0QzEzLjIzMzUgOC4wMDI5OSAxMi44MzA0IDkuMjQ1ODggMTIuMTQxNSAxMC4yODQyWk02LjY2Njc0IDEuOTAwMDJDNC4wMzgxNSAxLjkwMDAyIDEuOTAwMDIgNC4wMzgxNSAxLjkwMDAyIDYuNjY2NzRDMS45MDAwMiA5LjI5NTMyIDQuMDM4MTUgMTEuNDMzNSA2LjY2Njc0IDExLjQzMzVDOS4yOTUzMiAxMS40MzM1IDExLjQzMzUgOS4yOTUzMiAxMS40MzM1IDYuNjY2NzRDMTEuNDMzNSA0LjAzODE1IDkuMjk1MzIgMS45MDAwMiA2LjY2Njc0IDEuOTAwMDJaJyBmaWxsPSdjdXJyZW50Q29sb3InIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMC4yJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFByaWNlIGZpbHRlclxyXG4gIC53aWRnZXRfcHJpY2VfZmlsdGVyIHtcclxuICAgIC5wcmljZV9zbGlkZXIge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnVpLXNsaWRlciB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHRvcDogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpbHRlci1wcmljZS1jb2xvcik7XHJcbiAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC51aS1zbGlkZXItaGFuZGxlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuICAgICAgICB3aWR0aDogdmFyKC0tZmlsdGVyLXByaWNlLWhhbmRsZS1zaXplKTtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLWZpbHRlci1wcmljZS1oYW5kbGUtc2l6ZSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGN1cnNvcjogZXctcmVzaXplO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpbHRlci1wcmljZS1jb2xvcik7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1maWx0ZXItcHJpY2UtaGFuZGxlLXNpemUpICogLTEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmLnVpLXN0YXRlLWFjdGl2ZSB7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwLjIzNmVtIHJnYmEoIzAwMCwgMC4xKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC51aS1zbGlkZXItcmFuZ2Uge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWx0ZXItcHJpY2UtY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcclxuICAgICAgaGVpZ2h0OiB2YXIoLS1maWx0ZXItcHJpY2UtYmFyLWhlaWdodCk7XHJcblxyXG4gICAgICAudWktc2xpZGVyLXJhbmdlIHtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAudWktc2xpZGVyLXJhbmdlLW1pbiB7XHJcbiAgICAgICAgbGVmdDogLTFweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnVpLXNsaWRlci1yYW5nZS1tYXgge1xyXG4gICAgICAgIHJpZ2h0OiAtMXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9cclxuICAgIC5wcmljZV9zbGlkZXJfYW1vdW50IHtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjQ7XHJcblxyXG4gICAgICAuYnV0dG9uIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogJGRlc2t0b3ApIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2xlYXIge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEF2ZXJhZ2UgcmF0aW5nIGZpbHRlclxyXG4gIC53aWRnZXRfcmF0aW5nX2ZpbHRlciB7XHJcbiAgICBsaSA+IGEge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVG9wIHJhdGVkIHByb2R1Y3RzXHJcbiAgLndpZGdldF90b3BfcmF0ZWRfcHJvZHVjdHMge1xyXG4gICAgLnByb2R1Y3RfbGlzdF93aWRnZXQgPiBsaSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcclxuICAgICAgICB3aWR0aDogMTYwcHg7IC8vIFRPRE9cclxuICAgICAgfVxyXG5cclxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmF0dGFjaG1lbnQtd29vY29tbWVyY2VfdGh1bWJuYWlsIHtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnByb2R1Y3QtdGl0bGUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgbWFyZ2luLXRvcDogMC41ZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYmFzZS10ZXh0LXNpemUpO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIH1cclxuXHJcbiAgICAuc3Rhci1yYXRpbmcge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmFtb3VudCB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XHJcbiAgICB9XHJcblxyXG4gICAgaW5zIHtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUHJvZHVjdCBjYXRlZ29yaWVzXHJcbiAgLndjLWJsb2NrLXByb2R1Y3QtY2F0ZWdvcmllcyB7XHJcbiAgICAmLWxpc3QtaXRlbSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICBtYXJnaW46IDRweCAwIDRweCAwO1xyXG5cclxuICAgICAgJl9faW1hZ2Uge1xyXG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tcHJvZHVjdC1jYXRlZ29yaWVzLWltZy1zaXplKTtcclxuICAgICAgICBtYXJnaW46IDAgMC41ZW0gMCAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi1saXN0LS1kZXB0aC0xIHtcclxuICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gVGl0bGUgc2hhcmVkIGNsYXNzZXNcclxuLndvb2NvbW1lcmNlLXdpZGdldC10aXRsZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogMCAwIDFlbTtcclxuICBtYXJnaW46IDA7XHJcbiAgZm9udC1zaXplOiAycmVtOyAvLyBUT0RPXHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG59XHJcbiIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogU21hcnQgQ291cG9uc1xyXG4gKiBUT0RPOiBSZWZhY3RvciB0aGlzXHJcbiAqIFRPRE86IERvIHdlIG5lZWQgcGx1Z2luIGZvciB0aGlzP1xyXG4gKi9cclxuXHJcbi53b29jb21tZXJjZSxcclxuLndvb2NvbW1lcmNlLXBhZ2Uge1xyXG4gIC5jb3Vwb24tY29udGFpbmVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcblxyXG4gICAgJi5tZWRpdW0ge1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgICAgcGFkZGluZzogbXMoLTIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmdlbmVyYXRlZF9jb3Vwb25fc3VtbWFyeSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG5cclxuICAuY291cG9uLWNvbnRlbnQge1xyXG4gICAgJi5zbWFsbCB7XHJcbiAgICAgIHBhZGRpbmc6IG1zKC0yKSBtcygyKTtcclxuICAgIH1cclxuXHJcbiAgICAuY291cG9uLWV4cGlyZSxcclxuICAgIC5kaXNjb3VudC1pbmZvIHtcclxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjY291cG9uc19saXN0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IG1zKDMpO1xyXG4gIH1cclxufVxyXG5cclxuLnNkLWJ1dHRvbnMtdHJhbnNwYXJlbnQge1xyXG4gICYud29vY29tbWVyY2UsXHJcbiAgJi53b29jb21tZXJjZS1wYWdlIHtcclxuICAgIC5jb3Vwb24tY29udGFpbmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xyXG4gIC5zY19pbmZvX2JveCB7XHJcbiAgICBAaW5jbHVkZSBzcGFuKGxhc3QgNCBvZiA5KTtcclxuICAgIEBpbmNsdWRlIGd1dHRlcnMoaW5zaWRlKTtcclxuICB9XHJcblxyXG4gIC5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWZ1bGx3aWR0aC1waHAge1xyXG4gICAgLnNjX2luZm9fYm94IHtcclxuICAgICAgQGluY2x1ZGUgc3BhbihsYXN0IDUgb2YgMTIpO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb0NvbW1lcmNlOiBTb2NpYWwgaWNvbnMgc2VjdGlvblxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAtLXdjLXNvY2lhbHMtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAtLXdjLXNvY2lhbHMtY29sb3ItaG92ZXI6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuICAtLXdjLXNvY2lhbHMtYmc6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAtLXdjLXNvY2lhbHMtcmFkaXVzOiA1cHg7XHJcblxyXG4gIC8vIEljb25zIHBvc2l0aW9uOiBsZWZ0LCBjZW50ZXIsIHJpZ2h0XHJcbiAgLy8gLS13Yy1zb2NpYWwtcG9zaXRpb246ICdsZWZ0JztcclxufVxyXG5cclxuLy8gU29jaWFsIGljb25zXHJcbmRpdi5hZGR0b2FueV9saXN0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgLy8ganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHJcbiAgc3ZnIHtcclxuICAgIEBleHRlbmQgLnNoaXBwaW5nLWljb25zLXN2ZztcclxuICB9XHJcblxyXG4gIHNwYW4uYTJhX2xhYmVsIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNb3JlIHNvY2lhbCBpY29ucyBvbiBob3ZlclxyXG4uYTJhX21lbnUge1xyXG4gIHN2ZyB7XHJcbiAgICBAZXh0ZW5kIC5zaGlwcGluZy1pY29ucy1zdmc7XHJcbiAgfVxyXG5cclxuICAuYTJhX21pbmlfc2VydmljZXMgYSxcclxuICAuYTJhcGFnZV93aWRlIGEuYTJhX21vcmUsXHJcbiAgLmEyYV9mdWxsX3NlcnZpY2VzIGEsXHJcbiAgLmEyYV9mdWxsX2Zvb3RlciBhIHtcclxuICAgIGNvbG9yOiB2YXIoLS13Yy1zb2NpYWxzLWNvbG9yKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNoYXJlZCBjbGFzc2VzXHJcbi5zaGlwcGluZy1pY29ucy1zdmcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nOiA2cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0td2Mtc29jaWFscy1yYWRpdXMpO1xyXG4gIGNvbG9yOiB2YXIoLS13Yy1zb2NpYWxzLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13Yy1zb2NpYWxzLWJnKTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiB2YXIoLS13Yy1zb2NpYWxzLWNvbG9yLWhvdmVyKTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgIGZpbGw6IHZhcigtLXdjLXNvY2lhbHMtY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFRhYmxlc1xyXG4gKiBUT0RPOiBSZWZhY3RvciB0aGlzXHJcbiAqL1xyXG5cclxuOnJvb3Qge1xyXG4gIC0td2MtdGFibGUtdHItcGFkZGluZzogMCAxcmVtO1xyXG4gIC0td2MtdGFibGUtdGgtcGFkZGluZzogMi43cmVtIDEuNXJlbTtcclxuICAtLXdjLXRhYmxlLXRkLXBhZGRpbmc6IDEuN3JlbSAxLjVyZW07XHJcbiAgLS13Yy10YWJsZS1wYWRkaW5nLWxyOiAzLjJyZW07XHJcblxyXG4gIC0td2MtdGFibGUtYnV0dG9uLXBhZGRpbmc6IDAuOHJlbSAxLjhyZW07XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wLW1cIikge1xyXG4gICAgLS13Yy10YWJsZS10aC1wYWRkaW5nOiAyLjRyZW0gMS4zcmVtO1xyXG4gICAgLS13Yy10YWJsZS10ZC1wYWRkaW5nOiAxLjRyZW0gMS4zcmVtO1xyXG4gICAgLS13Yy10YWJsZS1wYWRkaW5nLWxyOiAyLjhyZW07XHJcbiAgfVxyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuLnNob3BfdGFibGUge1xyXG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuLndvb2NvbW1lcmNlLXRhYmxlLFxyXG4ud29vY29tbWVyY2Utb3JkZXJzLXRhYmxlLFxyXG4udGludndsLXRhYmxlLW1hbmFnZS1saXN0IHtcclxuICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSk7XHJcblxyXG4gIHRoIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIHRoLFxyXG4gIHRkIHtcclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRoZWFkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gIH1cclxuXHJcbiAgdGJvZHkgLmJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS13Yy10YWJsZS1idXR0b24tcGFkZGluZyk7XHJcbiAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYnRuLXByaW1hcnktY29sb3IpO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogdmFyKC0tYnRuLXByaW1hcnktY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKipcclxuICogV29vQ29tbWVyY2U6IFZhcmlhdGlvbiBTd2F0Y2hlc1xyXG4gKi9cclxuXHJcbiA6cm9vdCB7XHJcbiAgICAtLXdjLXByb2R1Y3QtcXVhbnRpdHktd2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG50YWJsZS52YXJpYXRpb25zIHtcclxuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgICBtYXJnaW46IDAgMCAwLjVlbTtcclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbiAgICAubGFiZWwgbGFiZWwge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIH1cclxuICAgIC52YWx1ZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICB9XHJcbiAgICBzZWxlY3Qge1xyXG4gICAgICAgIG1heC13aWR0aDogNzAlO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgICBhLnJlc2V0X3ZhcmlhdGlvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xyXG4gICAgICAgICZbc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCJdIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zaW5nbGVfdmFyaWF0aW9uX3dyYXAge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS12YXJpYXRpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAmLXByaWNlIC5wcmljZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICBkZWwge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IC8vIFRPRE9cclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCk7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFyZ2VyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IC8vIFRPRE9cclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IGxpbmUtdGhyb3VnaDtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaW5zIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBiZGkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDE2cHgsIDEuM3Z3LCAyLjRyZW0pO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3Vic2NyaXB0aW9uLWRldGFpbHMge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHRvcDogLTJweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLWRlc2NyaXB0aW9uIHtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgICAvLyAmLmVudGVycHJpc2UgLndvb2NvbW1lcmNlLXZhcmlhdGlvbi1kZXNjcmlwdGlvbixcclxuICAgIC8vIC52YXJpYWJsZS10YWJzIC5hY3Rpb24tYnV0dG9uIHtcclxuICAgIC8vICAgZGlzcGxheTogbm9uZTtcclxuICAgIC8vIH1cclxuICAgIC8vIC52YXJpYWJsZS10YWJzLmVudGVycHJpc2UgJi5lbnRlcnByaXNlICYtZGVzY3JpcHRpb24sXHJcbiAgICAvLyAudmFyaWFibGUtdGFicy5lbnRlcnByaXNlICYuZW50ZXJwcmlzZSAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICAvLyAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvLyB9XHJcbiAgICAvLyAudmFyaWFibGUtdGFicy5lbnRlcnByaXNlICYuc2luZ2xlX3ZhcmlhdGlvbixcclxuICAgIC8vIC52YXJpYWJsZS10YWJzLmVudGVycHJpc2UgJi1hZGQtdG8tY2FydCB7XHJcbiAgICAvLyAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAvLyB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS12YXJpYXRpb24uZW50ZXJwcmlzZSAud29vY29tbWVyY2UtdmFyaWF0aW9uLWRlc2NyaXB0aW9uLFxyXG4udmFyaWFibGUtdGFicyAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udmFyaWFibGUtdGFicy5lbnRlcnByaXNlIC53b29jb21tZXJjZS12YXJpYXRpb24uZW50ZXJwcmlzZSAud29vY29tbWVyY2UtdmFyaWF0aW9uLWRlc2NyaXB0aW9uLFxyXG4udmFyaWFibGUtdGFicy5lbnRlcnByaXNlIC5hY3Rpb24tYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi52YXJpYWJsZS10YWJzLmVudGVycHJpc2UgLndvb2NvbW1lcmNlLXZhcmlhdGlvbi5zaW5nbGVfdmFyaWF0aW9uLFxyXG4udmFyaWFibGUtdGFicy5lbnRlcnByaXNlIC53b29jb21tZXJjZS12YXJpYXRpb24tYWRkLXRvLWNhcnQge1xyXG4gICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8vIFRPRE86IE9sZCBjb2RlXHJcbi52YXJpYXRpb25zLXRhYmxlIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHRoLFxyXG4gICAgdGQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbiAgICB0ZC5sYWJlbCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgfVxyXG4gICAgLnN3YXRjaC13cmFwcGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCMwMDAsIDAuMSk7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgbWFyZ2luOiAwIDAuMzI3ZW0gMWVtIDA7XHJcbiAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3dhdGNoLWFuY2hvciB7XHJcbiAgICAgICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLnNlbGVjdGVkLFxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBtcygtMik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuc2VsZWN0ZWQge1xyXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCMwMDAsIDAuMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5hI3ZhcmlhdGlvbnNfY2xlYXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8vIFNpbmdsZSBpdGVtIGFkZCB0byBjYXJ0XHJcbi53b29jb21tZXJjZS12YXJpYXRpb24tYWRkLXRvLWNhcnQsXHJcbmZvcm0uY2FydCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgLnF1YW50aXR5IHtcclxuICAgICAgICBmbGV4OiAwIDAgdmFyKC0td2MtcHJvZHVjdC1xdWFudGl0eS13aWR0aCk7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAvLyBSZW1vdmUgaW5wdXQgYXJyb3dzXHJcbiAgICAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG4gICAgICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyArLy0gaWNvbnNcclxuICAgICAgICAuaXRlbV9xdHkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4OyAvLyBUT0RPXHJcbiAgICAgICAgICAgIGhlaWdodDogNTAlO1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTQgOCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEyLjM0OTIgOEw3IDMuMDUzMjdMMS42NTA4MyA4TDAgNi40NzMzNkw3IDBMMTQgNi40NzMzNkwxMi4zNDkyIDhaJyBmaWxsPSclMjMzRDNEM0QnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAmLnBsdXMge1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYubWludXMge1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zaW5nbGVfYWRkX3RvX2NhcnRfYnV0dG9uIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vICYuZGlzYWJsZWQge1xyXG4gICAgICAgIC8vICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICAgIC8vICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgICYubG9hZGluZyB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gLmFkZGVkLFxyXG4gICAgLy8gLmhpZGRlbiB7XHJcbiAgICAvLyAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIC8vIH1cclxuICAgIC8vIC5hZGRlZH4uZHMtcHJvZHVjdC1pbi1jYXJ0IHtcclxuICAgIC8vICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgLy8gfVxyXG4gICAgLmFkZGVkX3RvX2NhcnQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAudGludi13aXNobGlzdCB7XHJcbiAgICAgICAgZmxleDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gUHJvZHVjdCBncm91cCBhZGQgdG8gY2FydFxyXG4ud29vY29tbWVyY2UtZ3JvdXBlZC1wcm9kdWN0LWxpc3Qge1xyXG4gICAgdGQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLWdyb3VwZWQtcHJvZHVjdC1saXN0LWl0ZW0ge1xyXG4gICAgICAgICZfX3F1YW50aXR5IHtcclxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXdjLXByb2R1Y3QtcXVhbnRpdHktd2lkdGgpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2xhYmVsIGxhYmVsIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fcHJpY2Uge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgaW5zIHtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc3RvY2sge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogV2lzaGxpc3QgYnV0dG9uLi4uZGlmZmVyZW50IHZhcmlhdGlvbnNcclxuICogTk9URTogV2UgYXJlIHVzaW5nIFwiVEkgV29vQ29tbWVyY2UgV2lzaGxpc3RcIiBwbHVnaW4gZm9yIHRoaXNcclxuICovXHJcblxyXG4vLyBQcm9kdWN0IGxpc3RpbmcgQnV0dG9uIFNldHRpbmdzXHJcbi53b29jb21tZXJjZS1hcmNoaXZlLWNvbnRlbnQgLnRpbnZ3bC1sb29wLWJ1dHRvbi13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIC8vIEJlZm9yZSAnYWRkIHRvIGNhcnQnIGJ1dHRvblxyXG4gICYudGludndsLWJlZm9yZS1hZGQtdG8tY2FydCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxuICB9XHJcblxyXG4gIC8vIEFib3ZlIHRodW1ibmFpbFxyXG4gICYudGludndsLWFib3ZlX3RodW1iLWFkZC10by1jYXJ0IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMTBweDtcclxuICAgIGxlZnQ6IDEwcHg7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gIH1cclxuXHJcbiAgLy8gSWNvbiBvbmx5LCB0byB0ZXh0IGFmdGVyIGFuZCBiZWZvcmUgYWRkIHRvIGNhcnQgYnV0dG9uXHJcbiAgJi50aW52d2wtYWZ0ZXItYWRkLXRvLWNhcnQsXHJcbiAgJi50aW52d2wtYmVmb3JlLWFkZC10by1jYXJ0IHtcclxuICAgIC50aW52d2wtaWNvbi1oZWFydC5uby10eHQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJY29uIG9ubHksIGFmdGVyICdhZGQgdG8gY2FydCcgYnV0dG9uXHJcbiAgJi50aW52d2wtYWZ0ZXItYWRkLXRvLWNhcnQgLnRpbnZ3bC1pY29uLWhlYXJ0Lm5vLXR4dCB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBCdXR0b25cclxuYS50aW52d2xfYWRkX3RvX3dpc2hsaXN0X2J1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLy8gXCJBZGQgdG8gV2lzaGxpc3RcIiBvbiBQcm9kdWN0IHBhZ2VcclxuXHJcbi8vIFdpc2hsaXN0IFByb2R1Y3QgU2V0dGluZ3NcclxuXHJcbi8vIFdpc2hsaXN0IFRhYmxlIFNldHRpbmdzXHJcblxyXG4vLyBTb2NpYWwgTmV0d29ya3MgU2hhcmluZyBPcHRpb25zXHJcblxyXG4vLyBXaXNobGlzdCBQcm9kdWN0IENvdW50ZXJcclxuIiwiLyoqXHJcbiAqIFdvb2NvbW1lcmNlOiBNeSBBY2NvdW50IHBhZ2VzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXMuLi5XSVBcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAtLXdjLWFjYy1uYXYtY29sOiBjbGFtcCgyMDBweCwgMTYuOTJ2dywgMzI1cHgpO1xyXG4gICAgLS13Yy1hY2MtbmF2LWxpbmstZm9udC1zaXplOiBjbGFtcCgxNnB4LCAxdncsIDEuOXJlbSk7XHJcbiAgICAtLXdjLWFjYy1uYXYtbGluay1pY29uLXNpemU6IDIuN3JlbTtcclxuICAgIC0td2MtYWNjLW5hdi1saW5rLWxpbmUtaGVpZ2h0OiAxLjQ1O1xyXG4gICAgLS13Yy1hY2MtbmF2LWxpbmstcGxyOiBjbGFtcCgxLjdyZW0sIDEuM3Z3LCAyLjVyZW0pOyAvLyBQYWRkaW5nIGxlZnQvcmlnaHRcclxuICAgIC0td2MtYWNjLW5hdi1saW5rLXB0YjogY2xhbXAoMS41cmVtLCAxdncsIDEuOXJlbSk7IC8vIFBhZGRpbmcgdG9wL2JvdHRvbVxyXG4gICAgLS13Yy1hY2MtbmF2LW1yOiBjbGFtcCg0MHB4LCA1LjJ2dywgMTAwcHgpOyAvLyBNYXJnaW4gcmlnaHRcclxuICAgIC0td2MtYmFzaWMtdGV4dC1zaXplOiBjbGFtcCgxLjNyZW0sIDAuODR2dywgMS42cmVtKTtcclxuICAgIC0td2Mtc20tdGV4dC1zaXplOiBjbGFtcCgxLjNyZW0sIDAuOHZ3LCAxLjVyZW0pO1xyXG4gICAgLS13Yy1sLXRleHQtc2l6ZTogY2xhbXAoMS41cmVtLCAwLjk1dncsIDEuOHJlbSk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcC1tXCIpIHtcclxuICAgICAgICAtLXdjLWFjYy1uYXYtY29sOiAyMDBweDtcclxuICAgIH1cclxufVxyXG5cclxuYm9keS53b29jb21tZXJjZS1hY2NvdW50IHtcclxuICAgIGRpdi53b29jb21tZXJjZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNsYW1wKDUwcHgsIDd2dywgMTI3cHgpO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA3M3B4O1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgLy8gdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLFxyXG4gICAgICAgIC53b29jb21tZXJjZS1uYXZpZ2F0aW9uLXdyYXBwZXIge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgdmFyKC0td2MtYWNjLW5hdi1jb2wpO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXdjLWFjYy1uYXYtbXIsIDApO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICB0b3A6IDEyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAud29vY29tbWVyY2UtbmF2LXRvZ2dsZSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xyXG4gICAgICAgICZfX2JvdHRvbSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjNyZW0sIDAuODR2dywgMS42cmVtKTtcclxuICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtZm9ybSB7XHJcbiAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS1mb3JtLXJvdyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAud29vY29tbWVyY2UtZm9ybS1sb2dpbixcclxuICAgICAgICAud29vY29tbWVyY2UtZm9ybS1yZWdpc3RlciB7XHJcbiAgICAgICAgICAgICZfX3JlbWVtYmVybWUge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjhweDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICZfX3N1Ym1pdC13cmFwIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fc3VibWl0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIzMHB4O1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS1Mb3N0UGFzc3dvcmQge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLXRlcm1zIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXByaW1hcnkpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1mb250LXdlaWdodCwgNDAwKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWJhc2UtdGV4dC1saW5lLWhlaWdodCwgMSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS1JbnB1dCB7XHJcbiAgICAgICAgICAgICZbbmFtZT1cInVzZXJuYW1lXCJdIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEzJyBoZWlnaHQ9JzE1JyB2aWV3Qm94PScwIDAgMTMgMTUnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIG9wYWNpdHk9JzAuNScgZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J005Ljg1MjY0IDMuNTc1ODJDOS44NTI2NCA1LjUzMDk1IDguMjU3NjYgNy4xNTE2NCA2LjI3NjgxIDcuMTUxNjRDNC4yOTU5NiA3LjE1MTY0IDIuNzAwOTkgNS41MzA5NSAyLjcwMDk5IDMuNTc1ODJDMi43MDA5OSAxLjYyMDcgNC4zMjE2OSAwIDYuMjc2ODEgMEM4LjIzMTk0IDAgOS44NTI2NCAxLjU5NDk3IDkuODUyNjQgMy41NzU4MlpNOC43NzIxNyAzLjU3NTgyQzguNzcyMTcgMi4xODY2NSA3LjY0MDI2IDEuMDgwNDYgNi4yNzY4MSAxLjA4MDQ2QzQuOTEzMzcgMS4wODA0NiAzLjc4MTQ2IDIuMTg2NjUgMy43ODE0NiAzLjU3NTgyQzMuNzgxNDYgNC45NjQ5OSA0Ljg4NzY1IDYuMDcxMTggNi4yNzY4MSA2LjA3MTE4QzcuNjY1OTggNi4wNzExOCA4Ljc3MjE3IDQuOTY0OTkgOC43NzIxNyAzLjU3NTgyWk0wIDE0LjE3NTFDMCAxMC43Mjc5IDIuODA0MDYgNy44OTgwOSA2LjI3Njk4IDcuODk4MDlDOS43NDk5IDcuODk4MDkgMTIuNTU0IDEwLjcyNzkgMTIuNTI4MiAxNC4xNzUxQzEyLjUyODIgMTQuNDU4MSAxMi4yOTY3IDE0LjcxNTMgMTEuOTg4IDE0LjcxNTNIMC41NDAyMzJDMC4yNTcyNTMgMTQuNzE1MyAwIDE0LjQ4MzggMCAxNC4xNzUxWk02LjI3Njk4IDkuMDA0MjhDMy42MDE1NSA5LjAwNDI4IDEuNDE0ODkgMTEuMDM2NiAxLjEzMTkxIDEzLjYzNDhIMTEuNDIyMUMxMS4xMzkxIDExLjAzNjYgOC45NTI0MiA5LjAwNDI4IDYuMjc2OTggOS4wMDQyOFonIGZpbGw9JyUyMzIxM0I4QycvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDI1cHggNTAlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNTBweDtcclxuICAgICAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICZbbmFtZT1cInBhc3N3b3JkXCJdIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEzJyBoZWlnaHQ9JzE2JyB2aWV3Qm94PScwIDAgMTMgMTYnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIG9wYWNpdHk9JzAuNScgZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J002LjUwNjg1IDEuMDc0ODdDNi41MjE3NyAxLjA3NDg5IDYuNTM2NjkgMS4wNzQyNSA2LjU1MTU1IDEuMDcyOTNMNi41NTM0NSAxLjA3Mjc5TDYuNTcwMzEgMS4wNzE3NEM2LjU4Njk1IDEuMDcwODUgNi42MTQwMyAxLjA2OTc0IDYuNjUwMDUgMS4wNjk0MUM2LjcyMjI5IDEuMDY4NzQgNi44MjkyNyAxLjA3MTE4IDYuOTU5MzcgMS4wODQzNEM3LjIyMjEzIDEuMTEwOSA3LjU2NDY3IDEuMTc5NjggNy45MDMzMiAxLjM0M0M4LjIzODA4IDEuNTA0NDUgOC41NjY5NyAxLjc1Njg0IDguODIwMTIgMi4xNTY3OUM5LjA3MjYyIDIuNTU1NzIgOS4yNzAyNyAzLjEzMzg5IDkuMjk0MjMgMy45ODEwMlY1LjQ2MTQ5SDMuNzA1MzRWNC4wMjY1TDMuNzA1MzUgNC4wMjYwNUwzLjcwNTM4IDQuMDIzNjlMMy43MDU4OCA0LjAwMzU1QzMuNzA2NDkgMy45ODQyIDMuNzA3NzkgMy45NTMzOSAzLjcxMDU1IDMuOTEyNzdDMy43MTYwOCAzLjgzMTM0IDMuNzI3MzggMy43MTE2IDMuNzUwMzcgMy41NjY1NUMzLjc5Njc2IDMuMjczODggMy44ODg1NyAyLjg5MjA4IDQuMDY2OTggMi41MTcwNUM0LjI0NDQ5IDIuMTQzOTQgNC41MDIyMiAxLjc4ODQ5IDQuODc4MDUgMS41MjU1NkM1LjI1MDI3IDEuMjY1MTYgNS43NjkxOSAxLjA3MzY4IDYuNTA2ODUgMS4wNzQ4N1pNMi42NzMyOCA1LjQ2MTQ5VjQuMDI1MjFIMy4xODkzMUMyLjY3MzI4IDQuMDI1MjEgMi42NzMyOCA0LjAyNDk0IDIuNjczMjggNC4wMjQ2NkwyLjY3MzI4IDQuMDI0MDJMMi42NzMyOCA0LjAyMjVMMi42NzMzMSA0LjAxODVMMi42NzM0NSA0LjAwNjcxQzIuNjczNTkgMy45OTcxOSAyLjY3Mzg2IDMuOTg0MzcgMi42NzQzNyAzLjk2ODQ4QzIuNjc1MzcgMy45MzY3MSAyLjY3NzMxIDMuODkyNTQgMi42ODEwMyAzLjgzNzc0QzIuNjg4NDYgMy43MjgzMSAyLjcwMzA5IDMuNTc1NDIgMi43MzE5NSAzLjM5MzM1QzIuNzg5MjYgMy4wMzE3NyAyLjkwNDg1IDIuNTQxMzQgMy4xNDEyMiAyLjA0NDQ5QzMuMzc4NTEgMS41NDU3MSAzLjc0Mjk3IDEuMDI5NjEgNC4zMDA0MiAwLjYzOTYyNkM0Ljg1NzQ5IDAuMjQ5OTEgNS41NzY2MSAwLjAwNzc5MjkzIDYuNDg4NzcgMC4wMDU4MTI2Mkw2LjUxNjk3IDAuMDA0MTA1NjdDNi41NDcyNyAwLjAwMjQ4MTA5IDYuNTg5MDggMC4wMDA4NjY3OTQgNi42NDA4MSAwLjAwMDM4NzA2OEM2Ljc0NDA1IC0wLjAwMDU3MDU0IDYuODg4IDAuMDAyOTgwMjMgNy4wNTk2MyAwLjAyMDMzMjJDNy40MDAzNSAwLjA1NDc3OTQgNy44NjQ1NCAwLjE0NTA0NCA4LjMzODkzIDAuMzczODM0QzguODE3MjIgMC42MDQ1IDkuMzA3NjcgMC45NzcyOTMgOS42ODMyMiAxLjU3MDY0QzEwLjA1ODcgMi4xNjM4NiAxMC4yOTg3IDIuOTQ0OTMgMTAuMzI2MSAzLjk1ODM5TDEwLjMyNjMgMy45NzMzNlY1LjQ2MTQ5SDEwLjk3NzJDMTIuMDk0MyA1LjQ2MTQ5IDEzIDYuMzk5MzkgMTMgNy41NTY2MVYxMy44Mjg1QzEzIDE0Ljk4NjEgMTIuMDk0MyAxNS45MjM4IDEwLjk3NzIgMTUuOTIzOEgyLjAyMjI4QzAuOTA1MzcxIDE1LjkyMzggMCAxNC45ODU1IDAgMTMuODI4NVY3LjU1NjYxQzAgNi4zOTk1NCAwLjkwNTQzOSA1LjQ2MTQ5IDIuMDIyMjggNS40NjE0OUgyLjY3MzI4Wk0xLjAzMjA2IDcuNTU2NjFDMS4wMzIwNiA2Ljk4OTgyIDEuNDc1NTggNi41MzA1NSAyLjAyMjI4IDYuNTMwNTVIMTAuOTc3MkMxMS41MjQ0IDYuNTMwNTUgMTEuOTY3OSA2Ljk4OTk2IDExLjk2NzkgNy41NTY2MVYxMy44Mjg1QzExLjk2NzkgMTQuMzk1NSAxMS41MjQ0IDE0Ljg1NDggMTAuOTc3MiAxNC44NTQ4SDIuMDIyMjhDMS40NzU2NSAxNC44NTQ4IDEuMDMyMDYgMTQuMzk1NCAxLjAzMjA2IDEzLjgyODVWNy41NTY2MVpNNy40Njk3OSAxMi4wOTY1QzcuNDY5NzkgMTIuNjUwOSA3LjAzNTg0IDEzLjEwMDQgNi41MDA2NyAxMy4xMDA0QzUuOTY1NSAxMy4xMDA0IDUuNTMxNTYgMTIuNjUwOSA1LjUzMTU2IDEyLjA5NjVDNS41MzE1NiAxMS43Mzk4IDUuNzExMjEgMTEuNDI2NiA1Ljk4MTg4IDExLjI0ODVMNS45ODk3NSA5LjA2NjUyQzUuOTkwODEgOC43NzEzMiA2LjIyMjcgOC41MzI5IDYuNTA3NjkgOC41MzRDNi43OTI2OCA4LjUzNTEgNy4wMjI4NSA4Ljc3NTMxIDcuMDIxNzkgOS4wNzA1MUw3LjAxMzk1IDExLjI0NDlDNy4yODc2OSAxMS40MjIzIDcuNDY5NzkgMTEuNzM3NCA3LjQ2OTc5IDEyLjA5NjVaJyBmaWxsPSclMjMyMTNCOEMnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyNXB4IDUwJTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7XHJcbiAgICAgICAgICAgICAgICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmW25hbWU9XCJlbWFpbFwiXSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNycgaGVpZ2h0PScxNCcgdmlld0JveD0nMCAwIDE3IDEzJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBvcGFjaXR5PScwLjUnIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMTUuMyAwSDEuN0MwLjc2NSAwIDAuMDA4NSAwLjc2NTM5NyAwLjAwODUgMS43MDA4OEwwIDExLjkwNjJDMCAxMi44NDE3IDAuNzY1IDEzLjYwNzEgMS43IDEzLjYwNzFIMTUuM0MxNi4yMzUgMTMuNjA3MSAxNyAxMi44NDE3IDE3IDExLjkwNjJWMS43MDA4OEMxNyAwLjc2NTM5NyAxNi4yMzUgMCAxNS4zIDBaTTE1LjMwMTEgMTEuMDU1OEMxNS4zMDExIDExLjUyMzUgMTQuOTE4NiAxMS45MDYyIDE0LjQ1MTEgMTEuOTA2MkgyLjU1MTE3QzIuMDgzNjcgMTEuOTA2MiAxLjcwMTE3IDExLjUyMzUgMS43MDExNyAxMS4wNTU4VjMuNDAxODZMNy42MDAxNSA3LjA5Mjc1QzguMTUyNjUgNy40NDE0MyA4Ljg0OTY0IDcuNDQxNDMgOS40MDIxNCA3LjA5Mjc1TDE1LjMwMTEgMy40MDE4NlYxMS4wNTU4Wk0xLjcwMTE3IDEuNzAwNjhMOC41MDExNSA1Ljk1Mjg0TDE1LjMwMTEgMS43MDA2OEgxLjcwMTE3WicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjVweCA1MCU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLndvb2NvbW1lcmNlLWxvc3QtcGFzc3dvcmQge1xyXG4gICAgICAgIC53b29jb21tZXJjZS1SZXNldFBhc3N3b3JkIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVlMmU4O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiBjbGFtcCgxMHB4LCAxLjA1dncsIDIwcHgpO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggNjBweCByZ2JhKCMyMTNCOEMsIDAuMik7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1NzBweDtcclxuICAgICAgICAgICAgcGFkZGluZzogM3JlbTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNC44cmVtIDUuMnJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtbC10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5mb3JtLXJvdy1maXJzdCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5mb3JtLXJvdyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlucHV0IHtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLUJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEuNTIwOTIgNC41NjI5MUMwLjY4MDkzOCAzLjcyMjkzIDAuNjgwOTM4IDIuMzYxMDUgMS41MjA5MiAxLjUyMTA3QzIuMzYwOSAwLjY4MTA5NSAzLjcyMjc3IDAuNjgxMDk1IDQuNTYyNzUgMS41MjEwN0w4LjQ1MzQ3IDUuNDExNzlDOS4yOTM0NSA2LjI1MTc3IDkuMjkzNDUgNy42MTM2NSA4LjQ1MzQ3IDguNDUzNjNDNy42MTM0OSA5LjI5MzYxIDYuMjUxNjIgOS4yOTM2MSA1LjQxMTY0IDguNDUzNjNMMS41MjA5MiA0LjU2MjkxWicgZmlsbD0nJTIzMjQ1NUM5Jy8lM0UlM0NwYXRoIGQ9J00xNy45NzkxIDE0Ljg5MTJDMTguODE5MSAxNS43MzEyIDE4LjgxOTEgMTcuMDkzIDE3Ljk3OTEgMTcuOTMzQzE3LjEzOTEgMTguNzczIDE1Ljc3NzIgMTguNzczIDE0LjkzNzIgMTcuOTMzTDExLjA0NjUgMTQuMDQyM0MxMC4yMDY1IDEzLjIwMjMgMTAuMjA2NSAxMS44NDA1IDExLjA0NjUgMTEuMDAwNUMxMS44ODY1IDEwLjE2MDUgMTMuMjQ4NCAxMC4xNjA1IDE0LjA4ODQgMTEuMDAwNUwxNy45NzkxIDE0Ljg5MTJaJyBmaWxsPSclMjNFQjhCMzQnLyUzRSUzQ3BhdGggZD0nTTE3Ljk3OTEgNC41NjI5MUMxOC44MTkxIDMuNzIyOTMgMTguODE5MSAyLjM2MTA1IDE3Ljk3OTEgMS41MjEwN0MxNy4xMzkxIDAuNjgxMDk1IDE1Ljc3NzIgMC42ODEwOTUgMTQuOTM3MiAxLjUyMTA3TDExLjA0NjUgNS40MTE3OUMxMC4yMDY1IDYuMjUxNzcgMTAuMjA2NSA3LjYxMzY1IDExLjA0NjUgOC40NTM2M0MxMS44ODY1IDkuMjkzNjEgMTMuMjQ4NCA5LjI5MzYxIDE0LjA4ODQgOC40NTM2M0wxNy45NzkxIDQuNTYyOTFaJyBmaWxsPSclMjM4MUIyNUMnLyUzRSUzQ3BhdGggZD0nTTEuNTIwOTIgMTQuODkxMkMwLjY4MDkzOCAxNS43MzEyIDAuNjgwOTM4IDE3LjA5MyAxLjUyMDkyIDE3LjkzM0MyLjM2MDkgMTguNzczIDMuNzIyNzcgMTguNzczIDQuNTYyNzUgMTcuOTMzTDguNDUzNDcgMTQuMDQyM0M5LjI5MzQ1IDEzLjIwMjMgOS4yOTM0NSAxMS44NDA1IDguNDUzNDcgMTEuMDAwNUM3LjYxMzQ5IDEwLjE2MDUgNi4yNTE2MiAxMC4xNjA1IDUuNDExNjQgMTEuMDAwNUwxLjUyMDkyIDE0Ljg5MTJaJyBmaWxsPSclMjM1RTMyOEInLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAyMHB4IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNsYW1wKDYwcHgsIDR2dywgODBweCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2xhbXAoMjBweCwgMnZ3LCA0MHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtcGFzc3dvcmQtc3RyZW5ndGgge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICYuc3Ryb25nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMGE2NTY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLmJhZCxcclxuICAgICAgICAgICAgICAgICAgICAmLnNob3J0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJlZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYuZ29vZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZTM4NDFmO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtcGFzc3dvcmQtaGludCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLndvb2NvbW1lcmNlLWFjY291bnRfX2xvZ2dlZC1pbiB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1tZXNzYWdlLFxyXG4gICAgLndvb2NvbW1lcmNlLWluZm8sXHJcbiAgICAud29vY29tbWVyY2UtZXJyb3IsXHJcbiAgICAud29vY29tbWVyY2VfYWNjb3VudF9zdWJzY3JpcHRpb25zIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICYubm8tb3JkZXJzLW5hZyB7XHJcbiAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubXktYWNjb3VudC1zdWJoZWFkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyNXB4LCAyLjd2dywgNS40cmVtKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4xMTFlbTtcclxuICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuMnJlbTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1teWFjY291bnQge1xyXG4gICAgICAgICYtbmF2aWdhdGlvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAlO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtY29udGVudCB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcsXHJcbiAgICAgICAgICAgICc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICAgICAgJi4taDIge1xyXG4gICAgICAgICAgICAgICAgICAgIC5jLWhlYWRpbmdfX3RpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNnJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYubnB0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5hY2NvdW50LXByb2R1Y3RzIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICYtZW1wdHkge31cclxuICAgICAgICAgICAgICAgICZfX2l0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIGNsYW1wKDEwcHgsIDF2dywgMjBweCkgMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHggY2xhbXAoMTBweCwgMXZ3LCAyMHB4KSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSA1cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgY2xhbXAoMTBweCwgMXZ3LCAyMHB4KSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGNsYW1wKDEwcHgsIDF2dywgMjBweCkgY2xhbXAoMTBweCwgMXZ3LCAyMHB4KSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygzMyUgLSAxMXB4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoM24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIGNsYW1wKDEwcHgsIDF2dywgMjBweCkgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jLWJsb2NrIHtcclxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgICAgICZfX21lZGlhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTQwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggY2xhbXAoMjBweCwgMnZ3LCA0MHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJl9fbWVkaWEtbGluayB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDE0MHB4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJl9fYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogY2xhbXAoMTVweCwgMS4wNXZ3LCAyMHB4KSBjbGFtcCgyNXB4LCAxLjZ2dywgMzBweCkgY2xhbXAoMTVweCwgMXZ3LCAyMHB4KSA1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmMtYnRuX19pY28ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogY2xhbXAoMTVweCwgMS4wNXZ3LCAyMHB4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2xhbXAoMTVweCwgMS4wNXZ3LCAyMHB4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYy1idG5fX2ljby1saW5rIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnZpZXctb3JkZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgJl9fcm93IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAuY29sLTEge1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWZhZmU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLXNtLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMThweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDI2JSAtIDVweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNvbC0yIHtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNzQlO1xyXG4gICAgICAgICAgICAgICAgLnBlbmRpbmcsXHJcbiAgICAgICAgICAgICAgICAub24taG9sZCxcclxuICAgICAgICAgICAgICAgIC5wcm9jZXNzaW5nIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2UzODQxZjtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jb21wbGV0ZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDBhNjU2O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmNhbmNlbGxlZCxcclxuICAgICAgICAgICAgICAgIC5mYWlsZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucmVmdW5kZWQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDNhOWY0O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmMtYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcmVtO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICZfX3RpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS10YWJsZS0tb3JkZXItZGV0YWlscyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QwZDRkZTtcclxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLXRhYmxlX19saW5lLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLndjLWl0ZW0tbWV0YSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMTYyNzVDO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtdG90YWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1iYXNpYy10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTlweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMxNjI3NUM7XHJcbiAgICAgICAgICAgICAgICAgICAgLndjLWl0ZW0tbWV0YSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGZvb3Qge1xyXG4gICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDRkZTtcclxuICAgICAgICAgICAgICAgIHRoIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWwtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1sLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYWNjb3VudC1kZXRhaWxzIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBwYWRkaW5nOiAzNXB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yNSk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMzBweCAzMHB4IDA7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAzM3B4O1xyXG4gICAgICAgICAgICB3aWR0aDogNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYy1oZWFkaW5nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW0gIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jLWJ0biB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2ZpZWxkcyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fcm93IHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDI1cHgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1iYXNpYy10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2xhYmVsIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fa2V5IHtcclxuICAgICAgICAgICAgY29sb3I6IHJnYmEoIzIxM0I4QywgMC44KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjBweDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjBweDtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5teV9hY2NvdW50X3N1YnNjcmlwdGlvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgLi1oZWFkZXIge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEzcHggY2xhbXAoMTJweCwgMS42dncsIDI1cHgpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLXNtLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc3Vic2NyaXB0aW9uLWlkIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjclO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tc3RhdHVzIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTYlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tbmV4dC1wYXltZW50IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjQlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tdG90YWwge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnN1YnNjcmlwdGlvbi1hY3Rpb25zIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEzJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuLW1haW4tYm9keSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIC4taGVhZGVyIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgICAgICAgICAgICY+ZGl2IHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgjRDBENERFLCAwLjIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLm9yZGVyIHtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IGNsYW1wKDEycHgsIDEuNnZ3LCAyNXB4KTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICY+ZGl2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoI0QwRDRERSwgMC4yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHggNHB4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmlwdGlvbi1pZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNyU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaXB0aW9uLXN0YXR1cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1iYXNpYy10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNiU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmlwdGlvbi1uZXh0LXBheW1lbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1iYXNpYy10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0JTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA0N3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzbWFsbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaXB0aW9uLXRvdGFsIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuYW1vdW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tYWN0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMyU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDExcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLi1kZXNrdG9wLW9ubHkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC4tbW9iaWxlLW9ubHkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2VfYWNjb3VudF9zdWJzY3JpcHRpb25zX19wcmljZS1jaGFuZ2Uge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XHJcbiAgICB9XHJcbiAgICAuc3Vic2NyaXB0aW9uX2RldGFpbHMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDczcHg7XHJcbiAgICAgICAgJitoMiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19yb3cge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJl9fbGFiZWwge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmYWZlO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1zbS10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAvLyBwYWRkaW5nOiBjbGFtcCgxMHB4LCAxLjF2dywgMjFweCk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IGNsYW1wKDEwcHgsIDEuMXZ3LCAxOHB4KSBjbGFtcCgxMHB4LCAxLjF2dywgMjBweCk7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYygzMCUgLSA1cHgpO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX25hbWUge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1zbS10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAvLyBwYWRkaW5nOiBjbGFtcCgxMHB4LCAxLjF2dywgMjFweCk7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IGNsYW1wKDEwcHgsIDEuMXZ3LCAxOHB4KSBjbGFtcCgxMHB4LCAxLjF2dywgMjBweCk7XHJcbiAgICAgICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgOXB4IDAgMDtcclxuICAgICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgICAgICAgICAgJi5sb2FkaW5nIHtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJi5zdWJzY3JpcHRpb24tYXV0by1yZW5ldy10b2dnbGUge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmfi5vcmRlcl9kZXRhaWxzIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgIHRoZWFkIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDRkZTtcclxuICAgICAgICAgICAgICAgIHRoIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtbC10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGQsXHJcbiAgICAgICAgICAgIHRoIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE5cHggMDtcclxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5vcmRlcl9pdGVtIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMxNjI3NUM7XHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMTYyNzVDO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1xdWFudGl0eSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC53Yy1pdGVtLW1ldGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRmb290IHtcclxuICAgICAgICAgICAgICAgIHRyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDRkZTtcclxuICAgICAgICAgICAgICAgICAgICAuYW1vdW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1sLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRkLFxyXG4gICAgICAgICAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWwtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5zdGF0dXMtY2FuY2VsbGVkLFxyXG4gICAgLnN0YXR1cy1leHBpcmVkLFxyXG4gICAgLnN0YXR1cy1wZW5kaW5nLWNhbmNlbGxhdGlvbiB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBjb2xvcjogI2ZmNTM1MztcclxuICAgIH1cclxuICAgIC5zdGF0dXMtb24taG9sZCB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICBjb2xvcjogIzZhNmM3MDtcclxuICAgIH1cclxuICAgIC5zdGF0dXMtYWN0aXZlIHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGNvbG9yOiAjMDBBNjU2O1xyXG4gICAgfVxyXG59XHJcblxyXG4ud29vY29tbWVyY2UtTXlBY2NvdW50IHtcclxuICAgICYtbmF2aWdhdGlvbiB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWFjYy1uYXYtbGluay1mb250LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0td2MtYWNjLW5hdi1saW5rLWxpbmUtaGVpZ2h0KTtcclxuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0td2MtYWNjLW5hdi1saW5rLXB0YiwgMCkgdmFyKC0td2MtYWNjLW5hdi1saW5rLXBsciwgMCk7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMaW5rIGljb25zXHJcbiAgICAgICAgJi1saW5rIHtcclxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDEwcHggMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSBhIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y1ZmFmZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS13Yy1hY2MtbmF2LWxpbmstaWNvbi1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6IDEwMCUgMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBtYXNrLXNpemU6IDEwMCUgMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pIGVhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXdjLWFjYy1uYXYtbGluay1pY29uLXNpemUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIERlZnVhbHQgaWNvbiwgaW4gY2FzZSB3ZSBoYXZlIGl0ZW0gd2l0aCBubyBpY29uXHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcIi4uLy4uL2ltYWdlcy93b29jb21tZXJjZS9pY29uLWRhc2hib2FyZC5zdmdcIik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6aG92ZXI6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi0tZGFzaGJvYXJkIGE6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBtYXNrLWltYWdlKFwiLi4vLi4vaW1hZ2VzL3dvb2NvbW1lcmNlL2ljb24tZGFzaGJvYXJkLnN2Z1wiKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1hc2staW1hZ2UoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMicgaGVpZ2h0PScyMycgdmlld0JveD0nMCAwIDIyIDIzJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAuNTM5MSAxMi40NTgzQzEzLjcxMDIgMTIuNDU4MyAxNi4yODkxIDkuODc5NDYgMTYuMjg5MSA2LjcwODMzVjUuNzVDMTYuMjg5MSAyLjU3ODg3IDEzLjcxMDIgMCAxMC41MzkxIDBDNy4zNjc5NCAwIDQuNzg5MDYgMi41Nzg4NyA0Ljc4OTA2IDUuNzVWNi43MDgzM0M0Ljc4OTA2IDkuODc5NDYgNy4zNjc5NCAxMi40NTgzIDEwLjUzOTEgMTIuNDU4M1onIGZpbGw9JyUyM0QwRDRERScvJTNFJTNDcGF0aCBkPSdNMTcuNTU4NiAxNS4zMTUzQzEzLjA1MDYgMTQuMDY2NiA4LjAzMzcxIDE0LjA2NjYgMy41MjQ3NSAxNS4zMTUzQzEuNDQ5OTYgMTUuODkwMyAwIDE3Ljc5MDcgMCAxOS45MzgzVjIzLjAwMDJIMjEuMDgzM1YxOS45MzgzQzIxLjA4MzMgMTcuNzkwNyAxOS42MzM0IDE1Ljg5MDMgMTcuNTU4NiAxNS4zMTUzWicgZmlsbD0nJTIzRDBENERFJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLS1vcmRlcnMgYTphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAvL0BpbmNsdWRlIG1hc2staW1hZ2UoXCIuLi8uLi9pbWFnZXMvd29vY29tbWVyY2UvaWNvbi1vcmRlcnMuc3ZnXCIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI4JyBoZWlnaHQ9JzI1JyB2aWV3Qm94PScwIDAgMjggMjUnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMjYuMzg5MSA4LjMzMzIzSDE4LjkxNDFMMTUuMTMxMyAwLjc2Nzc0QzE0Ljg5NiAwLjI5NzEzMiAxNC40MTUyIDAgMTMuODg5IDBDMTMuMzYyOCAwIDEyLjg4MTkgMC4yOTcxNTYgMTIuNjQ2NiAwLjc2Nzc0TDguODYzODMgOC4zMzMyM0gxLjM4ODgxQzAuNjIxNzI4IDguMzMzMjMgMCA4Ljk1NDk2IDAgOS43MjIwNUMwIDEwLjQ4OTEgMC42MjE3MjggMTEuMTExMSAxLjM4ODgxIDExLjExMTFIMS42MzlMMy43NDY5OCAyMS42NTA0QzQuMTM2NDQgMjMuNTk4MiA1Ljg0NjU3IDI1IDcuODMyNzYgMjVIMTkuOTQ0N0MyMS45MzA4IDI1IDIzLjY0MSAyMy41OTgyIDI0LjAzMDUgMjEuNjUwNEwyNi4xMzg1IDExLjExMTFIMjYuMzg4NkMyNy4xNTU3IDExLjExMTEgMjcuNzc3NSAxMC40ODkxIDI3Ljc3NzUgOS43MjIwNUMyNy43Nzc1IDguOTU0OTYgMjcuMTU1NyA4LjMzMzIzIDI2LjM4ODYgOC4zMzMyM0gyNi4zODkxWk0xMy44ODkxIDQuNDk0NDFMMTUuODA4NSA4LjMzMzIzSDExLjk2OTdMMTMuODg5MSA0LjQ5NDQxWk0xNi42NjY5IDE4LjA1NTJDMTcuNDM0IDE4LjA1NTIgMTguMDU1OCAxNy40MzM0IDE4LjA1NTggMTYuNjY2M0MxOC4wNTU4IDE1Ljg5OTMgMTcuNDM0IDE1LjI3NzUgMTYuNjY2OSAxNS4yNzc1SDExLjExMTJDMTAuMzQ0MSAxNS4yNzc1IDkuNzIyNCAxNS44OTkzIDkuNzIyNCAxNi42NjYzQzkuNzIyNCAxNy40MzM0IDEwLjM0NDEgMTguMDU1MiAxMS4xMTEyIDE4LjA1NTJIMTYuNjY2OVonIGZpbGw9JyUyM0QwRDRERScvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLS1lZGl0LWFkZHJlc3MgYTphZnRlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXNrLWltYWdlKFwiLi4vLi4vaW1hZ2VzL3dvb2NvbW1lcmNlL2ljb24tYWRkcmVzc2VzLnN2Z1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLS1zdWJzY3JpcHRpb25zIGE6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI3JyBoZWlnaHQ9JzIxJyB2aWV3Qm94PScwIDAgMjcgMjEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00yMi4zMzM2IDBINy45MTY0QzUuNzkyMzggMCAzLjk5MDI5IDEuNDQ4MSAzLjQxMTE1IDMuNDExMTVDMS40NDgxIDMuOTU4MiAwIDUuNzYwMzEgMCA3LjkxNjRWMTUuODY1MUMwIDE4LjQzOTcgMi4wOTE2NiAyMC41MzE0IDQuNjY2MjEgMjAuNTMxNEgxOS4wODM0QzIxLjIwNzQgMjAuNTMxNCAyMy4wMDk1IDE5LjA4MzMgMjMuNTg4NiAxNy4xMjAyQzI1LjU1MTcgMTYuNTczMiAyNi45OTk4IDE0Ljc3MSAyNi45OTk4IDEyLjYxNUwyNyA0LjY2NjIxQzI3IDIuMDkxNjYgMjQuOTA4MSAwIDIyLjMzMzggMEgyMi4zMzM2Wk0yNS4zOTA3IDEyLjU4MjhDMjUuMzkwNyAxMy43NDE0IDI0Ljc0NzIgMTQuNzcxIDIzLjc4MTcgMTUuMjg2VjcuODg0MzNDMjMuNzgxNyA1LjMwOTc4IDIxLjY5IDMuMjE4MTIgMTkuMTE1NCAzLjIxODEyTDUuMjEzMTggMy4yMTgzNEM1LjcyODEzIDIuMjUyODUgNi43NTc4MiAxLjYwOTI4IDcuOTE2MzQgMS42MDkyOEgyMi4zMzM1QzI0LjAwNyAxLjYwOTI4IDI1LjM5MDcgMi45OTI5NiAyNS4zOTA3IDQuNjY2NDRMMjUuMzkwNyAxMi41ODI4Wk0xMC4xMzY4IDE3LjE4NDlDMTAuMDQwMyAxNy4xODQ5IDkuOTQzNzkgMTcuMTUyOCA5Ljg0NzI2IDE3LjEyMDRDNy4wMTUyNiAxNi4wNTg1IDUuNTY3MTcgMTIuOTA0OCA2LjYyOTE0IDEwLjEwNDlDNy4xNDQwOSA4LjcyMTI2IDguMTQxNjYgNy42NTkyMyA5LjQ2MTE0IDcuMDQ3NzlDMTAuNzgwNiA2LjQzNjI5IDEyLjI2MDkgNi4zNzE4NyAxMy42NDQ4IDYuODg2ODNDMTUuMTU3MyA3LjQzMzg4IDE2LjM0NzkgOC42NTY4NiAxNi44OTUgMTAuMTY5NEgxOC4wODU2TDE2LjEyMjYgMTMuNjc3MUwxNC4wOTUxIDEwLjIzMzZIMTUuMTU3MUMxNC43MDY2IDkuNDI5MDMgMTMuOTk4NiA4Ljc4NTQ3IDEzLjA5NzUgOC40NjM1NEMxMi4xMzIgOC4xMDk1NCAxMS4wNyA4LjE0MTY0IDEwLjEzNjggOC41NjAwN0M5LjIwMzY0IDguOTc4NSA4LjQ5NTY1IDkuNzUwNzEgOC4xNDE2NiAxMC43MTYyQzcuNDAxNTUgMTIuNzExNCA4LjQzMTI0IDE0LjkzMTkgMTAuNDI2NiAxNS42NzJDMTAuODQ1MSAxNS44MzI5IDExLjA3MDIgMTYuMjgzNSAxMC45MDkzIDE2LjcwMTlDMTAuNzQ4MyAxNi45NTk0IDEwLjQ1ODcgMTcuMTg0OCAxMC4xMzY5IDE3LjE4NDhMMTAuMTM2OCAxNy4xODQ5WicgZmlsbD0nJTIzRDBENERFJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtLWVkaXQtYWNjb3VudCBhOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgbWFzay1pbWFnZShcIi4uLy4uL2ltYWdlcy93b29jb21tZXJjZS9pY29uLWFjY291bnQuc3ZnXCIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI4JyBoZWlnaHQ9JzE4JyB2aWV3Qm94PScwIDAgMjggMTgnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00yNS40Mzc1IDBIMi4zMTI1QzEuMDE3NSAwIDAgMC45OSAwIDIuMjVWMTUuNzVDMCAxNy4wMSAxLjAxNzUgMTggMi4zMTI1IDE4SDcuNFYxNy4wMUM2Ljg0NSAxNi44MyA2LjQ3NSAxNi4zMzUgNi40NzUgMTUuNzVDNi40NzUgMTQuOTg1IDcuMDc2MjUgMTQuNCA3Ljg2MjUgMTQuNEM4LjY0ODc1IDE0LjQgOS4yNSAxNC45ODUgOS4yNSAxNS43NUM5LjI1IDE2LjMzNSA4Ljg4IDE2LjgzIDguMzI1IDE3LjAxVjE4SDE5LjQyNVYxNy4wMUMxOC44NyAxNi44MyAxOC41IDE2LjMzNSAxOC41IDE1Ljc1QzE4LjUgMTQuOTg1IDE5LjEwMTIgMTQuNCAxOS44ODc1IDE0LjRDMjAuNjczNyAxNC40IDIxLjI3NSAxNC45ODUgMjEuMjc1IDE1Ljc1QzIxLjI3NSAxNi4zMzUgMjAuOTA1IDE2LjgzIDIwLjM1IDE3LjAxVjE4SDI1LjQzNzVDMjYuNzMyNSAxOCAyNy43NSAxNy4wMSAyNy43NSAxNS43NVYyLjI1QzI3Ljc1IDAuOTkgMjYuNzMyNSAwIDI1LjQzNzUgMFpNNy44NjI1IDEyLjZDNS4wNDEyNSAxMi42IDIuNzc1IDEwLjM5NSAyLjc3NSA3LjY1QzIuNzc1IDQuOTA1IDUuMDQxMjUgMi43IDcuODYyNSAyLjdDMTAuNjgzNyAyLjcgMTIuOTUgNC45MDUgMTIuOTUgNy42NUMxMi45NSAxMC4zOTUgMTAuNjgzNyAxMi42IDcuODYyNSAxMi42Wk0yNC41MTI1IDEwLjhIMTUuMjYyNUMxNC45ODUgMTAuOCAxNC44IDEwLjYyIDE0LjggMTAuMzVDMTQuOCAxMC4wOCAxNC45ODUgOS45IDE1LjI2MjUgOS45SDI0LjUxMjVDMjQuNzkgOS45IDI0Ljk3NSAxMC4wOCAyNC45NzUgMTAuMzVDMjQuOTc1IDEwLjYyIDI0Ljc5IDEwLjggMjQuNTEyNSAxMC44Wk0yNC41MTI1IDguMUgxNS4yNjI1QzE0Ljk4NSA4LjEgMTQuOCA3LjkyIDE0LjggNy42NUMxNC44IDcuMzggMTQuOTg1IDcuMiAxNS4yNjI1IDcuMkgyNC41MTI1QzI0Ljc5IDcuMiAyNC45NzUgNy4zOCAyNC45NzUgNy42NUMyNC45NzUgNy45MiAyNC43OSA4LjEgMjQuNTEyNSA4LjFaTTI0LjUxMjUgNS40SDE1LjI2MjVDMTQuOTg1IDUuNCAxNC44IDUuMjIgMTQuOCA0Ljk1QzE0LjggNC42OCAxNC45ODUgNC41IDE1LjI2MjUgNC41SDI0LjUxMjVDMjQuNzkgNC41IDI0Ljk3NSA0LjY4IDI0Ljk3NSA0Ljk1QzI0Ljk3NSA1LjIyIDI0Ljc5IDUuNCAyNC41MTI1IDUuNFpNMTAuNjM3NSAxMC4zNUg1LjA4NzVDNS4wODc1IDkuMzYgNS45MiA4LjU1IDYuOTM3NSA4LjU1SDcuNFY4LjA1NUM2LjYxMzc1IDcuODc1IDYuMDEyNSA3LjE1NSA2LjAxMjUgNi4zQzYuMDEyNSA1LjE3NSA3LjA3NjI1IDQuMjc1IDguMzI1IDQuNTQ1QzguOTcyNSA0LjY4IDkuNTI3NSA1LjIyIDkuNjY2MjUgNS44NUM5Ljg5NzUgNi44ODUgOS4yNSA3Ljc4NSA4LjMyNSA4LjAxVjguNTVIOC43ODc1QzkuODA1IDguNTUgMTAuNjM3NSA5LjM2IDEwLjYzNzUgMTAuMzVaJyBmaWxsPSclMjNEMEQ0REUnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi0tdGludl93aXNobGlzdCBhOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1hc2staW1hZ2UoXCIuLi8uLi9pbWFnZXMvd29vY29tbWVyY2UvaWNvbi1kYXNoYm9hcmQuc3ZnXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtLWN1c3RvbWVyLWxvZ291dCBhOmFmdGVyLFxyXG4gICAgICAgICAgICAmLS1zc28tbG9nb3V0IGE6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBtYXNrLWltYWdlKFwiLi4vLi4vaW1hZ2VzL3dvb2NvbW1lcmNlL2ljb24tbG9nb3V0LnN2Z1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIG1hc2staW1hZ2UoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyOCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI4IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTUuODM4NCAxOC44OTE0SDEwLjY1NDlWNS4wNjg3NkgxNS44Mzg0VjguNjk3MTlIMTguMDI3VjMuOTQ1NjhDMTguMDI3IDMuMzY5NzQgMTcuNTY2MiAyLjkwODk4IDE2Ljk5MDMgMi45MDg5OEgxMC42NTQ5VjAuNzQ5MjAzQzEwLjY1NDkgMC4yMDIwNTkgMTAuMTA3OCAtMC4xNDM1MDYgOS42MTgyMiAwLjA1ODA3MzZMMC44MzUxMTUgNC4wMDMyN0MwLjM0NTU2NSA0LjIzMzY1IDAgNC43MjMyIDAgNS4yNzAzNFYxOC43MTg2QzAgMTkuMjY1NyAwLjMxNjc2OCAxOS43NTUzIDAuODM1MTE1IDE5Ljk4NTZMOS42MTgyMiAyMy45MzA4QzEwLjEwNzggMjQuMTYxMiAxMC42NTQ5IDIzLjc4NjkgMTAuNjU0OSAyMy4yMzk3VjIxLjA3OTlIMTYuOTkwM0MxNy41NjYyIDIxLjA3OTkgMTguMDI3IDIwLjYxOTIgMTguMDI3IDIwLjA0MzJWMTUuMjYyOUgxNS44Mzg0VjE4Ljg5MTRaJyBmaWxsPSclMjNEMEQ0REUnLyUzRSUzQ3BhdGggZD0nTTI3LjA5OTUgMTEuNDMyOUwyMS44NTg0IDcuMTcwOThDMjEuMzk3NyA2Ljc5NjYyIDIwLjY3NzcgNy4xMTMzOSAyMC42Nzc3IDcuNzQ2OTJWMTAuMTk0N0gxMi43Mjk3QzEyLjM4NDIgMTAuMTk0NyAxMi4xMjUgMTAuNDgyNiAxMi4xMjUgMTAuNzk5NFYxMy4yMTg0QzEyLjEyNSAxMy41NjM5IDEyLjQxMyAxMy44MjMxIDEyLjcyOTcgMTMuODIzMUgyMC42Nzc3VjE2LjI3MDlDMjAuNjc3NyAxNi44NzU2IDIxLjM5NzcgMTcuMjIxMiAyMS44NTg0IDE2Ljg0NjhMMjcuMDk5NSAxMi41NTZDMjcuNDQ1IDEyLjI2ODEgMjcuNDQ1IDExLjcyMDkgMjcuMDk5NSAxMS40MzI5WicgZmlsbD0nJTIzRDBENERFJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDQ5MC4zIDQ5MC4zJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTAsMTIxLjA1djI0OC4yYzAsMzQuMiwyNy45LDYyLjEsNjIuMSw2Mi4xaDIwMC42YzM0LjIsMCw2Mi4xLTI3LjksNjIuMS02Mi4xdi00MC4yYzAtNi44LTUuNS0xMi4zLTEyLjMtMTIuMyBzLTEyLjMsNS41LTEyLjMsMTIuM3Y0MC4yYzAsMjAuNy0xNi45LDM3LjYtMzcuNiwzNy42SDYyLjFjLTIwLjcsMC0zNy42LTE2LjktMzcuNi0zNy42di0yNDguMmMwLTIwLjcsMTYuOS0zNy42LDM3LjYtMzcuNmgyMDAuNiBjMjAuNywwLDM3LjYsMTYuOSwzNy42LDM3LjZ2NDAuMmMwLDYuOCw1LjUsMTIuMywxMi4zLDEyLjNzMTIuMy01LjUsMTIuMy0xMi4zdi00MC4yYzAtMzQuMi0yNy45LTYyLjEtNjIuMS02Mi4xSDYyLjEgQzI3LjksNTguOTUsMCw4Ni43NSwwLDEyMS4wNXonIGZpbGw9J2N1cnJlbnRDb2xvcicvJTNFJTNDcGF0aCBkPSdNMzg1LjQsMzM3LjY1YzIuNCwyLjQsNS41LDMuNiw4LjcsMy42czYuMy0xLjIsOC43LTMuNmw4My45LTgzLjljNC44LTQuOCw0LjgtMTIuNSwwLTE3LjNsLTgzLjktODMuOSBjLTQuOC00LjgtMTIuNS00LjgtMTcuMywwcy00LjgsMTIuNSwwLDE3LjNsNjMsNjNIMjE4LjZjLTYuOCwwLTEyLjMsNS41LTEyLjMsMTIuM2MwLDYuOCw1LjUsMTIuMywxMi4zLDEyLjNoMjI5LjhsLTYzLDYzIEMzODAuNiwzMjUuMTUsMzgwLjYsMzMyLjk1LDM4NS40LDMzNy42NXonIGZpbGw9JyUyM0QwRDRERScvJTNFJTNDL3N2ZyUzRVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLS1jdXN0b20tbG9nb3V0IGE6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBtYXNrLWltYWdlKFwiLi4vLi4vaW1hZ2VzL3dvb2NvbW1lcmNlL2ljb24tbG9nb3V0LnN2Z1wiKTtcclxuICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIG1hc2staW1hZ2UoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyOCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI4IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTUuODM4NCAxOC44OTE0SDEwLjY1NDlWNS4wNjg3NkgxNS44Mzg0VjguNjk3MTlIMTguMDI3VjMuOTQ1NjhDMTguMDI3IDMuMzY5NzQgMTcuNTY2MiAyLjkwODk4IDE2Ljk5MDMgMi45MDg5OEgxMC42NTQ5VjAuNzQ5MjAzQzEwLjY1NDkgMC4yMDIwNTkgMTAuMTA3OCAtMC4xNDM1MDYgOS42MTgyMiAwLjA1ODA3MzZMMC44MzUxMTUgNC4wMDMyN0MwLjM0NTU2NSA0LjIzMzY1IDAgNC43MjMyIDAgNS4yNzAzNFYxOC43MTg2QzAgMTkuMjY1NyAwLjMxNjc2OCAxOS43NTUzIDAuODM1MTE1IDE5Ljk4NTZMOS42MTgyMiAyMy45MzA4QzEwLjEwNzggMjQuMTYxMiAxMC42NTQ5IDIzLjc4NjkgMTAuNjU0OSAyMy4yMzk3VjIxLjA3OTlIMTYuOTkwM0MxNy41NjYyIDIxLjA3OTkgMTguMDI3IDIwLjYxOTIgMTguMDI3IDIwLjA0MzJWMTUuMjYyOUgxNS44Mzg0VjE4Ljg5MTRaJyBmaWxsPSclMjNEMEQ0REUnLyUzRSUzQ3BhdGggZD0nTTI3LjA5OTUgMTEuNDMyOUwyMS44NTg0IDcuMTcwOThDMjEuMzk3NyA2Ljc5NjYyIDIwLjY3NzcgNy4xMTMzOSAyMC42Nzc3IDcuNzQ2OTJWMTAuMTk0N0gxMi43Mjk3QzEyLjM4NDIgMTAuMTk0NyAxMi4xMjUgMTAuNDgyNiAxMi4xMjUgMTAuNzk5NFYxMy4yMTg0QzEyLjEyNSAxMy41NjM5IDEyLjQxMyAxMy44MjMxIDEyLjcyOTcgMTMuODIzMUgyMC42Nzc3VjE2LjI3MDlDMjAuNjc3NyAxNi44NzU2IDIxLjM5NzcgMTcuMjIxMiAyMS44NTg0IDE2Ljg0NjhMMjcuMDk5NSAxMi41NTZDMjcuNDQ1IDEyLjI2ODEgMjcuNDQ1IDExLjcyMDkgMjcuMDk5NSAxMS40MzI5WicgZmlsbD0nJTIzRDBENERFJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFzay1pbWFnZShcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDQ5MC4zIDQ5MC4zJyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTAsMTIxLjA1djI0OC4yYzAsMzQuMiwyNy45LDYyLjEsNjIuMSw2Mi4xaDIwMC42YzM0LjIsMCw2Mi4xLTI3LjksNjIuMS02Mi4xdi00MC4yYzAtNi44LTUuNS0xMi4zLTEyLjMtMTIuMyBzLTEyLjMsNS41LTEyLjMsMTIuM3Y0MC4yYzAsMjAuNy0xNi45LDM3LjYtMzcuNiwzNy42SDYyLjFjLTIwLjcsMC0zNy42LTE2LjktMzcuNi0zNy42di0yNDguMmMwLTIwLjcsMTYuOS0zNy42LDM3LjYtMzcuNmgyMDAuNiBjMjAuNywwLDM3LjYsMTYuOSwzNy42LDM3LjZ2NDAuMmMwLDYuOCw1LjUsMTIuMywxMi4zLDEyLjNzMTIuMy01LjUsMTIuMy0xMi4zdi00MC4yYzAtMzQuMi0yNy45LTYyLjEtNjIuMS02Mi4xSDYyLjEgQzI3LjksNTguOTUsMCw4Ni43NSwwLDEyMS4wNXonIGZpbGw9J2N1cnJlbnRDb2xvcicvJTNFJTNDcGF0aCBkPSdNMzg1LjQsMzM3LjY1YzIuNCwyLjQsNS41LDMuNiw4LjcsMy42czYuMy0xLjIsOC43LTMuNmw4My45LTgzLjljNC44LTQuOCw0LjgtMTIuNSwwLTE3LjNsLTgzLjktODMuOSBjLTQuOC00LjgtMTIuNS00LjgtMTcuMywwcy00LjgsMTIuNSwwLDE3LjNsNjMsNjNIMjE4LjZjLTYuOCwwLTEyLjMsNS41LTEyLjMsMTIuM2MwLDYuOCw1LjUsMTIuMywxMi4zLDEyLjNoMjI5LjhsLTYzLDYzIEMzODAuNiwzMjUuMTUsMzgwLjYsMzMyLjk1LDM4NS40LDMzNy42NXonIGZpbGw9JyUyM0QwRDRERScvJTNFJTNDL3N2ZyUzRVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtY29udGVudCB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMmVtOyAvLyBUT0RPXHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1oMi1mb250LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFyayB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLVBhZ2luYXRpb24ge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFjY291bnQgZGV0YWlscyBwYWdlXHJcbiAgICAgICAgLmVkaXQtYWNjb3VudCB7XHJcbiAgICAgICAgICAgIGZpZWxkc2V0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZWdlbmQge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0taDItZm9udC1zaXplKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxZW0gMDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3AtbVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtb3JkZXJzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTByZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcsXHJcbiAgICAgICAgJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDdyZW0gMCAwIDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVyZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5vcmRlcnMge1xyXG4gICAgICAgICAgICAmX19oZWFkZXIge1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTRweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAmLi1kZXNrdG9wLW9ubHkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLi1tb2JpbGUtb25seSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2Mtc20tdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmPmRpdiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fYm9keSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAub3JkZXJzX19oZWFkZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwJTtcclxuICAgICAgICAgICAgICAgICAgICAmPmRpdiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCNkMGQ0ZGUsIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS1vcmRlcnMtdGFibGUge1xyXG4gICAgICAgICAgICAmX19oZWFkZXItb3JkZXItbnVtYmVyLFxyXG4gICAgICAgICAgICAmX19jZWxsLW9yZGVyLW51bWJlciB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2JTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19oZWFkZXItb3JkZXItZGF0ZSxcclxuICAgICAgICAgICAgJl9fY2VsbC1vcmRlci1kYXRlIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9faGVhZGVyLW9yZGVyLXN0YXR1cyxcclxuICAgICAgICAgICAgJl9fY2VsbC1vcmRlci1zdGF0dXMge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIyJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19oZWFkZXItb3JkZXItdG90YWwsXHJcbiAgICAgICAgICAgICZfX2NlbGwtb3JkZXItdG90YWwge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19oZWFkZXItb3JkZXItYWN0aW9ucyxcclxuICAgICAgICAgICAgJl9fY2VsbC1vcmRlci1hY3Rpb25zIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNiU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fcm93IHtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmPmRpdiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCNkMGQ0ZGUsIDAuNSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogMzlweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICZfX2NlbGwtb3JkZXItbnVtYmVyIHtcclxuICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19jZWxsLW9yZGVyLWRhdGUge1xyXG4gICAgICAgICAgICAgICAgdGltZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtYmFzaWMtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19jZWxsLW9yZGVyLXN0YXR1cyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWJhc2ljLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fY2VsbC1vcmRlci10b3RhbCB7XHJcbiAgICAgICAgICAgICAgICBzcGFuLFxyXG4gICAgICAgICAgICAgICAgZGVsIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1iYXNpYy10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICZfX2NlbGwtb3JkZXItYWN0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICAuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDEwcHggY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICYuY2FuY2VsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYudmlldyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE3JyBoZWlnaHQ9JzExJyB2aWV3Qm94PScwIDAgMTcgMTEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J004LjUgMC41OTE3OTdDNC44NjcwOCAwLjU5MTc5NyAxLjY5NjkxIDIuNTY2NDQgMCA1LjUwMDA4QzEuNjk2OTEgOC40MzMzIDQuODY3MDggMTAuNDA4NCA4LjUgMTAuNDA4NEMxMi4xMzI5IDEwLjQwODQgMTUuMzAzMSA4LjQzMzMgMTcgNS41MDAwOEMxNS4zMDMxIDIuNTY2NDQgMTIuMTMyOSAwLjU5MTc5NyA4LjUgMC41OTE3OTdaTTguNSA5LjMxMTE1QzYuMzk1NzEgOS4zMTExNSA0LjY4OTM2IDcuNjA0OCA0LjY4OTM2IDUuNTAwMDhDNC42ODkzNiAzLjM5NTggNi4zOTU3MSAxLjY4OTAxIDguNSAxLjY4OTAxQzEwLjYwNDMgMS42ODkwMSAxMi4zMTE1IDMuMzk1OCAxMi4zMTE1IDUuNTAwMDhDMTIuMzExNSA3LjYwNDggMTAuNjA0MyA5LjMxMTE1IDguNSA5LjMxMTE1WicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0NwYXRoIGQ9J00xMC4xMTc5IDQuOTQxMDRDOS41MzU0IDQuOTQxMDQgOS4wNjMyIDQuNDY4ODQgOS4wNjMyIDMuODg2NzVDOS4wNjMyIDMuNTMyMTcgOS4yNDAwNiAzLjIxOTY2IDkuNTA3NDkgMy4wMjkwN0M5LjE5Nzk5IDIuOTAyODYgOC44NTkzIDIuODMyMDMgOC41MDM4NiAyLjgzMjAzQzcuMDI5NzQgMi44MzIwMyA1LjgzNTk0IDQuMDI2MjYgNS44MzU5NCA1LjUwMDM4QzUuODM1OTQgNi45NzQ1IDcuMDI5NzQgOC4xNjkxNiA4LjUwMzg2IDguMTY5MTZDOS45Nzc5OCA4LjE2OTE2IDExLjE3MjYgNi45NzQ1IDExLjE3MjYgNS41MDAzOEMxMS4xNzI2IDUuMTQ0OTQgMTEuMTAyMiA0LjgwNjY4IDEwLjk3NTYgNC40OTY3NUMxMC43ODQ2IDQuNzY1MDQgMTAuNDcyNSA0Ljk0MTA0IDEwLjExNzkgNC45NDEwNFonIGZpbGw9JyUyMzIxM0I4QycvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLnBheSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzExJyB2aWV3Qm94PScwIDAgMTIgMTEnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00wLjU2MDc2NyAwLjY5OTk1MUgxMS40MzkxQzExLjc0ODYgMC42OTk5NTEgMTEuOTk5OCAwLjk3MTIzMSAxMS45OTk4IDEuMzA1NzVWMy4yODI2M0gwVjEuMzA1NzVDMCAwLjk3MTI0MyAwLjI1MTA2MyAwLjY5OTk1MSAwLjU2MDY1NSAwLjY5OTk1MUgwLjU2MDc2N1pNMTIgNC41MTE0NVY5LjY5NDE1QzEyIDEwLjAyODUgMTEuNzQ4NyAxMC4zIDExLjQzOTMgMTAuM0gwLjU2MDk2MkMwLjI1MTM4IDEwLjMgMC4wMDAzMDYzNjggMTAuMDI4NCAwLjAwMDMwNjM2OCA5LjY5NDE1VjQuNTExNDVIMTJaJyBmaWxsPSclMjMyMTNCOEMnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi53b29jb21tZXJjZS1mb3JtLWxvZ2luLFxyXG4ud29vY29tbWVyY2UtZm9ybS1yZWdpc3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgYm9yZGVyLXJhZGl1czogY2xhbXAoMTBweCwgMS4wNXZ3LCAyMHB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMTBweCA2MHB4IHJnYmEoMjIsIDM5LCA5MiwgMC4yKTtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgbWFyZ2luLXRvcDogMzVweDtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICBwYWRkaW5nOiBjbGFtcCgyMHB4LCAyLjR2dywgNDhweCkgY2xhbXAoMzBweCwgMi42NXZ3LCA1MnB4KTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQWRkcmVzc2VzIHBhZ2VcclxuLmFkZHJlc3NlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgPioge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLXZlcnRpY2FsLXNwYWNlKTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgNDAlOyAvLyBUT0RPXHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTAlOyAvLyBUT0RPXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnRpdGxlIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1oMi1mb250LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjJlbSAwIDA7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZWRpdCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvd29vY29tbWVyY2UvaWNvbi1wZW4uc3ZnKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLXdjLWFjYy1uYXYtbGluay1pY29uLXNpemUpO1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS13Yy1hY2MtbmF2LWxpbmstaWNvbi1zaXplKTtcclxuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0td2MtYWNjLW5hdi1saW5rLWljb24tc2l6ZSk7XHJcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS13Yy1hY2MtbmF2LWxpbmstaWNvbi1zaXplKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtY29sdW1uX190aXRsZSB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLWgyLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICB9XHJcbiAgICBhZGRyZXNzIHtcclxuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFyZ2VyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIExvZ2luL1JlZ2lzdGVyIHBhZ2VzXHJcbiNjdXN0b21lcl9sb2dpbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICBnYXA6IDMwcHg7IC8vIFRPRE9cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcclxuICAgICAgICA+ZGl2IHtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICAgICAgJi51LWNvbHVtbjEge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBoMiB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLWgyLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzM7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgIC8vIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gU2lkZWJhciBvbiBtb2JpbGUgcmVzb2x1dGlvbnNcclxuQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAud29vY29tbWVyY2UtbmF2LXRvZ2dsZSB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIC5maWx0ZXItYnRuIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgJi5pcy1hY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAud29vY29tbWVyY2UtbmF2aWdhdGlvbi13cmFwcGVyLmlzLXZpc2libGUgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uIHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLU15QWNjb3VudCB7XHJcbiAgICAgICAgJi1uYXZpZ2F0aW9uIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLWNvbnRlbnQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNDBweDsgLy8gU3BhY2UgZm9yIHRvZ2dsZSBzaWRlYmFyIGJ1dHRvblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ0MHB4OyAvLyBUT0RPOiBIZWlnaHQgb2YgdGhlIHNpZGViYXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIEltcGFjdCByZWZlcnJhbCBteSBhY2NvdW50IHBhZ2UgKi9cclxuLmltcGFjdC1yZWZlcnJhbC1teS1hY2NvdW50IHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS13Yy1hY2MtbmF2LWxpbmstcHRiLCAwKSB2YXIoLS13Yy1hY2MtbmF2LWxpbmstcGxyLCAwKTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBpZnJhbWUsXHJcbiAgICBpbXBhY3QtZW1iZWQge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBDYXJ0IHBhZ2VcclxuICogVE9ETzogUmVmYWN0b3IgdGhpcy4uLldJUFxyXG4gKi9cclxuXHJcbmJvZHkud29vY29tbWVyY2UtY2FydCB7XHJcbiAgICAtLXdjLWNhcnQtaW1nLXNpemU6IDEwOXB4O1xyXG4gICAgLS13Yy1jYXJ0LXJlbGF0ZWQtY29sOiA1MCU7XHJcbiAgICAtLXdjLWNhcnQtdG90YWwtY29sOiAxMDAlO1xyXG4gICAgLS13Yy1xdWFudGl0eS1pbnB1dC1zaXplOiA1OXB4O1xyXG4gICAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtY29sLWl0ZW1zOiAzO1xyXG4gICAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtZ2FwOiAzMHB4O1xyXG4gICAgLS13Yy1yZWxhdGVkLXByb2R1Y3QtaW1hZ2UtaGVpZ2h0OiAyMDBweDtcclxuICAgIC0td2MtY2FydC1iYXNlLWZvbnQ6IGNsYW1wKDEuM3JlbSwgMC44NHZ3LCAxLjZyZW0pO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3AtbVwiKSB7XHJcbiAgICAgICAgLS13Yy1jYXJ0LWltZy1zaXplOiA5MHB4O1xyXG4gICAgICAgIC0td2MtY2FydC10b3RhbC1jb2w6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAtLXdjLWNhcnQtcmVsYXRlZC1jb2w6IDEwMCU7XHJcbiAgICAgICAgLS13Yy1jYXJ0LXRvdGFsLWNvbDogMTAwJTtcclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDdyZW07XHJcbiAgICAgICAgPi5jb250YWluZXIge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA1OCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgPi5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYXJ0LWNvbGxhdGVyYWxzIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzNiU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnZhcmlhdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgLnZhcmlhdGlvbi1pdGVtIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNWVtO1xyXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBkdCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRkIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5jYXJ0LWVtcHR5IHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjFweDtcclxuICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgcGFkZGluZzogODBweCAwIDAgMDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzQzJyBoZWlnaHQ9JzQwJyB2aWV3Qm94PScwIDAgNDMgNDAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMzguNDAxNSA3LjM4ODQ2SDEzLjMzMzdDMTIuOTgxNSA3LjM4ODQ2IDEyLjY0MzcgNy41MjgzOCAxMi4zOTQ2IDcuNzc3NDRDMTIuMTQ1NiA4LjAyNjUgMTIuMDA1NiA4LjM2NDMgMTIuMDA1NiA4LjcxNjUyQzEyLjAwNTYgOS4wNjg3NSAxMi4xNDU2IDkuNDA2NTUgMTIuMzk0NiA5LjY1NTYxQzEyLjY0MzcgOS45MDQ2NyAxMi45ODE1IDEwLjA0NDYgMTMuMzMzNyAxMC4wNDQ2SDM4LjQwMTVDMzguNjQ3NiAxMC4wNDQ0IDM4Ljg4OTYgMTAuMTA3MSAzOS4xMDQ2IDEwLjIyNjlDMzkuMzE5NSAxMC4zNDY2IDM5LjUwMDIgMTAuNTE5NCAzOS42Mjk2IDEwLjcyODdDMzkuNzU4OSAxMC45MzggMzkuODMyNSAxMS4xNzcgMzkuODQzMyAxMS40MjI4QzM5Ljg1NDIgMTEuNjY4NiAzOS44MDIgMTEuOTEzMSAzOS42OTE2IDEyLjEzMzFDMzguMTczOSAxNS4xNzkzIDM2LjAwNjUgMjEuOTc0NCAzNC45MjQzIDI0LjEzNzNDMzQuODA0NSAyNC4zNzY4IDM0LjYyMDMgMjQuNTc4MiAzNC4zOTI0IDI0LjcxOUMzNC4xNjQ1IDI0Ljg1OTcgMzMuOTAyIDI0LjkzNDIgMzMuNjM0MSAyNC45MzQxSDE1LjE3OTNDMTQuODkgMjQuOTM0NSAxNC42MDcxIDI0Ljg0NzggMTQuMzY3NiAyNC42ODU0QzE0LjEyODEgMjQuNTIzIDEzLjk0MjkgMjQuMjkyNCAxMy44MzYxIDI0LjAyMzRDMTMuODM2MSAyNC4wMDgzIDkuNjg0OTQgNS4zODQ5OCA5LjY4NDk0IDUuMzg0OThDOS4zNDcwNiAzLjg1ODU5IDguNDk4NTMgMi40OTMxNiA3LjI3OTU4IDEuNTE0M0M2LjA2MDYzIDAuNTM1NDQyIDQuNTQ0MiAwLjAwMTczNjU2IDIuOTgwODYgMC4wMDEzNzQ3NkgxLjMzMTAzQzEuMTU0MTEgLTAuMDA2ODU3NCAwLjk3NzQyMSAwLjAyMTk1IDAuODEyMjggMC4wODU5NTE5QzAuNjQ3MTM5IDAuMTQ5OTU0IDAuNDk3MTg0IDAuMjQ3NzM5IDAuMzcyMDIgMC4zNzMwNDZDMC4yNDY4NTYgMC40OTgzNTMgMC4xNDkyNDIgMC42NDg0MTkgMC4wODU0MjgyIDAuODEzNjM0QzAuMDIxNjE0NyAwLjk3ODg0OCAtMC4wMDY5OTA5NSAxLjE1NTU3IDAuMDAxNDQzMDQgMS4zMzI0OEMwLjAwMjI0NDgyIDEuNjg0NDYgMC4xNDI0MjMgMi4wMjE3OSAwLjM5MTMxIDIuMjcwNjhDMC42NDAxOTcgMi41MTk1NiAwLjk3NzUzMSAyLjY1OTc0IDEuMzI5NTEgMi42NjA1NEgyLjk4MDg2QzMuOTM4NTYgMi42NjAyOCA0Ljg2Nzc1IDIuOTg2NDEgNS42MTUyMSAzLjU4NTE1QzYuMzYyNjcgNC4xODM4OSA2Ljg4Mzc2IDUuMDE5NDkgNy4wOTI1NiA1Ljk1NDE1TDExLjI1NTkgMjQuNjU3OUMxMS4yNjY1IDI0LjcwMDQgMTEuMjc4NiAyNC43NDU5IDExLjI5MjMgMjQuNzg4NEMxMS41NjQzIDI1LjYwNDIgMTIuMDg2IDI2LjMxMzggMTIuNzgzNiAyNi44MTY2QzEzLjQ4MTMgMjcuMzE5NSAxNC4zMTk0IDI3LjU5MDEgMTUuMTc5MyAyNy41OTAySDMzLjYzNDFDMzQuMzk1MyAyNy41OTAyIDM1LjE0MTQgMjcuMzc4MiAzNS43ODg4IDI2Ljk3NzlDMzYuNDM2MiAyNi41Nzc3IDM2Ljk1OTQgMjYuMDA1IDM3LjI5OTYgMjUuMzI0MkMzOC4zODAzIDIzLjE2MTMgNDAuNTQzMSAxNi4zNjkyIDQyLjA2NyAxMy4zMkM0Mi4zNzk2IDEyLjY5NTIgNDIuNTI3MiAxMi4wMDA4IDQyLjQ5NTkgMTEuMzAyOEM0Mi40NjQ2IDEwLjYwNDkgNDIuMjU1NCA5LjkyNjUzIDQxLjg4ODEgOS4zMzIyMUM0MS41MjA4IDguNzM3ODggNDEuMDA3NyA4LjI0NzMyIDQwLjM5NzUgNy45MDcxMkMzOS43ODcyIDcuNTY2OTIgMzkuMTAwMiA3LjM4ODM4IDM4LjQwMTUgNy4zODg0NlonIGZpbGw9JyUyM0QyRDhFMCcvJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTE2LjYyMTQgMjkuMTQ3M0MxNS41NDgyIDI5LjE0NzMgMTQuNDk5IDI5LjQ2NTYgMTMuNjA2NyAzMC4wNjE5QzEyLjcxNDMgMzAuNjU4MiAxMi4wMTg5IDMxLjUwNTcgMTEuNjA4MiAzMi40OTczQzExLjE5NzYgMzMuNDg4OSAxMS4wOTAyIDM0LjU4IDExLjI5OTcgMzUuNjMyNkMxMS41MDkyIDM2LjY4NTIgMTIuMDI2MSAzNy42NTIgMTIuNzg1MSAzOC40MTA4QzEzLjU0NDEgMzkuMTY5NiAxNC41MTExIDM5LjY4NjMgMTUuNTYzOCAzOS44OTU1QzE2LjYxNjQgNDAuMTA0NyAxNy43MDc1IDM5Ljk5NyAxOC42OTg5IDM5LjU4NjFDMTkuNjkwNCAzOS4xNzUxIDIwLjUzNzcgMzguNDc5NCAyMS4xMzM4IDM3LjU4NjlDMjEuNzI5OCAzNi42OTQ0IDIyLjA0NzggMzUuNjQ1MiAyMi4wNDc1IDM0LjU3MTlDMjIuMDQ2MyAzMy4xMzMzIDIxLjQ3NDIgMzEuNzU0IDIwLjQ1NjggMzAuNzM3QzE5LjQzOTQgMjkuNzE5OSAxOC4wNiAyOS4xNDgxIDE2LjYyMTQgMjkuMTQ3M1pNMTYuNjIxNCAzNy4zNDM0QzE2LjA3MzYgMzcuMzQzNCAxNS41MzgxIDM3LjE4MSAxNS4wODI3IDM2Ljg3NjdDMTQuNjI3MiAzNi41NzI0IDE0LjI3MjEgMzYuMTM5OSAxNC4wNjI0IDM1LjYzMzhDMTMuODUyNyAzNS4xMjc4IDEzLjc5NzggMzQuNTcwOSAxMy45MDQ2IDM0LjAzMzZDMTQuMDExMyAzMy40OTYzIDE0LjI3NSAzMy4wMDI4IDE0LjY2MjIgMzIuNjE1M0MxNS4wNDk1IDMyLjIyNzkgMTUuNTQyOSAzMS45NjM5IDE2LjA4MDEgMzEuODU2OUMxNi42MTczIDMxLjc0OTggMTcuMTc0MiAzMS44MDQ1IDE3LjY4MDQgMzIuMDEzOUMxOC4xODY2IDMyLjIyMzMgMTguNjE5MyAzMi41NzgxIDE4LjkyMzggMzMuMDMzNEMxOS4yMjg0IDMzLjQ4ODcgMTkuMzkxMSAzNC4wMjQxIDE5LjM5MTQgMzQuNTcxOUMxOS4zOTEgMzUuMzA2NiAxOS4wOTkxIDM2LjAxMTEgMTguNTc5NyAzNi41MzA3QzE4LjA2MDQgMzcuMDUwMyAxNy4zNTYxIDM3LjM0MjYgMTYuNjIxNCAzNy4zNDM0WicgZmlsbD0nJTIzRDJEOEUwJy8lM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMzEuNzM4NiAyOS4xNDczQzMwLjY2NTQgMjkuMTQ3MyAyOS42MTYyIDI5LjQ2NTYgMjguNzIzOSAzMC4wNjE5QzI3LjgzMTUgMzAuNjU4MiAyNy4xMzYgMzEuNTA1NyAyNi43MjU0IDMyLjQ5NzNDMjYuMzE0OCAzMy40ODg5IDI2LjIwNzQgMzQuNTggMjYuNDE2OSAzNS42MzI2QzI2LjYyNjQgMzYuNjg1MiAyNy4xNDMzIDM3LjY1MiAyNy45MDIzIDM4LjQxMDhDMjguNjYxMyAzOS4xNjk2IDI5LjYyODMgMzkuNjg2MyAzMC42ODEgMzkuODk1NUMzMS43MzM2IDQwLjEwNDcgMzIuODI0NyAzOS45OTcgMzMuODE2MSAzOS41ODYxQzM0LjgwNzYgMzkuMTc1MSAzNS42NTQ5IDM4LjQ3OTQgMzYuMjUxIDM3LjU4NjlDMzYuODQ3IDM2LjY5NDQgMzcuMTY1IDM1LjY0NTIgMzcuMTY0NyAzNC41NzE5QzM3LjE2MzkgMzMuMTMzMiAzNi41OTE5IDMxLjc1MzcgMzUuNTc0NSAzMC43MzY1QzM0LjU1NyAyOS43MTkzIDMzLjE3NzMgMjkuMTQ3NyAzMS43Mzg2IDI5LjE0NzNaTTMxLjczODYgMzcuMzQzNEMzMS4xOTA4IDM3LjM0MzQgMzAuNjU1MyAzNy4xODEgMzAuMTk5OCAzNi44NzY3QzI5Ljc0NDQgMzYuNTcyNCAyOS4zODkzIDM2LjEzOTkgMjkuMTc5NiAzNS42MzM4QzI4Ljk2OTkgMzUuMTI3OCAyOC45MTUgMzQuNTcwOSAyOS4wMjE3IDM0LjAzMzZDMjkuMTI4NSAzMy40OTYzIDI5LjM5MjIgMzMuMDAyOCAyOS43Nzk0IDMyLjYxNTNDMzAuMTY2NiAzMi4yMjc5IDMwLjY2MDEgMzEuOTYzOSAzMS4xOTczIDMxLjg1NjlDMzEuNzM0NSAzMS43NDk4IDMyLjI5MTQgMzEuODA0NSAzMi43OTc2IDMyLjAxMzlDMzMuMzAzNyAzMi4yMjMzIDMzLjczNjUgMzIuNTc4MSAzNC4wNDEgMzMuMDMzNEMzNC4zNDU2IDMzLjQ4ODcgMzQuNTA4MyAzNC4wMjQxIDM0LjUwODYgMzQuNTcxOUMzNC41MDgyIDM1LjMwNjYgMzQuMjE2MiAzNi4wMTExIDMzLjY5NjkgMzYuNTMwN0MzMy4xNzc2IDM3LjA1MDMgMzIuNDczMyAzNy4zNDI2IDMxLjczODYgMzcuMzQzNFonIGZpbGw9JyUyM0QyRDhFMCcvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB0b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiA0NXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53Yy1lbXB0eS1jYXJ0LW1lc3NhZ2Uge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgLnJldHVybi10by1zaG9wIHtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byAxODBweCBhdXRvO1xyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2xhbXAoNDVweCwgMy41dncsIDcwcHgpO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjbGFtcCg0NXB4LCAzLjV2dywgNzBweCk7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xLjUyMDkyIDQuNTYyOTFDMC42ODA5MzggMy43MjI5MyAwLjY4MDkzOCAyLjM2MTA1IDEuNTIwOTIgMS41MjEwN0MyLjM2MDkgMC42ODEwOTUgMy43MjI3NyAwLjY4MTA5NSA0LjU2Mjc1IDEuNTIxMDdMOC40NTM0NyA1LjQxMTc5QzkuMjkzNDUgNi4yNTE3NyA5LjI5MzQ1IDcuNjEzNjUgOC40NTM0NyA4LjQ1MzYzQzcuNjEzNDkgOS4yOTM2MSA2LjI1MTYyIDkuMjkzNjEgNS40MTE2NCA4LjQ1MzYzTDEuNTIwOTIgNC41NjI5MVonIGZpbGw9JyUyMzI0NTVDOScvJTNFJTNDcGF0aCBkPSdNMTcuOTc5MSAxNC44OTEyQzE4LjgxOTEgMTUuNzMxMiAxOC44MTkxIDE3LjA5MyAxNy45NzkxIDE3LjkzM0MxNy4xMzkxIDE4Ljc3MyAxNS43NzcyIDE4Ljc3MyAxNC45MzcyIDE3LjkzM0wxMS4wNDY1IDE0LjA0MjNDMTAuMjA2NSAxMy4yMDIzIDEwLjIwNjUgMTEuODQwNSAxMS4wNDY1IDExLjAwMDVDMTEuODg2NSAxMC4xNjA1IDEzLjI0ODQgMTAuMTYwNSAxNC4wODg0IDExLjAwMDVMMTcuOTc5MSAxNC44OTEyWicgZmlsbD0nJTIzRUI4QjM0Jy8lM0UlM0NwYXRoIGQ9J00xNy45NzkxIDQuNTYyOTFDMTguODE5MSAzLjcyMjkzIDE4LjgxOTEgMi4zNjEwNSAxNy45NzkxIDEuNTIxMDdDMTcuMTM5MSAwLjY4MTA5NSAxNS43NzcyIDAuNjgxMDk1IDE0LjkzNzIgMS41MjEwN0wxMS4wNDY1IDUuNDExNzlDMTAuMjA2NSA2LjI1MTc3IDEwLjIwNjUgNy42MTM2NSAxMS4wNDY1IDguNDUzNjNDMTEuODg2NSA5LjI5MzYxIDEzLjI0ODQgOS4yOTM2MSAxNC4wODg0IDguNDUzNjNMMTcuOTc5MSA0LjU2MjkxWicgZmlsbD0nJTIzODFCMjVDJy8lM0UlM0NwYXRoIGQ9J00xLjUyMDkyIDE0Ljg5MTJDMC42ODA5MzggMTUuNzMxMiAwLjY4MDkzOCAxNy4wOTMgMS41MjA5MiAxNy45MzNDMi4zNjA5IDE4Ljc3MyAzLjcyMjc3IDE4Ljc3MyA0LjU2Mjc1IDE3LjkzM0w4LjQ1MzQ3IDE0LjA0MjNDOS4yOTM0NSAxMy4yMDIzIDkuMjkzNDUgMTEuODQwNSA4LjQ1MzQ3IDExLjAwMDVDNy42MTM0OSAxMC4xNjA1IDYuMjUxNjIgMTAuMTYwNSA1LjQxMTY0IDExLjAwMDVMMS41MjA5MiAxNC44OTEyWicgZmlsbD0nJTIzNUUzMjhCJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3M7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI0cHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tYnRuLXBhZGRpbmctbGVmdC1yaWdodCwgMjBweCkgLyAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNhcmRzLXByb2dyYW1zX193cmFwIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTB2bWluO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC01MHZ3O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxNTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbnRhaW5lciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgaDEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDMuNnJlbSwgMi44MnZ3LCA1LjVyZW0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1ub3RpY2VzLXdyYXBwZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IGF1dG87XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICAuY3Jvc3Mtc2VsbHMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIC5wcm9kdWN0cyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIC5sLXJjYmxfX2NvbCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zYWxlLWZsYXNoIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNiZWY1NTcgMCUsICNiZWY1NTcgNTAlLCB0cmFuc3BhcmVudCA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAtNXB4O1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDE0cHg7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IC01cHg7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyMDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4IDNweDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDMxNWRlZywgIzk1YzA0NSAwJSwgIzk1YzA0NSA1MCUsIHRyYW5zcGFyZW50IDUwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDVweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTFweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fZGlzY291bnQge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fcGVyY2VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmX19vZmYge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmMtYmxvY2sge1xyXG4gICAgICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDExMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmX19tZWRpYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxNTtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fcHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA3MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5mcm9tIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuZnJvbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYWRkaW5nLWxlZnQ6IDdweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM4YTkzYWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YTkzYWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigtMTBkZWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDIwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDlweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZGkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjOGE5M2FlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tZGV0YWlscyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZyb20ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtY2FydC1iYXNlLWZvbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fdGV4dCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICZfX2JvZHkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjAwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHggMTBweCAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1jYXJ0LWJhc2UtZm9udCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYucmVhZC1tb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTEnIGhlaWdodD0nNicgdmlld0JveD0nMCAwIDExIDYnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J001LjQ5OTcyIDMuNjc5MjVMMS43OTEzNiAwLjI3OTc1QzEuMzgxMTUgLTAuMDkzMjUwNCAwLjcxNzQ1MSAtMC4wOTMyNTA0IDAuMzA3MjQ0IDAuMjc5NzQ5Qy0wLjEwMjQxNCAwLjY1Njc0OSAtMC4xMDI0MTQgMS4yNjU3NSAwLjMwNzI0NCAxLjY0Mjc1TDQuNzU3OTQgNS43MjAyNUM1LjE2ODE1IDYuMDkzMjUgNS44MzI0IDYuMDkzMjUgNi4yNDIwNiA1LjcyMDI1TDEwLjY5MjggMS42NDI3NUMxMS4xMDMgMS4yNjU3NSAxMS4xMDE5IDAuNjU2NzUgMTAuNjkyOCAwLjI3OTc1QzEwLjI4MzEgLTAuMDkzMjUgOS42MTk0IC0wLjA5MzI1MDEgOS4yMDkxOSAwLjI3OTc1TDUuNDk5NzIgMy42NzkyNVonIGZpbGw9JyUyMzMzOTdFRicvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDExcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmlzLWFjdGl2ZSAmIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzExJyBoZWlnaHQ9JzEyJyB2aWV3Qm94PScwIDAgMTEgMTInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNNC44MTI1IDcuMzEyNVYxMS41SDYuODEyNVY3LjMxMjVMMTEgNy4zMTI1VjUuMzEyNUw2LjgxMjUgNS4zMTI1VjAuNUg0LjgxMjVWNS4zMTI1TDAgNS4zMTI1VjcuMzEyNUw0LjgxMjUgNy4zMTI1WicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDIwcHggY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDExcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFRhYmxlIHNlY3Rpb25cclxuLndvb2NvbW1lcmNlLWNhcnQtZm9ybSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSk7XHJcbiAgICAuY2FydF9pdGVtIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvcjIpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgLnByb2R1Y3QtdGh1bWJuYWlsIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNCU7XHJcbiAgICAgICAgICAgIGEge1xyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9kdWN0LXdyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIuNHJlbSAzLjVyZW07XHJcbiAgICAgICAgICAgIC8vIHdpZHRoOiA3NiU7XHJcbiAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xyXG4gICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgICAmPmEge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgMS4wNXZ3LCAycmVtKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCAwIDA7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuN2VtO1xyXG4gICAgICAgICAgICAgICAgLnZhcmlhdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA1cHggMTBweDtcclxuICAgICAgICAgICAgICAgICAgICAudmFyaWF0aW9uLWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnByb2R1Y3Qtc3VidG90YWwge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLVByaWNlLWFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjlyZW07XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tZGV0YWlscyB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc3Vic2NyaXB0aW9uLXN3aXRjaC1kaXJlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZHVjdC1yZW1vdmUge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzLjNyZW07XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTdweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB0b3A6IC0xOHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMy4zcmVtO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtMXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB0YWJsZSB7XHJcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIH1cclxuICAgIHRoZWFkIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtcclxuICAgICAgICB0aCB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1jb2xvcik7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFyZ2VyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAvLyBUT0RPOiBNYXliZSB3ZSBjYW4gdXNlIGZvcm0gbGFiZWwgc3R5bGVzP1xyXG4gICAgICAgICAgICAmLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGJvZHkge1xyXG4gICAgICAgIHRyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjRweDsgLy8gVE9ET1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjRweDsgLy8gVE9ET1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFByb2R1Y3QgdGFibGUgcm93XHJcbiAgICB0ZC5wcm9kdWN0IHtcclxuICAgICAgICAmLXRodW1ibmFpbCBpbWcge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXdjLWNhcnQtaW1nLXNpemUpO1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0td2MtY2FydC1pbWctc2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtbmFtZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyAvLyBUT0RPXHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY3O1xyXG4gICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBmb3IgdGV4dCBsZW5ndGguIEJFIG9yIEZFP1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLXByaWNlIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07IC8vIFRPRE9cclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtcXVhbnRpdHkge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIC5xdWFudGl0eSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgICAgICAgICAgICAgIC5pdGVtX3F0eSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWlucHV0LWNvbG9yKTtcclxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OyAvLyBUT0RPXHJcbiAgICAgICAgICAgICAgICAgICAgJi5taW51cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYucGx1cyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XHJcbiAgICAgICAgICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuICAgICAgICAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGlucHV0IGFycm93c1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXdjLXF1YW50aXR5LWlucHV0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcclxuICAgICAgICAgICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gSGlkZSBsYWJlbFxyXG4gICAgICAgICAgICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi1zdWJ0b3RhbCB7XHJcbiAgICAgICAgICAgIC8vIFRPRE86IER1cGxpY2F0ZWQgY29kZSwgc2FtZSBhcyBwcm9kdWN0LXByaWNlXHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtOyAvLyBUT0RPXHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zMztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLXJlbW92ZSAucmVtb3ZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTInIGhlaWdodD0nMTMnIHZpZXdCb3g9JzAgMCAxMiAxMycgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTkuNzg4MDcgMTEuOTA5OUw2IDguMTIxODNMMi4yMTE5MyAxMS45MDk5QzEuNzk1MjQgMTIuMzI2NiAxLjExMzM5IDEyLjMyNjYgMC42OTY2OTkgMTEuOTA5OUMwLjI4MDAxMSAxMS40OTMyIDAuMjgwMDEyIDEwLjgxMTQgMC42OTY3IDEwLjM5NDdMNC40ODQ3NyA2LjYwNjZMMC42OTY2OTkgMi44MTg1M0MwLjI4MDAxMSAyLjQwMTg0IDAuMjgwMDExIDEuNzE5OTkgMC42OTY2OTkgMS4zMDMzQzEuMTEzMzkgMC44ODY2MTMgMS43OTUyNCAwLjg4NjYxMyAyLjIxMTkzIDEuMzAzM0w2IDUuMDkxMzdMOS43ODgwNyAxLjMwMzNDMTAuMjA0OCAwLjg4NjYxMyAxMC44ODY2IDAuODg2NjEzIDExLjMwMzMgMS4zMDMzQzExLjcyIDEuNzE5OTkgMTEuNzIgMi40MDE4NCAxMS4zMDMzIDIuODE4NTNMNy41MTUyMyA2LjYwNjZMMTEuMzAzMyAxMC4zOTQ3QzExLjcyIDEwLjgxMTQgMTEuNzIgMTEuNDkzMiAxMS4zMDMzIDExLjkwOTlDMTAuODg2NiAxMi4zMjY2IDEwLjIwNDggMTIuMzI2NiA5Ljc4ODA3IDExLjkwOTlaJyBmaWxsPSclMjMyMTNCOEMnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IGF1dG87XHJcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy93b29jb21tZXJjZS9pY29uLWRlbGV0ZS5zdmcpO1xyXG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gQXBwbHkgY291cG9uIGFuZCB1cGRhdGUgY2FydCBidXR0b25zXHJcbiAgICAuYWN0aW9ucyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcjMpO1xyXG4gICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiBjbGFtcCgxMHB4LCAxLjA1dncsIDIwcHgpO1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMS41cmVtO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuY291cG9uIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmlucHV0LXRleHQge1xyXG4gICAgICAgICAgICAgICAgLndvb2NvbW1lcmNlLXBhZ2U6bm90KC53b29jb21tZXJjZS1zaG9wKSAuc2l0ZS1jb250ZW50ICYge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE4JyBoZWlnaHQ9JzE0JyB2aWV3Qm94PScwIDAgMTggMTQnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIG9wYWNpdHk9JzAuNScgZD0nTTE2LjYwNzkgMC42MDAwOThINC4zMDIyOEMzLjk5OTA4IDAuNjAwMDk4IDMuNzIyMjcgMC43NzEyOTggMy41ODcwNyAxLjA0MjVMMC45NjU0NzUgNi4yODQxQzAuNzQwNjc1IDYuNzM0NSAwLjc0MDY3NSA3LjI2NDkgMC45NjU0NzUgNy43MTUzTDMuNTg2MjcgMTIuOTU3N0MzLjcyMTQ3IDEzLjIyODkgMy45OTkwNyAxMy40MDAxIDQuMzAxNDggMTMuNDAwMUgxNi42MDcxQzE3LjA0ODcgMTMuNDAwMSAxNy40MDcxIDEzLjA0MTcgMTcuNDA3MSAxMi42MDAxVjEuNDAwMUMxNy40MDc5IDAuOTU4NDk4IDE3LjA0OTUgMC42MDAwOTggMTYuNjA3OSAwLjYwMDA5OFpNNy40MDc4OCAzLjQwMDFDOC4yOTE4NyAzLjQwMDEgOS4wMDc4NyA0LjExNjEgOS4wMDc4NyA1LjAwMDFDOS4wMDc4NyA1Ljg4NDEgOC4yOTE4NyA2LjYwMDEgNy40MDc4OCA2LjYwMDFDNi41MjM4NyA2LjYwMDEgNS44MDc4OCA1Ljg4NDEgNS44MDc4OCA1LjAwMDFDNS44MDc4OCA0LjExNjEgNi41MjM4NyAzLjQwMDEgNy40MDc4OCAzLjQwMDFaTTEyLjIwNzkgMTEuNDAwMUMxMS4zMjM5IDExLjQwMDEgMTAuNjA3OSAxMC42ODQxIDEwLjYwNzkgOS44MDAxQzEwLjYwNzkgOC45MTYxIDExLjMyMzkgOC4yMDAxIDEyLjIwNzkgOC4yMDAxQzEzLjA5MTkgOC4yMDAxIDEzLjgwNzkgOC45MTYxIDEzLjgwNzkgOS44MDAxQzEzLjgwNzkgMTAuNjg0MSAxMy4wOTExIDExLjQwMDEgMTIuMjA3OSAxMS40MDAxWk02LjkzOTA3IDExLjQwMDFMNS44MDc4OCAxMC4yNjg5TDEyLjY3NjcgMy40MDAxTDEzLjgwNzkgNC41MzEzTDYuOTM5MDcgMTEuNDAwMVonIGZpbGw9JyUyMzIxM0I4QycvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxOScgaGVpZ2h0PScxNCcgdmlld0JveD0nMCAwIDE5IDE0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTcuNSAxMlYyQzE3LjUgMS40NDc3MiAxNy4wNTIzIDEgMTYuNSAxSDUuMTE4MDNDNC43MzkyNiAxIDQuMzkzIDEuMjE0IDQuMjIzNjEgMS41NTI3OUwxLjcyMzYxIDYuNTUyNzlDMS41ODI4NCA2LjgzNDMxIDEuNTgyODQgNy4xNjU2OSAxLjcyMzYxIDcuNDQ3MjFMNC4yMjM2MSAxMi40NDcyQzQuMzkzIDEyLjc4NiA0LjczOTI2IDEzIDUuMTE4MDMgMTNIMTYuNUMxNy4wNTIzIDEzIDE3LjUgMTIuNTUyMyAxNy41IDEyWicgc3Ryb2tlPSclMjMyMTNCOEMnIHN0cm9rZS13aWR0aD0nMS4zJy8lM0UlM0NwYXRoIGQ9J004LjQxMjUgMy40MDAzOUM5LjI5NjUgMy40MDAzOSAxMC4wMTI1IDQuMTE2MzkgMTAuMDEyNSA1LjAwMDM5QzEwLjAxMjUgNS44ODQzOSA5LjI5NjUgNi42MDAzOSA4LjQxMjUgNi42MDAzOUM3LjUyODUgNi42MDAzOSA2LjgxMjUgNS44ODQzOSA2LjgxMjUgNS4wMDAzOUM2LjgxMjUgNC4xMTYzOSA3LjUyODUgMy40MDAzOSA4LjQxMjUgMy40MDAzOVpNMTMuMjEyNSAxMS40MDA0QzEyLjMyODUgMTEuNDAwNCAxMS42MTI1IDEwLjY4NDQgMTEuNjEyNSA5LjgwMDM5QzExLjYxMjUgOC45MTYzOSAxMi4zMjg1IDguMjAwMzkgMTMuMjEyNSA4LjIwMDM5QzE0LjA5NjUgOC4yMDAzOSAxNC44MTI1IDguOTE2MzkgMTQuODEyNSA5LjgwMDM5QzE0LjgxMjUgMTAuNjg0NCAxNC4wOTU3IDExLjQwMDQgMTMuMjEyNSAxMS40MDA0Wk03Ljk0MzcgMTEuNDAwNEw2LjgxMjUgMTAuMjY5MkwxMy42ODEzIDMuNDAwMzlMMTQuODEyNSA0LjUzMTU5TDcuOTQzNyAxMS40MDA0WicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwcHggNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHggMCAwIDEwMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNDBweDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNS44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICsuYnV0dG9uIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwMHB4IDEwMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0M3B4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHg7XHJcbiAgICAgICAgICAgICZbbmFtZT1cInVwZGF0ZV9jYXJ0XCJdIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjMpO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVXBkYXRlIGNhcnQgYnV0dG9uXHJcbiAgICAgICAgPi5idXR0b24ge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBCb3R0b20gc2VjdGlvbi4uLlJlbGF0ZWQgcHJvZHVjdHMgYW5kIENhcnQgdG90YWxzXHJcbi5jYXJ0LWNvbGxhdGVyYWxzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAvLyBSZWxhdGVkIHByb2R1Y3RzXHJcbiAgICAuY3Jvc3Mtc2VsbHMge1xyXG4gICAgICAgIHdpZHRoOiB2YXIoLS13Yy1jYXJ0LXJlbGF0ZWQtY29sKTtcclxuICAgICAgICA+aDIge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWxhcmdlci10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMC43ZW0gMDtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVsLnByb2R1Y3RzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgZ2FwOiB2YXIoLS13Yy1yZWxhdGVkLXByb2R1Y3QtZ2FwKTtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIHZhcigtLXdjLXJlbGF0ZWQtcHJvZHVjdC1jb2wtaXRlbXMpLCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICAgICAgICAgIGxpLnByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLXdjLXJlbGF0ZWQtcHJvZHVjdC1pbWFnZS1oZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC53b29jb21tZXJjZS1sb29wLXByb2R1Y3RfX3RpdGxlIHtcclxuICAgICAgICAgICAgY29sb3I6ICMzZDNkM2Q7IC8vIFRPRE9cclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zdGFyLXJhdGluZyB7XHJcbiAgICAgICAgICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgY29sb3I6ICMzZDNkM2Q7IC8vIFRPRE9cclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idXR0b24sXHJcbiAgICAgICAgLnRpbnYtd3JhcGVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgLy8gVE9ET1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIENhcnQgdG90YWxzIHNlY3Rpb25cclxuICAgIC5jYXJ0X3RvdGFscyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiBjbGFtcCgxMHB4LCAxLjA1dncsIDIwcHgpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCA2MHB4IHJnYmEoODksIDExOSwgMjE1LCAwLjIpO1xyXG4gICAgICAgIGhlaWdodDogbWF4LWNvbnRlbnQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXdjLWNhcnQtdG90YWwtY29sKTtcclxuICAgICAgICAuYy1oZWFkaW5nIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgcGFkZGluZzogM3JlbSBjbGFtcCgzcmVtLCAzLjEydncsIDZyZW0pIDAuOHJlbTtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvcjUpO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1MHB4IDUwcHggMDtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMzBweDtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcywgaGVpZ2h0IC4zcztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA2cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2hvcF90YWJsZSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIGNsYW1wKDZyZW0sIDYuMjV2dywgMTJyZW0pKTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1zaGlwcGluZy1tZXRob2RzIGxpIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgfVxyXG4gICAgLnNoaXBwaW5nLWNhbGN1bGF0b3ItZm9ybSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwMHB4KTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTEwMHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgIC5mb3JtLXJvdyB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53Yy1wcm9jZWVkLXRvLWNoZWNrb3V0IHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNHJlbSwgMC45NXZ3LCAxLjhyZW0pO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNsYW1wKDQwcHgsIDIuNnZ3LCA2MHB4KTtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2xhbXAoNDBweCwgMi42dncsIDYwcHgpO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIC8vIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gY2xhbXAoNnJlbSwgNi4yNHZ3LCAxMnJlbSkpO1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMS41MjA5MiA0LjU2MjkxQzAuNjgwOTM4IDMuNzIyOTMgMC42ODA5MzggMi4zNjEwNSAxLjUyMDkyIDEuNTIxMDdDMi4zNjA5IDAuNjgxMDk1IDMuNzIyNzcgMC42ODEwOTUgNC41NjI3NSAxLjUyMTA3TDguNDUzNDcgNS40MTE3OUM5LjI5MzQ1IDYuMjUxNzcgOS4yOTM0NSA3LjYxMzY1IDguNDUzNDcgOC40NTM2M0M3LjYxMzQ5IDkuMjkzNjEgNi4yNTE2MiA5LjI5MzYxIDUuNDExNjQgOC40NTM2M0wxLjUyMDkyIDQuNTYyOTFaJyBmaWxsPSclMjMyNDU1QzknLyUzRSUzQ3BhdGggZD0nTTE3Ljk3OTEgMTQuODkxMkMxOC44MTkxIDE1LjczMTIgMTguODE5MSAxNy4wOTMgMTcuOTc5MSAxNy45MzNDMTcuMTM5MSAxOC43NzMgMTUuNzc3MiAxOC43NzMgMTQuOTM3MiAxNy45MzNMMTEuMDQ2NSAxNC4wNDIzQzEwLjIwNjUgMTMuMjAyMyAxMC4yMDY1IDExLjg0MDUgMTEuMDQ2NSAxMS4wMDA1QzExLjg4NjUgMTAuMTYwNSAxMy4yNDg0IDEwLjE2MDUgMTQuMDg4NCAxMS4wMDA1TDE3Ljk3OTEgMTQuODkxMlonIGZpbGw9JyUyM0VCOEIzNCcvJTNFJTNDcGF0aCBkPSdNMTcuOTc5MSA0LjU2MjkxQzE4LjgxOTEgMy43MjI5MyAxOC44MTkxIDIuMzYxMDUgMTcuOTc5MSAxLjUyMTA3QzE3LjEzOTEgMC42ODEwOTUgMTUuNzc3MiAwLjY4MTA5NSAxNC45MzcyIDEuNTIxMDdMMTEuMDQ2NSA1LjQxMTc5QzEwLjIwNjUgNi4yNTE3NyAxMC4yMDY1IDcuNjEzNjUgMTEuMDQ2NSA4LjQ1MzYzQzExLjg4NjUgOS4yOTM2MSAxMy4yNDg0IDkuMjkzNjEgMTQuMDg4NCA4LjQ1MzYzTDE3Ljk3OTEgNC41NjI5MVonIGZpbGw9JyUyMzgxQjI1QycvJTNFJTNDcGF0aCBkPSdNMS41MjA5MiAxNC44OTEyQzAuNjgwOTM4IDE1LjczMTIgMC42ODA5MzggMTcuMDkzIDEuNTIwOTIgMTcuOTMzQzIuMzYwOSAxOC43NzMgMy43MjI3NyAxOC43NzMgNC41NjI3NSAxNy45MzNMOC40NTM0NyAxNC4wNDIzQzkuMjkzNDUgMTMuMjAyMyA5LjI5MzQ1IDExLjg0MDUgOC40NTM0NyAxMS4wMDA1QzcuNjEzNDkgMTAuMTYwNSA2LjI1MTYyIDEwLjE2MDUgNS40MTE2NCAxMS4wMDA1TDEuNTIwOTIgMTQuODkxMlonIGZpbGw9JyUyMzVFMzI4QicvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBjbGFtcCgyNnB4LCAydncsIDM4cHgpO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiBjbGFtcCgxMXB4LCAwLjc5dncsIDE1cHgpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5sb2FkaW5nIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICAgICAgICAgICAgLmMtYnRuX19pY28ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53Yy1jYXJ0LXRvdGFscy1hZGRpdGlvbmFsIHtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNhcnQtYmFzZS1mb250KTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgcGFkZGluZzogMCBjbGFtcCgzcmVtLCAzLjEydncsIDZyZW0pO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vLyBUT0RPLi4udXNlIHNhbWUgYXMgd2lzaGxpc3Qgc3R5bGluZ1xyXG5AaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgIC53b29jb21tZXJjZS1jYXJ0LWZvcm0ge1xyXG4gICAgICAgIHRoZWFkIHRoIHtcclxuICAgICAgICAgICAgJjpub3QoLnByb2R1Y3QtbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGJvZHkge1xyXG4gICAgICAgICAgICB0ciB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICYucHJvZHVjdC10aHVtYm5haWwgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEyMHB4OyAvLyBUT0RPXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLnByb2R1Y3QtcHJpY2UsXHJcbiAgICAgICAgICAgICAgICAmLnByb2R1Y3Qtc3VidG90YWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmFjdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIFdvb2NvbW1lcmNlOiBDaGVja291dCBwYWdlXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXMuLi5XSVBcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAtLXdjLWNoZWNrb3V0LXJldmlldy1jb2w6IDQxLjY2NjY2NiU7XHJcbiAgICAtLXdjLXBheW1lbnQtYWNjb3JkaW9uLXBhZGRpbmc6IDEuNnJlbSAzLjJyZW07XHJcbiAgICAtLXdjLWNoZWNrb3V0LXRleHQtc2l6ZTogY2xhbXAoMS4zcmVtLCAwLjg0dncsIDEuNnJlbSk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcC1tXCIpIHtcclxuICAgICAgICAtLXdjLWNoZWNrb3V0LXJldmlldy1jb2w6IDUwJTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gQmlsbGluZyBkZXRhaWxzL1lvdXIgb3JkZXIgd3JhcHBlclxyXG5ib2R5Lndvb2NvbW1lcmNlLWNoZWNrb3V0IHtcclxuICAgIC53b29jb21tZXJjZSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDdyZW07XHJcbiAgICB9XHJcbiAgICAudmFyaWF0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAudmFyaWF0aW9uLWl0ZW0ge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNoZWNrb3V0LXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMjVlbTtcclxuICAgICAgICAgICAgZHQge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBkZCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmZvcm0ud29vY29tbWVyY2UtY2hlY2tvdXQge1xyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgICBoMyB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICBmb250LWZhbWlseTogdmFyKC0taDMtZm9udCk7XHJcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCh2YXIoLS1oMy1mb250LXNpemUtbW9iaWxlKSwgMS42dncsIHZhcigtLWgzLWZvbnQtc2l6ZSkpO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1oMy1mb250LXdlaWdodCwgNjAwKTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0taDMtbGV0dGVyLXNwYWNpbmcsIDApO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMy1saW5lLWhlaWdodCwgMSk7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0taDMtbWFyZ2luLWJvdHRvbSwgMC41ZW0pO1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xyXG4gICAgICAgICNjdXN0b21lcl9kZXRhaWxzIHtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXBhZ2UtZ3V0dGVyKTtcclxuICAgICAgICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgI29yZGVyX3Jldmlld19oZWFkaW5nLFxyXG4gICAgICAgICNvcmRlcl9yZXZpZXcge1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tcGFnZS1ndXR0ZXIpO1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0td2MtY2hlY2tvdXQtcmV2aWV3LWNvbCk7XHJcbiAgICAgICAgICAgIC5zaG9wX3RhYmxlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtY2hlY2tvdXQtdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkc19fZmllbGQtd3JhcHBlciB7XHJcbiAgICAgICAgJj4uZm9ybS1yb3cge1xyXG4gICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICAuZXJyb3ItbWVzc2FnZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNlMjQwMWM7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBhYmJyLnJlcXVpcmVkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjY3VzdG9tZXJfZGV0YWlscyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0td2MtdmVydGljYWwtc3BhY2UpO1xyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLWVycm9yIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1hZGRpdGlvbmFsLWZpZWxkcyB7XHJcbiAgICAgICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICZfX3RpdGxlIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pcy13eXNpd3lnIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IHtcclxuICAgICAgICAmX190cnVzdC1iYWRnZXMge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3RydXN0LXRleHQge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNoZWNrb3V0LXRleHQtc2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX3RydXN0LWxvZ29zIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAwIDA7XHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTJweDtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMzBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLy8gQmlsbGluZyBkZXRhaWxzIHNlY3Rpb25cclxuLndvb2NvbW1lcmNlLWJpbGxpbmctZmllbGRzX19maWVsZC13cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAuZm9ybS1yb3cge1xyXG4gICAgICAgIGZsZXg6IDAgMCBjYWxjKDUwJSAtIDE1cHgpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTVweCk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmI2JpbGxpbmdfY29tcGFueV9maWVsZCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAjYmlsbGluZ19hZGRyZXNzXzFfZmllbGQsXHJcbiAgICAjYmlsbGluZ19hZGRyZXNzXzJfZmllbGQge1xyXG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBUZXJtcyBhbmQgY29uZGl0aW9ucyBhdCB0aGUgYm90dG9tXHJcbi53b29jb21tZXJjZS10ZXJtcy1hbmQtY29uZGl0aW9ucy13cmFwcGVyIHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtY2hlY2tvdXQtdGV4dC1zaXplKTtcclxuICAgIHBhZGRpbmc6IDFlbTtcclxuICAgIC52YWxpZGF0ZS1yZXF1aXJlZCB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBQbGFjZSBvcmRlciBidXR0b25cclxuI3BheW1lbnQgLnBsYWNlLW9yZGVyIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IGNsYW1wKDEwcHgsIDEuMDV2dywgMjBweCk7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gUGF5bWVudCBhY2NvcmRpb25zXHJcbi8vIFRPRE86IE9sZCBjb2RlXHJcbiNwYXltZW50IHtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdjLXZlcnRpY2FsLXNwYWNlKTtcclxuICAgIG1hcmdpbi10b3A6IDYwcHg7XHJcbiAgICAuY3JlYXRlLWFjY291bnQge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgfVxyXG4gICAgLnBsYWNlLW9yZGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xyXG4gICAgfVxyXG4gICAgLy8gUGF5bWVudCBhY2NvcmRpb25cclxuICAgIC5wYXltZW50X21ldGhvZHMge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2xhbXAoMTBweCwgMS4wNXZ3LCAyMHB4KTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSk7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICA+Lndvb2NvbW1lcmNlLVBheW1lbnRNZXRob2QsXHJcbiAgICAgICAgPi53Y19wYXltZW50X21ldGhvZCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xyXG4gICAgICAgICAgICA+bGFiZWwge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi4yO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0td2MtcGF5bWVudC1hY2NvcmRpb24tcGFkZGluZyk7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLndvb2NvbW1lcmNlLVBheW1lbnRNZXRob2QsXHJcbiAgICAgICAgICAgICYud2NfcGF5bWVudF9tZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgPmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgc2NyZWVuLXJlYWRlci10ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkOm5vdCgud29vY29tbWVyY2Utbm90aWNlKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnBheW1lbnRfYm94IHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS13Yy1wYXltZW50LWFjY29yZGlvbi1wYWRkaW5nKTtcclxuICAgICAgICAgICAgICAgIGZpZWxkc2V0IHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuZm9ybS1yb3cge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAjY3Z2IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIyJSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuaGVscCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDc1JTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAud29vY29tbWVyY2UtU2F2ZWRQYXltZW50TWV0aG9kcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1bC53Yy1zYXZlZC1wYXltZW50LW1ldGhvZHMge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIsXHJcbiAgICAgICAgICAgICAgICAud2MtY3JlZGl0LWNhcmQtZm9ybS1jYXJkLWV4cGlyeSxcclxuICAgICAgICAgICAgICAgIC53Yy1jcmVkaXQtY2FyZC1mb3JtLWNhcmQtY3ZjIHtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IG1zKDIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLndjLWNyZWRpdC1jYXJkLWZvcm0tY2FyZC1udW1iZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2NyZWRpdC1jYXJkcy91bmtub3duLnN2Zyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgbXMoLTIpIGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzFweCAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICYudmlzYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2NyZWRpdC1jYXJkcy92aXNhLnN2Zyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYubWFzdGVyY2FyZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2NyZWRpdC1jYXJkcy9tYXN0ZXJjYXJkLnN2Zyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYubGFzZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jcmVkaXQtY2FyZHMvbGFzZXIuc3ZnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5kaW5lcnNjbHViIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY3JlZGl0LWNhcmRzL2RpbmVycy5zdmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLm1hZXN0cm8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jcmVkaXQtY2FyZHMvbWFlc3Ryby5zdmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLmpjYiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2NyZWRpdC1jYXJkcy9qY2Iuc3ZnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5hbWV4IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY3JlZGl0LWNhcmRzL2FtZXguc3ZnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJi5kaXNjb3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2NyZWRpdC1jYXJkcy9kaXNjb3Zlci5zdmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxhYmVsLnN2LXdjLXBheW1lbnQtZ2F0ZXdheS1wYXltZW50LWZvcm0tc2F2ZWQtcGF5bWVudC1tZXRob2Qge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNXB4KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC50ZXJtcyB7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGxhYmVsIHtcclxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogY2xhbXAoNjBweCwgNHZ3LCA4MHB4KTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjbGFtcCg2MHB4LCA0dncsIDgwcHgpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAvLyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xLjUyMDkyIDQuNTYyOTFDMC42ODA5MzggMy43MjI5MyAwLjY4MDkzOCAyLjM2MTA1IDEuNTIwOTIgMS41MjEwN0MyLjM2MDkgMC42ODEwOTUgMy43MjI3NyAwLjY4MTA5NSA0LjU2Mjc1IDEuNTIxMDdMOC40NTM0NyA1LjQxMTc5QzkuMjkzNDUgNi4yNTE3NyA5LjI5MzQ1IDcuNjEzNjUgOC40NTM0NyA4LjQ1MzYzQzcuNjEzNDkgOS4yOTM2MSA2LjI1MTYyIDkuMjkzNjEgNS40MTE2NCA4LjQ1MzYzTDEuNTIwOTIgNC41NjI5MVonIGZpbGw9JyUyMzI0NTVDOScvJTNFJTNDcGF0aCBkPSdNMTcuOTc5MSAxNC44OTEyQzE4LjgxOTEgMTUuNzMxMiAxOC44MTkxIDE3LjA5MyAxNy45NzkxIDE3LjkzM0MxNy4xMzkxIDE4Ljc3MyAxNS43NzcyIDE4Ljc3MyAxNC45MzcyIDE3LjkzM0wxMS4wNDY1IDE0LjA0MjNDMTAuMjA2NSAxMy4yMDIzIDEwLjIwNjUgMTEuODQwNSAxMS4wNDY1IDExLjAwMDVDMTEuODg2NSAxMC4xNjA1IDEzLjI0ODQgMTAuMTYwNSAxNC4wODg0IDExLjAwMDVMMTcuOTc5MSAxNC44OTEyWicgZmlsbD0nJTIzRUI4QjM0Jy8lM0UlM0NwYXRoIGQ9J00xNy45NzkxIDQuNTYyOTFDMTguODE5MSAzLjcyMjkzIDE4LjgxOTEgMi4zNjEwNSAxNy45NzkxIDEuNTIxMDdDMTcuMTM5MSAwLjY4MTA5NSAxNS43NzcyIDAuNjgxMDk1IDE0LjkzNzIgMS41MjEwN0wxMS4wNDY1IDUuNDExNzlDMTAuMjA2NSA2LjI1MTc3IDEwLjIwNjUgNy42MTM2NSAxMS4wNDY1IDguNDUzNjNDMTEuODg2NSA5LjI5MzYxIDEzLjI0ODQgOS4yOTM2MSAxNC4wODg0IDguNDUzNjNMMTcuOTc5MSA0LjU2MjkxWicgZmlsbD0nJTIzODFCMjVDJy8lM0UlM0NwYXRoIGQ9J00xLjUyMDkyIDE0Ljg5MTJDMC42ODA5MzggMTUuNzMxMiAwLjY4MDkzOCAxNy4wOTMgMS41MjA5MiAxNy45MzNDMi4zNjA5IDE4Ljc3MyAzLjcyMjc3IDE4Ljc3MyA0LjU2Mjc1IDE3LjkzM0w4LjQ1MzQ3IDE0LjA0MjNDOS4yOTM0NSAxMy4yMDIzIDkuMjkzNDUgMTEuODQwNSA4LjQ1MzQ3IDExLjAwMDVDNy42MTM0OSAxMC4xNjA1IDYuMjUxNjIgMTAuMTYwNSA1LjQxMTY0IDExLjAwMDVMMS41MjA5MiAxNC44OTEyWicgZmlsbD0nJTIzNUUzMjhCJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgbGVmdDogY2xhbXAoMjZweCwgMnZ3LCAzOHB4KTtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcztcclxuICAgICAgICAgICAgd2lkdGg6IDIycHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uYXNzaXN0YW5jZS1pbmZvIHtcclxuICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IGNsYW1wKDEwcHgsIDEuMDV2dywgMjBweCk7XHJcbiAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcclxuICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjFyZW07XHJcbiAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmNvbnRlbnQtc2luZ2xlIHtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNoZWNrb3V0LXRleHQtc2l6ZSk7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFNoYXJlZCBjYXJ0IGFuZCBjaGVja291dCBzdHlsZXNcclxuLndvb2NvbW1lcmNlLWNoZWNrb3V0ICNvcmRlcl9yZXZpZXcsXHJcbi53b29jb21tZXJjZS1jYXJ0IC5jYXJ0LWNvbGxhdGVyYWxzLFxyXG4ud29vY29tbWVyY2Utb3JkZXItZGV0YWlscyB7XHJcbiAgICAuc2hvcF90YWJsZSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDEuOHJlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgdGJvZHksXHJcbiAgICAgICAgdGZvb3Qge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgPnRyIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICBnYXA6IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIC5wcm9kdWN0LXF1YW50aXR5IHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdWwge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC43ZW07XHJcbiAgICAgICAgICAgICAgICAudmFyaWF0aW9uIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAudmFyaWF0aW9uLWl0ZW0ge1xyXG4gICAgICAgICAgICBkZCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICAvLyBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRib2R5IHtcclxuICAgICAgICAgICAgdHIge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyIHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMGQ0ZGU7XHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge31cclxuICAgICAgICAgICAgdGgsXHJcbiAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXdjLWNoZWNrb3V0LXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgLy8gcGFkZGluZzogMS44cmVtIDA7XHJcbiAgICAgICAgICAgICAgICAvLyB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyAuY2FydC1zdWJ0b3RhbCxcclxuICAgICAgICAvLyAuY2FydC1kaXNjb3VudCxcclxuICAgICAgICAvLyAuZmVlLFxyXG4gICAgICAgIC8vIC5zaGlwcGluZyxcclxuICAgICAgICAvLyAudGF4LXRvdGFsIHt9XHJcbiAgICAgICAgLmZlZS5lc3RpbWF0ZWQge1xyXG4gICAgICAgICAgICB0ZCB7XHJcbiAgICAgICAgICAgICAgICAvLyB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC42O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXJ0LWRpc2NvdW50IHtcclxuICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICM3MjkzMzQ7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5vcmRlci10b3RhbCB7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDBkNGRlO1xyXG4gICAgICAgICAgICAvLyBib3JkZXItdG9wOiAxcHggc29saWQgI2QwZDRkZTtcclxuICAgICAgICAgICAgdGgge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS40cmVtLCAwLjk1dncsIDEuOHJlbSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRkIHtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgLmFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjRyZW0sIDAuOTV2dywgMS44cmVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FydF9pdGVtIHtcclxuICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcclxuICAgICAgICAgICAgICAgICYucHJvZHVjdC10b3RhbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgICAgICAgICAgIC5hbW91bnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaXB0aW9uLXN3aXRjaC1kaXJlY3Rpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zaGlwcGluZyB7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yZWN1cnJpbmctdG90YWxzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIvKipcclxuICogV29vY29tbWVyY2U6IFByb2R1Y3RzXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXMuLi5XSVBcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAvLyBHZW5lcmFsIGxheW91dFxyXG4gICAgLS13Yy1ncmlkLWNvbDogMzsgLy8gTnVtYmVyIG9mIHByb2R1Y3RzIHBlciByb3dcclxuICAgIC0td2MtZ3JpZC1nYXAtaG9yaXpvbnRhbDogMzBweDtcclxuICAgIC0td2MtZ3JpZC1nYXAtdmVydGljYWw6IGNsYW1wKDE1cHgsIDEuNTd2dywgMzBweCk7XHJcbiAgICAtLXdjLWdyaWQtd2l0aC1zaWRlYmFyLWNvbDogMzsgLy8gTnVtYmVyIG9mIHByb2R1Y3RzIHBlciByb3cgd2hlbiBzaWRlYmFyIGlzIHZpc2libGVcclxuICAgIC8vIFNpZ25sZSBwcm9kdWN0IGNhcmRcclxuICAgIC0td2MtcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIC0td2MtcGFnaW5hdGlvbi1iZzogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLXdjLXBhZ2luYXRpb24tYm9yZGVyOiAxcHggc29saWQ7XHJcbiAgICAtLXdjLXBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICAvLyAtLXdjLXByb2R1Y3QtYm94LXNoYWRvdzogMCAzcHggMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yMik7XHJcbiAgICAtLXdjLXBhZ2luYXRpb24tY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgIC0td2MtcGFnaW5hdGlvbi1tYXJnaW46IDA7XHJcbiAgICAtLXdjLXBhZ2luYXRpb24tcGFkZGluZzogMCAxMHB4O1xyXG4gICAgLS13Yy1wcm9kdWN0LWJvcmRlcjogMXB4IHNvbGlkO1xyXG4gICAgLS13Yy1wcm9kdWN0LWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAtLXdjLXByb2R1Y3QtYm9yZGVyLXJhZGl1czogdmFyKC0tYy1ibG9jay1yYWRpdXMpO1xyXG4gICAgLS13Yy1wcm9kdWN0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAtLXdjLXByb2R1Y3QtZGVzY3JpcHRpb24tbGluZXM6IDI7XHJcbiAgICAtLXdjLXByb2R1Y3QtZGVzY3JpcHRpb24tdGV4dC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAtLXdjLXByb2R1Y3QtaW1nLWhlaWdodDogMTMycHg7XHJcbiAgICAtLXdjLXByb2R1Y3QtcGFkZGluZzogMDtcclxuICAgIC0td2MtcHJvZHVjdC10ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3AteGxcIikge1xyXG4gICAgICAgIC8vIC0td2MtZ3JpZC1jb2w6IDI7XHJcbiAgICAgICAgLS13Yy1ncmlkLWdhcC1ob3Jpem9udGFsOiAyMHB4O1xyXG4gICAgICAgIC0td2MtZ3JpZC1nYXAtdmVydGljYWw6IDIwcHg7XHJcbiAgICAgICAgLy8gLS13Yy1ncmlkLXdpdGgtc2lkZWJhci1jb2w6IDI7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wLWxcIikge1xyXG4gICAgICAgIC0td2MtZ3JpZC1jb2w6IDI7XHJcbiAgICAgICAgLS13Yy1ncmlkLWdhcC1ob3Jpem9udGFsOiAyMHB4O1xyXG4gICAgICAgIC0td2MtZ3JpZC1nYXAtdmVydGljYWw6IDIwcHg7XHJcbiAgICAgICAgLS13Yy1ncmlkLXdpdGgtc2lkZWJhci1jb2w6IDI7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAtLXdjLWdyaWQtY29sOiAyO1xyXG4gICAgICAgIC0td2MtZ3JpZC13aXRoLXNpZGViYXItY29sOiAyO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lLWxcIikge1xyXG4gICAgICAgIC0td2MtZ3JpZC1jb2w6IDE7XHJcbiAgICAgICAgLS13Yy1ncmlkLXdpdGgtc2lkZWJhci1jb2w6IDE7XHJcbiAgICAgICAgLS13Yy1wcm9kdWN0LWltZy1oZWlnaHQ6IGluaXRpYWw7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIE51bWJlciBvZiBwcm9kdWN0cyB3aGVuIHNpZGViYXIgaXMgdmlzaWJsZVxyXG4ud29vY29tbWVyY2UtYXJjaGl2ZS1jb250ZW50Li1oYXMtc2lkZWJhciB7XHJcbiAgICAtLXdjLWdyaWQtY29sOiB2YXIoLS13Yy1ncmlkLXdpdGgtc2lkZWJhci1jb2wpO1xyXG59XHJcblxyXG4vLyBQcm9kdWN0cyB3cmFwcGVyXHJcbnVsLnByb2R1Y3RzLFxyXG4ud2MtYmxvY2stZ3JpZF9fcHJvZHVjdHMge1xyXG4gICAgY29sdW1uLWdhcDogdmFyKC0td2MtZ3JpZC1nYXAtaG9yaXpvbnRhbCk7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZTogYXV0by9yZXBlYXQodmFyKC0td2MtZ3JpZC1jb2wpLCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICByb3ctZ2FwOiB2YXIoLS13Yy1ncmlkLWdhcC12ZXJ0aWNhbCk7XHJcbiAgICBsaS5wcm9kdWN0LFxyXG4gICAgLndjLWJsb2NrLWdyaWRfX3Byb2R1Y3Qge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS13Yy1wcm9kdWN0LWJvcmRlcikgdmFyKC0td2MtcHJvZHVjdC1ib3JkZXItY29sb3IpO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0td2MtcHJvZHVjdC1ib3JkZXItcmFkaXVzKTtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICBwYWRkaW5nOiB2YXIoLS13Yy1wcm9kdWN0LXBhZGRpbmcpO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiB2YXIoLS13Yy1wcm9kdWN0LXRleHQtYWxpZ24pO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmxvY2stYmcpO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiB2YXIoLS13Yy1wcm9kdWN0LWJveC1zaGFkb3csIG5vbmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAud29vY29tbWVyY2UtTG9vcFByb2R1Y3QtbGluayB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICA+aW1nIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFkZCBvcHRpb24gdG8gY2hvb3NlIGRvIHlvdSB3YW50IHRvIHN0cmVjaCBpbWcgb3Igbm90XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXdjLXByb2R1Y3QtaW1nLWhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyAvLyBUT0RPXHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWxvb3AtcHJvZHVjdF9fdGl0bGUge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07IC8vIFRPRE9cclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsgLy8gVE9ET1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWxvb3AtY2F0ZWdvcnlfX3RpdGxlLFxyXG4gICAgICAgIC53Yy1ibG9jay1ncmlkX19wcm9kdWN0LXRpdGxlLFxyXG4gICAgICAgIC53Yy1ibG9jay1ncmlkX19wcm9kdWN0LXRpdGxlPmE6bm90KC5oYXMtZm9udC1zaXplKSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ib2R5LXRleHQtY29sb3IpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWg0LWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hcmNoaXZlLXNob3J0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS13Yy1wcm9kdWN0LWRlc2NyaXB0aW9uLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICA+cCB7XHJcbiAgICAgICAgICAgICAgICAvLyBUcmltIGRlc2NyaXB0aW9uIHRleHQgb24gTiBsaW5lc1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiB2YXIoLS13Yy1wcm9kdWN0LWRlc2NyaXB0aW9uLWxpbmVzKTtcclxuICAgICAgICAgICAgICAgIGxpbmUtY2xhbXA6IHZhcigtLXdjLXByb2R1Y3QtZGVzY3JpcHRpb24tbGluZXMpO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc3Rhci1yYXRpbmcge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAucHJpY2UgaW5zIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBBZGQgdG8gV2lzaGxpc3Qgc2VjdGlvblxyXG4gICAgICAgIC50aW52LXdpc2hsaXN0IHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50aW52d2xfYWRkX3RvX3dpc2hsaXN0X2J1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFBlciBwYWdlIGFuZCBzb3J0aW5nIGRyb3Bkb3duIHdyYXBwZXJcclxuLndvb2NvbW1lcmNlLXNvcnRpbmcge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICAvLyBTaG93L2hpZGUgZmlsdGVycyBidXR0b25cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcclxuICAgICAgICAud29vY29tbWVyY2Utc2lkZWJhci10b2dnbGUge1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0td2MtcHJvZHVjdHMtc2lkZWJhci1jb2wpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBnYXA6IDIwcHg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgID4qIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lLWxcIikge1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgLy8gU2hvd2luZyB4LXggb2YgeCByZXN1bHRzIHNlY3Rpb25cclxuICAgIC53b29jb21tZXJjZS1yZXN1bHQtY291bnQge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICBtYXJnaW46IDAgM2VtIDAgMDtcclxuICAgIH1cclxuICAgIC8vIFBlciBwYWdlIGRyb3Bkb3duXHJcbiAgICAud29vY29tbWVyY2UtcGVycGFnZSB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgZ2FwOiAxNXB4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFNvcnRpbmcgZHJvcGRvd25cclxuICAgIC53b29jb21tZXJjZS1vcmRlcmluZyB7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lLWxcIikge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBCb3R0b20gc2VjdGlvbiBvZiB0aGUgcGFnZSwgYmVsbG93IHBvcm9kdWN0IGxpc3RcclxuICAgICYuYm90dG9tIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIFBhZ2luYXRpb25cclxuLndvb2NvbW1lcmNlLXBhZ2luYXRpb24ge1xyXG4gICAgLy8gVE9ETzogQ2hhbmdlIEhUTUwgc3RydWN0dXJlIGFuZCByZWZhY3RvciB0aGlzIHRvIGF2b2lkIGZsb2F0c1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XHJcbiAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgIGNsZWFyOiBub25lO1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICAgIC5wYWdlLW51bWJlcnMge1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLXdjLXBhZ2luYXRpb24tY29sb3IpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICBsaTpsYXN0LWNoaWxkIC5wYWdlLW51bWJlcnMge1xyXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wYWdlLW51bWJlcnMge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13Yy1wYWdpbmF0aW9uLWJnKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS13Yy1wYWdpbmF0aW9uLWJvcmRlcikgdmFyKC0td2MtcGFnaW5hdGlvbi1ib3JkZXItY29sb3IpO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0td2MtcGFnaW5hdGlvbi1jb2xvcik7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0td2MtcGFnaW5hdGlvbi1tYXJnaW4pO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS13Yy1wYWdpbmF0aW9uLXBhZGRpbmcpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWJhc2UtdHJhbnNpdGlvbik7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XHJcbiAgICAvKipcclxuICAgKiBNYWluIGNvbnRlbnQgYXJlYSAoYWRqYWNlbnQgdG8gc2lkZWJhcikgcHJvZHVjdCBsYXlvdXRcclxuICAgKi9cclxuICAgIC5zaXRlLW1haW4ge1xyXG4gICAgICAgIHVsLnByb2R1Y3RzIHtcclxuICAgICAgICAgICAgbGkucHJvZHVjdCB7XHJcbiAgICAgICAgICAgICAgICAuYWRkZWRfdG9fY2FydCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLndjLXBhby1hZGRvbnMtY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG5cclxuLyogTmV3IFN0eWxlcyAqL1xyXG5cclxuLndvb2NvbW1lcmNlLXNob3Age1xyXG4gICAgLm0tYmFubmVyLi1oZXJvLXdjIHtcclxuICAgICAgICAtLWJhbm5lckhlaWdodDogMzAwcHg7XHJcbiAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgICAgLmwtYmFubmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZy10b3A6IGNsYW1wKDUwcHgsIDUuMnZ3LCAxMDBweCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLXByb2R1Y3RzLWhlYWRlciB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgLmdlbmVyYWwtYmctbG9nbyB7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS40KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuYmxvZy1ncmlkX19wYWdlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuICAgIC8vLndvb2NvbW1lcmNlLXJlc3VsdC1jb3VudCB7XHJcbiAgICAvLyAgZGlzcGxheTogbm9uZTtcclxuICAgIC8vfVxyXG59XHJcblxyXG4ud2MtbGFuZGluZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1MHB4O1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA3dm1pbjtcclxuICAgIH1cclxuICAgIC5ibG9nLWdyaWRfX3BhZ2UgJiB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgICAmX19pbm5lciB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWluZm8sXHJcbiAgICAgICAgLndvb2NvbW1lcmNlLWVycm9yIHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgaGVpZ2h0OiBtYXgtY29udGVudDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgI3Byb2R1Y3RzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICBjZW50ZXIge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLW5sLWNvbG9yKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggNjBweDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IHJvdGF0ZTM2MCAycyBjdWJpYy1iZXppZXIoMC4zOSwgMC41OCwgMC41NywgMSkgaW5maW5pdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi8uLi8uLi9pbWFnZXMvZGVjb3JzL2xvZ28tY29sb3Iuc3ZnXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1sb29wIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4ud2MtdGVzdGltb25pYWxzLmhhcy13aWRnZXQge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogODVweDtcclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBXb29jb21tZXJjZTogU2VhcmNoXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXNcclxuICovXHJcblxyXG4vLyBPbGQgY29kZVxyXG5cclxuIiwiLyoqXHJcbiAqIFdvb2NvbW1lcmNlOiBTaW5nbGUgUHJvZHVjdCBwYWdlXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXMuLi5XSVBcclxuICovXHJcblxyXG46cm9vdCB7XHJcbiAgICAtLXdjLXByb2R1Y3QtZ2FsbGVyeS1jb2w6IDYwJTtcclxuICAgIC0td2MtcHJvZHVjdC1zdW1tYXJ5LWNvbDogMzIlO1xyXG4gICAgLS13Yy1wcm9kdWN0LXN1bW1hcnktcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgLS13Yy1wcm9kdWN0LXRpdGxlLWZvbnQtc2l6ZTogMi44cmVtO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgIC0td2MtcHJvZHVjdC1nYWxsZXJ5LWNvbDogMTAwJTtcclxuICAgICAgICAtLXdjLXByb2R1Y3Qtc3VtbWFyeS1jb2w6IDEwMCU7XHJcbiAgICAgICAgLS13Yy1wcm9kdWN0LXN1bW1hcnktcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG5ib2R5IHtcclxuICAgIC5mbG9hdC1ibG9jay1zdGFydCxcclxuICAgICYuc2luZ2xlLXByb2R1Y3QsXHJcbiAgICAmLndvb2NvbW1lcmNlLWNhcnQsXHJcbiAgICAmLndvb2NvbW1lcmNlLWNoZWNrb3V0LFxyXG4gICAgJi53b29jb21tZXJjZS1hY2NvdW50IHtcclxuICAgICAgICBzcGFuLnN1YnNjcmlwdGlvbi1kZXRhaWxzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmJvZHkuc2luZ2xlLXByb2R1Y3Qge1xyXG4gICAgZGl2LnByb2R1Y3Qge1xyXG4gICAgICAgIC8qZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyovXHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAtLXdjLXByb2R1Y3QtbWFpbi1jb2xvcjogIzU3MzU4NjtcclxuICAgICAgICAvL3BhZGRpbmctbGVmdDogdmFyKC0tcGFnZS1ndXR0ZXIpO1xyXG4gICAgICAgIC8vcGFkZGluZy1yaWdodDogdmFyKC0tcGFnZS1ndXR0ZXIpO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgPi5tLWJhbm5lcisuY29udGFpbmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1wcm9kdWN0IHtcclxuICAgICAgICAmLWdhbGxlcnkge1xyXG4gICAgICAgICAgICBmbGV4OiB2YXIoLS13Yy1wcm9kdWN0LWdhbGxlcnktY29sKTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBjbGFtcCgxMDBweCwgMTAuNHZ3LCAyMDBweCk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNsYW1wKDgwcHgsIDguM3Z3LCAxNjBweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fd3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDcyJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLWRldGFpbHNfX3Nob3J0LWRlc2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnN0aWNreS13cmFwcGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgbWluLWhlaWdodDogNTB2aDtcclxuICAgIH1cclxuICAgIC5zdW1tYXJ5IHtcclxuICAgICAgICAtLWxhYmVsLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGZsZXg6IHZhcigtLXdjLXByb2R1Y3Qtc3VtbWFyeS1jb2wpO1xyXG4gICAgICAgIG1heC13aWR0aDogdmFyKC0td2MtcHJvZHVjdC1zdW1tYXJ5LWNvbCk7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS13Yy1wcm9kdWN0LXN1bW1hcnktcGFkZGluZy1sZWZ0KTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDE3LCAzMiwgNzAsIDAuMik7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogY2xhbXAoMTBweCwgMS4wNXZ3LCAyMHB4KTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xyXG4gICAgICAgICAgICB0b3A6IDgwcHg7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIC4zcywgb3BhY2l0eSAuM3MsIHZpc2liaWxpdHkgLjNzO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMzVyZW07XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMzByZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5pcy1mbG9hdCB7XHJcbiAgICAgICAgICAgICAgICAvL29wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgICAgICAvL3Zpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICA+LmMtYnRuIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZHVjdC12aWRlbyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgei1pbmRleDogMTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwN3B4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcC1sXCIpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMjA3cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fcG9wdXAge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jLXZpZGVvLFxyXG4gICAgICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweCAyMHB4IDAgMDtcclxuICAgICAgICAgICAgICAgICZfX3dyYXAge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICYuaXMtdmlkZW8tcGxheWluZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLXZpZGVvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLmJ0bi1tdXRlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fY29udHJvbHMge1xyXG4gICAgICAgICAgICAgICAgICAgIC5idG4tcGxheSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2LjdyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNi43cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjEnIGhlaWdodD0nMjInIHZpZXdCb3g9JzAgMCAyMSAyMicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTIwLjM4NTIgMTAuODYwMkwwLjkzMzU5NCAyMS42NjY2TDAuOTMzNTk1IDAuMDUzNzEwOUwyMC4zODUyIDEwLjg2MDJaJyBmaWxsPSclMjMyMTNCOEMnLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMTQ1LCAxMzcsIDEzMCwgMC42KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWl4LWJsZW5kLW1vZGU6IGluaXRpYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2xhbXAoMTAwcHgsIDEwLjR2dywgMjAwcHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM1cHgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYuaXMtcGxheWluZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMycgaGVpZ2h0PScyNycgdmlld0JveD0nMCAwIDIzIDI3JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNOC4yMDMxIDIzLjIzOTNDOC4yMDMxIDI1LjMxNjIgNi41MTkyNSAyNyA0LjQ0MjM3IDI3QzIuMzY1NDkgMjcgMC42ODE2NDEgMjUuMzE2MiAwLjY4MTY0MSAyMy4yMzkzVjMuNzYwNzNDMC42ODE2NDEgMS42ODM4NSAyLjM2NTQ5IDAgNC40NDIzNyAwQzYuNTE5MjUgMCA4LjIwMzEgMS42ODM4NSA4LjIwMzEgMy43NjA3M1YyMy4yMzkzWicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0NwYXRoIGQ9J00yMi4zMTY0IDIzLjIzOTNDMjIuMzE2NCAyNS4zMTYyIDIwLjYzMjUgMjcgMTguNTU1NiAyN0MxNi40Nzg4IDI3IDE0Ljc5NDkgMjUuMzE2MiAxNC43OTQ5IDIzLjIzOTNWMy43NjA3M0MxNC43OTU1IDEuNjgzODUgMTYuNDc5MyAwIDE4LjU1NTYgMEMyMC42MzI1IDAgMjIuMzE2NCAxLjY4Mzg1IDIyLjMxNjQgMy43NjA3M1YyMy4yMzkzWicgZmlsbD0nJTIzMjEzQjhDJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5idG4tbXV0ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWZyYW1lIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYrLmZsb2F0LWJsb2NrLXN0YXJ0IHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiBjbGFtcCgyMHB4LCA1LjJ2dywgNTBweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmZsb2F0LWJsb2NrLXN0YXJ0IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2MtcHJvZHVjdC1tYWluLWNvbG9yKTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBjbGFtcCgxNXB4LCAxLjc3dncsIDM0cHgpIGNsYW1wKDE1cHgsIDEuNzd2dywgMzRweCkgY2xhbXAoMTVweCwgMS44dncsIDM2cHgpO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgY2xhbXAoMTBweCwgMS4wNXZ3LCAyMHB4KSBjbGFtcCgxMHB4LCAxLjA1dncsIDIwcHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucHJvZHVjdF90aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0td2MtcHJvZHVjdC10aXRsZS1mb250LXNpemUpO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS43O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJvZHktdGV4dC1jb2xvcik7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMzBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcC5wcmljZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGRlbCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IC8vIFRPRE9cclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYXJnZXItdGV4dC1zaXplKTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IC8vIFRPRE9cclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiBsaW5lLXRocm91Z2g7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlucyB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYmRpIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYWN0aW9uLWJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVlbTtcclxuICAgICAgICAgICAgLmxpbWl0ZWQtc3Vic2NyaXB0aW9uLW5vdGljZSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmV2aWV3c1xyXG4gICAgICAgIC53b29jb21tZXJjZS1wcm9kdWN0LXJhdGluZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuOGVtOyAvLyBUT0RPXHJcbiAgICAgICAgICAgIC5zdGFyLXJhdGluZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAud29vY29tbWVyY2UtcmV2aWV3LWxpbmsge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsZXItdGV4dC1zaXplKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUHJvZHVjdCBzdG9ja1xyXG4gICAgICAgIC5zdG9jayB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc21hbGxlci10ZXh0LXNpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBTS1UgYW5kIENhdGVnb3JpZXMgc2VjdGlvblxyXG4gICAgICAgIC5wcm9kdWN0X21ldGEge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxuICAgICAgICAgICAgPioge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLnNrdV93cmFwcGVyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1iYXNlLXRleHQtZm9udC13ZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbWFsbGVyLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICAgICAgLyogbWFpbiBjb2xvciAzICovXHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2M0YzRjNDsgLy8gVE9ET1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFdpc2hsaXN0IGJ1dHRvblxyXG4gICAgICAgIC50aW52LXdpc2hsaXN0IGEge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50aW52d2wtYWZ0ZXItYWRkLXRvLWNhcnQge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFNvY2lhbCBpY29uc1xyXG4gICAgICAgIC5hZGR0b2FueV9saXN0IHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYy1ibG9ja19fYnRuIHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYy1idG4ge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm92ZXJ2aWV3IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idXNpbmVzcy1zb2x1dGlvbnMtc3Vic2NyaXB0aW9uIHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zNHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTRweDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMzRweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDMuNnJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLi1iMmItb25seSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hdmFpbGFibGUtdmVyc2lvbnMge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtO1xyXG4gICAgICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICZfX2l0ZW0ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19pY29uIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgaW1nLFxyXG4gICAgICAgICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndvb2NvbW1lcmNlLXRhYnMge1xyXG4gICAgICAgIGZsZXg6IDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgLnJlbGF0ZWQucHJvZHVjdHMge1xyXG4gICAgICAgIC0tdGl0bGVzLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIC8vZmxleDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgcGFkZGluZzogMTB2bWluIDA7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIHJpZ2h0OiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTUwdnc7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTB2bWluO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYy1oZWFkaW5nX190aXRsZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucmVsYXRlZCxcclxuICAgIC51cHNlbGxzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICB9XHJcbiAgICAvLyBUT0RPOiBNb3ZlIHRoaXMgaW50byBzZXBhcmF0ZSBjb21wb25lbnRcclxuICAgIC53b29jb21tZXJjZS10YWJzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS13Yy12ZXJ0aWNhbC1zcGFjZSwgMzBweCk7XHJcbiAgICAgICAgdWwudGFicyB7XHJcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHBob25lLWxcIikge1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA1MHB4IDAgMDsgLy8gVE9ET1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20tY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHBob25lLWxcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ib2R5LXRleHQtY29sb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1iYXNlLXRleHQtc2l6ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMTdweDtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYm9keS10ZXh0LWNvbG9yKTtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucGFuZWwgaDI6Zmlyc3Qtb2YtdHlwZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucGRwLWFjY29yZGlvbixcclxuICAgIC5wZHAtZGVzY3JpcHRpb24ge1xyXG4gICAgICAgIC5jLWhlYWRpbmcge1xyXG4gICAgICAgICAgICAmLi1oMyB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jLWFjY29yZGlvbiB7XHJcbiAgICAgICAgICAgIC0tYWNjLWNvbnRlbnQtcGFkZGluZzogMTBweCAyMHB4IDMwcHggMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmlzLXd5c2l3eWcge1xyXG4gICAgICAgICAgICAtLXd5c2l3eWctbGktbWFyZ2luOiAxLjVlbTtcclxuICAgICAgICAgICAgPio6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVsOm5vdCguYmxvY2tzLWdhbGxlcnktZ3JpZCkge1xyXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLWNlbnRlciB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm0tYWNjb3JkaW9uIHtcclxuICAgICAgICAuYy1hY2NvcmRpb25fX3RpdGxlLXdyYXAge1xyXG4gICAgICAgICAgICAmLi1oNCB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ud2MtYWNjb3JkaW9uIHtcclxuICAgIC5jb250YWluZXIucGRwLWFjY29yZGlvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ucGRwLWFjY29yZGlvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAyZW07XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXdjLXByb2R1Y3QtZ2FsbGVyeS1jb2wpO1xyXG4gICAgJj4uYy1oZWFkaW5nIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjFlbTtcclxuICAgIH1cclxuICAgIC5jLWFjY29yZGlvbiB7XHJcbiAgICAgICAgLS1hY2MtdGl0bGUtYmc6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIC0tYWNjLXRpdGxlLWJnLWFjdGl2ZTogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgLS1hY2MtdGl0bGUtcGFkZGluZzogMjBweCAwO1xyXG4gICAgICAgIC0taDQtbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIC5jLWFjY29yZGlvbl9fdGl0bGUge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMjBweDtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13Yy1wcm9kdWN0LWJ1bGxldC1pY29uLXAsICM1ZTMyOGIpO1xyXG4gICAgICAgICAgICBmaWxsOiB2YXIoLS13Yy1wcm9kdWN0LWJ1bGxldC1pY29uLXMsICM4ZTZmYWUpO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmMtYWNjb3JkaW9uX19pdGVtIHtcclxuICAgICAgICBib3JkZXItdG9wOiAycHggZGFzaGVkICNEMEQ0REU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LWN0YS1zZWN0aW9uIHtcclxuICAgIC0tcHJvZHVjdC1jdGEtcGFkZGluZzogMjBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IGNsYW1wKDEwcHgsIDEuMDV2dywgMjBweCk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IDRlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDVlbTtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDIwcHggMjBweCAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXdjLXByb2R1Y3QtZ2FsbGVyeS1jb2wpO1xyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTUwJTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tbG9nby1saWdodCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwJSA1MCU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzEwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjBweCAyMHB4IDA7XHJcbiAgICAgICAgICAgIC8vd2lkdGg6IGNhbGMoMTAwdncgLSB2YXIoLS13Yy1wcm9kdWN0LWdhbGxlcnktY29sKSAtIHZhcigtLXBhZ2UtZ3V0dGVyLDIwcHgpICogMyk7XHJcbiAgICAgICAgICAgIC8vdG9wOiAwO1xyXG4gICAgICAgICAgICAvL2xlZnQ6IGNhbGMoKCgxMDB2dyAtIHZhcigtLWNvbnRlbnQtd2lkdGgpKSAqIC0xKSAtIHZhcigtLXBhZ2UtZ3V0dGVyLCAyMHB4KSk7XHJcbiAgICAgICAgICAgIC8vYm9yZGVyLXJhZGl1czogMCAyMHB4IDIwcHggMDtcclxuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tbG9nby1saWdodCk7XHJcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDB2dyAtIHZhcigtLWNvbnRlbnQtd2lkdGgpIC0gMjIwcHgpIDUwJTtcclxuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAvL2JhY2tncm91bmQtc2l6ZTogMzEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXByb2R1Y3QtY3RhLXBhZGRpbmcpO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1wcm9kdWN0LWN0YS1wYWRkaW5nKTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMzBweCAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMXB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubC1yY2JsIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZTogYXV0by9yZXBlYXQodmFyKC0tbC1ibG9jay1jb2wsIDMpLCBtaW5tYXgoMCwgMWZyKSk7XHJcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2NvbCB7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICAuYy1ibG9jayB7XHJcbiAgICAgICAgICAgICAgICAgICAgJj4uY2FyZHMtcHJvZ3JhbXNfX2l0ZW0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDIwcHggMjBweCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMTBweCAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY2FyZHMtcHJvZ3JhbXMge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgZ2FwOiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgPmRpdiB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgZmxleDogMSAwIDcwJTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmMtYmxvY2sge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY+YSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAuYy1ibG9ja19fYnRuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jLWJsb2NrX19idG4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY+LmNhcmRzLXByb2dyYW1zX19pdGVtIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1wcm9kdWN0LWN0YS1wYWRkaW5nKTtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1wcm9kdWN0LWN0YS1wYWRkaW5nKTtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3M7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweDtcclxuICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgICAgICAuYy1ibG9ja19fbWVkaWEge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuYy1ibG9ja19fYm9keSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuYy1ibG9ja19fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgc3Ryb25nLFxyXG4gICAgICAgICAgICAgICAgYixcclxuICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmX19idG4ge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDU1cHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IzKTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcztcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMjZweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jLWJ0bl9faWNvIHtcclxuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDhweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuLXNpbmdsZSB7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS12MiB7XHJcbiAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcclxuXHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgICAgIC0taDMtZm9udC1zaXplOiAyLjFyZW07XHJcblxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiA0MnB4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1sb2dvLWxpZ2h0KTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDAlIDUwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmwtcmNibF9fY29sOmxhc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgICAgLmMtYmxvY2sge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1jb250ZW50LWJlbmVmaXRzIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8vbWF4LXdpZHRoOiBub25lO1xyXG4gICAgd2lkdGg6IDEwMHZ3O1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgcmlnaHQ6IDUwJTtcclxuICAgIG1hcmdpbi10b3A6IDVyZW07XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC01MHZ3O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xyXG4gICAgcGFkZGluZy10b3A6IDQuMnJlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0LjJyZW07XHJcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gY2xhbXAoMTAyNHB4LCA4My41dncsIHZhcigtLWNvbnRlbnQtd2lkdGgpKSArIHZhcigtLXBhZ2UtZ3V0dGVyLCAyMHB4KSAqIDIpIC8gMik7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXZtaW47XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoY2xhbXAoMTAyNHB4LCA4My41dncsIHZhcigtLWNvbnRlbnQtd2lkdGgpKSArIGNhbGMoKDEwMHZ3IC0gY2xhbXAoMTAyNHB4LCA4My41dncsIHZhcigtLWNvbnRlbnQtd2lkdGgpKSkgLyAyKSAtIGNhbGMoMTAwJSAtIHZhcigtLXdjLXByb2R1Y3QtZ2FsbGVyeS1jb2wpKSk7XHJcbiAgICAvL21heC13aWR0aDogY2xhbXAoMTAyNHB4LDgzLjV2dyx2YXIoLS1jb250ZW50LXdpZHRoKSArIHZhcigtLXBhZ2UtZ3V0dGVyLDIwcHgpICogMik7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjRDBENERFO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAyMHB4IDIwcHggMDtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AteGxcIikge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwdncgLSBjbGFtcCgxMDI0cHgsIDgzLjV2dywgdmFyKC0tY29udGVudC13aWR0aCkpKSAvIDIpO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICAgIC5jLWJsb2NrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogMDtcclxuICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY2hlY2stbGlzdCB7XHJcbiAgICAgICAgLS1jb2x1bW5zLWNvdW50OiAyO1xyXG4gICAgICAgIGNvbHVtbi1jb3VudDogdmFyKC0tY29sdW1ucy1jb3VudCk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgIC0tY29sdW1ucy1jb3VudDogMTtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ucGRwLWRlc2NyaXB0aW9uIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS13Yy1wcm9kdWN0LWdhbGxlcnktY29sKTtcclxuICAgIHBhZGRpbmc6IDMwcHggMDtcclxuICAgIGE6bm90KC5jLWJ0bikge1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDMwMG1zIGVhc2U7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG9yNCksIHdoaXRlIDE1JSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4ucGRwLWN0YSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDBweCAyMHB4IDIwcHggMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgID5kaXYge1xyXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgfVxyXG4gICAgJl9faGVhZGluZyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3IxKTtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcjEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLnZhcmlhdGlvbnNfZm9ybSB7XHJcbiAgICBtYXgtd2lkdGg6IHZhcigtLXdjLXByb2R1Y3QtZ2FsbGVyeS1jb2wpO1xyXG59XHJcblxyXG4ud2MtcHJvZHVjdC12YXJpYXRpb25zIHtcclxuICAgIG1hcmdpbi10b3A6IDVlbTtcclxuICAgIHBhZGRpbmctYm90dG9tOiBjbGFtcCg1MHB4LCA1LjJ2dywgMTAwcHgpO1xyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS13Yy1wcm9kdWN0LWdhbGxlcnktY29sKTtcclxuICAgIH1cclxuICAgIC5saW1pdGVkLXN1YnNjcmlwdGlvbi1ub3RpY2Uge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnZhcmlhYmxlLXRhYnMge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sYWJlbC10aXRsZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICAudGFicy12ZXJ0aWNhbC12MiAudGFicy1jb250ZW50IHtcclxuICAgICAgICAgICAgZmxleDogMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmF0dHJpYnV0ZS1uYW1lIHtcclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wYV9pc3N1ZV9kZWxpdmUtdmFsdWVzIHtcclxuICAgICAgICAgICAgLmZvcm0tcm93IHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsYWJlbCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAubGFiZWwtdGFnIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM2RDZENkQ7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMjBweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuZm9ybS1yb3cge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDtcclxuICAgICAgICAgICAgZ2FwOiAxNXB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgICAgICAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6IGluc2V0IDBweCAyLjU3NDQ3cHggNi40MzYxN3B4IHJnYmEoMTYyLCAxNjIsIDE2MiwgMC4yKTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEMkQ4RTA7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDVweCAxMXB4IDI0cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogNDJweDtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXHJcbiAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5sYWJlbC10YWcge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5wcm9kdWN0LXJlZGVzaWduIHtcclxuICAgIC5lbnRyeS1zdW1tYXJ5IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBtYWluLnNpdGUtY29udGVudCB7XHJcbiAgICAgICAgLS13Yy1wcm9kdWN0LWdhbGxlcnktY29sOiAxMDAlO1xyXG4gICAgICAgID4gLnByb2R1Y3Qge1xyXG4gICAgICAgICAgICA+IC5jb250YWluZXIge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdGlja3ktd3JhcHBlciB7XHJcbiAgICAgICAgICAgICAgICAuZHN0LWZsZXgtYmxvY2sge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdmFyKCAtLWRzLWZsZXgtLWNvbnRhaW5lci13aWR0aCwgMTEzcmVtICk7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmLi1mdWxsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyggMTAwJSArIDQwcHggKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCAxMDAlICsgNDBweCApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRzdC1mbGV4LWJsb2NrX19pbm5lciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICZfX2lubmVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoIC0tZHMtZmxleC0tY29udGFpbmVyLWlubmVyLXdpZHRoLCAxMDAlICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyogTWFrZSBDVEEgc2VjdGlvbiBmdWxsIHdpZHRoICovXHJcbiAgICAucHJvZHVjdC1jdGEtc2VjdGlvbiB7XHJcbiAgICAgICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY2FyZHMtcHJvZ3JhbXM6bm90KC5zZWFyY2gtcG9zdHMpIHtcclxuICAgICAgICAgICAgLmwtcmNibF9fY29sIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5jLWJsb2NrIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJyZW0gMnJlbSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIC5jYXJkcy1wcm9ncmFtc19faXRlbSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnJlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKiBNYWtlIGJlbmVmaXRzIHNlY3Rpb24gZnVsbCB3aWR0aCAqL1xyXG4gICAgLnByb2R1Y3QtY29udGVudC1iZW5lZml0cyB7XHJcbiAgICAgICAgcGFkZGluZzogNC4ycmVtIDEuNXJlbTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgIH1cclxuICAgIC8qIE1ha2UgRkFRIGFjY29yZGlvbiBuYXJyb3dlciAqL1xyXG4gICAgLndjLWFjY29yZGlvbiB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMTNyZW07XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICB9XHJcbiAgICAvKiBDb2x1bW5zIGNvbnRhaW5lciB3aWR0aCAqL1xyXG4gICAgLm0tY29sdW1ucyB7XHJcbiAgICAgICAgLm0tY29sdW1uc19faW5uZXIuY29udGFpbmVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTNyZW07XHJcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyogUmVkZXNpZ25lZCBoZXJvIHNlY3Rpb24gKi9cclxuLm0tYmFubmVyLmhhcy1pbWFnZS1zaWRlIHtcclxuICAgIC8qIFN0cmV0Y2hlZCBzaWRlIGltYWdlICovXHJcbiAgICAmLi1zaWRlLXN0cmV0Y2gge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNjBweDtcclxuICAgICAgICAgICAgLm0tYmFubmVyX19pbm5lciB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgLmwtYmFubmVyIHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMCA2MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmwtaW1hZ2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAwIDQwJTtcclxuICAgICAgICAgICAgICAgICAgICBwaWN0dXJlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwdnc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm0tYmFubmVyX19jb250YWluZXIge1xyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5tLWJhbm5lcl9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sLWltYWdlIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGljdHVyZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmwtaW1hZ2UuLWlzLXRyYW5zcGFyZW50IHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xyXG4gICAgICAgICAgICBwaWN0dXJlIHtcclxuICAgICAgICAgICAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudChcclxuICAgICAgICAgICAgICAgICAgICB0byByaWdodCxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAwJSxcclxuICAgICAgICAgICAgICAgICAgICBibGFjayAxMDAlXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgdG8gcmlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXHJcbiAgICAgICAgICAgICAgICAgICAgYmxhY2sgMTAwJVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCIvKipcclxuICogV29vY29tbWVyY2U6IFRoYW5rIHlvdSBwYWdlXHJcbiAqIFRPRE86IFJlZmFjdG9yIHRoaXMuLi5XSVBcclxuICovXHJcblxyXG5ib2R5Lndvb2NvbW1lcmNlLW9yZGVyLXJlY2VpdmVkIHt9XHJcblxyXG5kaXYud29vY29tbWVyY2Utb3JkZXIge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgfVxyXG4gICAgLndjLWNoZWNrb3V0X19vcmRlci1zdW1tYXJ5LWhlYWRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWxvZ28tbGlnaHQpO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDU1MnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGNsYW1wKDEwcHgsIDEuMDV2dywgMjBweCk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAzMHB4IDYwcHggcmdiYSg4OSwgMTE5LCAyMTUsIDAuMik7XHJcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcclxuICAgICAgICBwYWRkaW5nOiAzcmVtIDJyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDUuOXJlbSA4cmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDUuOXJlbSA4cmVtO1xyXG4gICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAud29vY29tbWVyY2Utbm90aWNlLndvb2NvbW1lcmNlLXRoYW5reW91LW9yZGVyLXJlY2VpdmVkIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0taDMtZm9udC1zaXplKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMzO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgd2lkdGg6IDQwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IHZhcigtLWgyLWZvbnQtc2l6ZSk7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zMztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB1bC5vcmRlcl9kZXRhaWxzIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBnYXA6IDIwcHggMTBweDtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgIC8vICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXJlbTtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAvLyBtaW4td2lkdGg6IDQ0MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgICAgICAgIC8vIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcclxuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndjLWNoZWNrb3V0X19vcmRlci1zdW1tYXJ5LWJ1dHRvbnMge1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBtaW4td2lkdGg6IDI3MHB4O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWJ0bi1zZWNvbmRhcnktYmctaG92ZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLndjLWl0ZW0tbWV0YSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjI1ZW07XHJcbiAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHAge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNob3BfdGFibGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgICAgIC8vIHBhZGRpbmctdG9wOiAxLjhyZW07XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICYucHJvZHVjdC10b3RhbCB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuYW1vdW50IHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYub3JkZXItdG90YWwtcHJvbW8tdmFsdWUgLmFtb3VudCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzcyOTMzNDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi8qKlxyXG4gKiBXb29Db21tZXJjZTogV2lzaGxpc3RzIHBhZ2VcclxuICogVE9ETzogUmVmYWN0b3IgdGhpcy4uLldJUFxyXG4gKi9cclxuXHJcbjpyb290IHtcclxuICAtLXdjLXdpc2hsaXN0LXRodW1ibmFpbC1zaXplOiAxMDBweDtcclxufVxyXG5cclxuYm9keS53b29jb21tZXJjZS13aXNobGlzdCB7XHJcbiAgLnNvY2lhbC1idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBkaXYudGludi13aXNobGlzdCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG5cclxuICAudGludi1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTsgLy8gVE9ETzogQ2hlY2sgdGhpc1xyXG4gICAgbWFyZ2luOiA1MHB4IDAgMzBweDsgLy8gVE9ET1xyXG5cclxuICAgIGgyIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0taDEtZm9udC1zaXplKTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZS50aW52d2wtdGFibGUtbWFuYWdlLWxpc3Qge1xyXG4gICAgdHIge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9kdWN0LXN0b2NrIGkge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlIGJ1dHRvblxyXG4gIC5wcm9kdWN0LXJlbW92ZSBidXR0b24ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYXNwZWN0LXJhdGlvOiAxLzE7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL3dvb2NvbW1lcmNlL2ljb24tZGVsZXRlLnN2Zyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggYXV0bztcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblxyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgaSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUaHVtYm5haWwgaW1hZ2VcclxuICAucHJvZHVjdC10aHVtYm5haWwge1xyXG4gICAgd2lkdGg6IHZhcigtLXdjLXdpc2hsaXN0LXRodW1ibmFpbC1zaXplKTtcclxuICB9XHJcblxyXG4gIC8vIE5PVEU6IFNpbmNlIHdpc2hsaXN0IGlzIGEgcGx1Z2luLCB3ZSBkb24ndCBoYXZlIGNvbnRyb2wgb3ZlciBzaWRlbWVudSBhY3RpdmUgY2xhc3NcclxuICAvLyBUaGlzIGlzIGhhcmRjb2RlZCBzb2x1dGlvbiB0byBzaG93IHdpc2hsaXN0IGFzIGFjdGl2ZSBsaW5rXHJcbiAgLndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uLWxpbmsge1xyXG4gICAgJi5pcy1hY3RpdmUgYTphZnRlciB7XHJcbiAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuXHJcbiAgICAmLS10aW52X3dpc2hsaXN0IGE6YWZ0ZXIge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQm90dG9tIHdpc2hsaXN0IHNlY3Rpb24gLy8gQXBwbHkgYWN0aW9uLCBhZGQgdG8gY2FydCBidXR0b24gZXRjXHJcbi50aW52d2wtaW5wdXQtZ3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcblxyXG4gIC5mb3JtLWNvbnRyb2wge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46IDJweCAwOyAvLyBUT0RPOiBTYW1lIGFzIGJ1dHRvbiBtYXJnaW5cclxuICB9XHJcblxyXG4gICYtYnRuIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLy8gVE9ETy4uLnVzZSBzYW1lIGFzIGNhcnQgc3l0bGluZ1xyXG5AaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAud2lzaGxpc3RfaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogMC4yZW0gMC41ZW0gIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50aW52LXdpc2hsaXN0IHtcclxuICAgIHRhYmxlLnRpbnZ3bC10YWJsZS1tYW5hZ2UtbGlzdCB0Ym9keSB0ZCB7XHJcbiAgICAgICYucHJvZHVjdC1jYixcclxuICAgICAgJi5wcm9kdWN0LXJlbW92ZSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYucHJvZHVjdC1jYiA+ICoge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnByb2R1Y3QtcmVtb3ZlID4gKiB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucHJvZHVjdC10aHVtYm5haWwgaW1nIHtcclxuICAgICAgbWF4LXdpZHRoOiAxMjBweDsgLy8gVE9ET1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvKiBNZW1iZXJzaGlwIHZhcmlhdGlvbiBibG9jayAqL1xyXG4uZHMtdmFyaWF0aW9ucy1tZW1iZXJzaGlwIHtcclxuICAgIC0tYm9keS10ZXh0LWNvbG9yOiAjMEIwOTE0O1xyXG4gICAgLS1jb2xvci1ncmF5OiAjQTlBOUFBO1xyXG4gICAgLS1jb2xvci1ncmVlbjogIzExOTEwMDtcclxuICAgIC0tbWVtYmVyLWNvbC1nYXA6IDEuNnJlbTtcclxuXHJcbiAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMi40cmVtO1xyXG4gICAgYm9yZGVyLXRvcDogMXJlbSBzb2xpZCAjY2NhNTMyO1xyXG4gICAgYmFja2dyb3VuZDogI0ZGRjtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDMycHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wMyk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWJvZHktdGV4dC1jb2xvcik7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcclxuICAgICAgICBwYWRkaW5nOiA0LjRyZW07XHJcbiAgICB9XHJcbiAgICBoMSxoMixoMyxoNCxoNSxoNiB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJvZHktdGV4dC1jb2xvcik7XHJcbiAgICB9XHJcbiAgICAucHJpY2Uge1xyXG4gICAgICAgIC5hbW91bnQge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDIuOHJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgICAgY29sb3I6IHZhciggLS1ib2R5LXRleHQtY29sb3IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN1YnNjcmlwdGlvbi1kZXRhaWxzIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5pcy13eXNpd3lnIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDNyZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBkPSdNMTAuMDAxMyAxLjY2Njk5QzUuNDA2MyAxLjY2Njk5IDEuNjY3OTcgNS40MDUzMyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyAxNC41OTUzIDUuNDA2MyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0MxNC41OTYzIDE4LjMzMzcgMTguMzM0NiAxNC41OTUzIDE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDUuNDA1MzMgMTQuNTk2MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OVpNOC4zMzU0NyAxMy42Nzc4TDUuMjQxMyAxMC41OTAzTDYuNDE3OTcgOS40MTAzM0w4LjMzMzggMTEuMzIyOEwxMi43NDU1IDYuOTExMTZMMTMuOTIzOCA4LjA4OTQ5TDguMzM1NDcgMTMuNjc3OFonIGZpbGw9JyUyMzIxM0M4QycvJTNFJTNDL3N2ZyUzRVwiKTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBoMSxoMixoMyxoNCxoNSxoNiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19wcmltYXJ5IHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXkpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNnJlbTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgICAuZHMtdmFyaWF0aW9ucy1tZW1iZXJzaGlwLWZvcm0ge1xyXG4gICAgICAgICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1jb2x1bW5zOiAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWNvbHVtbnM6IDI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fc2Vjb25kYXJ5IHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBnYXA6IHZhcigtLW1lbWJlci1jb2wtZ2FwKTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXkpO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNnJlbTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcclxuICAgICAgICAuYy1oZWFkaW5nIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uZHMtdmFyaWF0aW9ucy1tZW1iZXJzaGlwLWZvcm0ge1xyXG4gICAgJl9faGVhZGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNHJlbTtcclxuICAgICAgICAucHJpY2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmRzLXZhcmlhdGlvbnMtbWVtYmVyc2hpcC1jb2wge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IxKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMzdkZWcsIHJnYmEoMCwgMCwgMCwgMC4xMikgLTcxLjg5JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSA0NC4yOSUsIHJnYmEoMTUyLCAxNTIsIDE1MiwgMC4xMikgODIuNzUlKTtcclxuICAgIHBhZGRpbmc6IDEuNnJlbSAycmVtICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tYm9keS10ZXh0LWNvbG9yKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoIDUwJSAtICggdmFyKC0tbWVtYmVyLWNvbC1nYXApIC8gMiApICkgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICZfX2hlYWRlciB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBtYXJnaW46IDAgMCAxLjZyZW0gMDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1ib2R5LXRleHQtY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3RpdGxlIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAxLjZyZW07XHJcbiAgICB9XHJcbiAgICAmX19iYWRnZSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICAgICAgcGFkZGluZzogMC42cmVtIDAuOHJlbTtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGdhcDogMXJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjhyZW07XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1ib2R5LXRleHQtY29sb3IpO1xyXG4gICAgfVxyXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcclxuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB3aWR0aDogMi40cmVtO1xyXG4gICAgICAgIGhlaWdodDogMi40cmVtO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xyXG4gICAgICAgIGFzcGVjdC1yYXRpbzogMS8xO1xyXG4gICAgICAgICY6Y2hlY2tlZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J00xMiAwQzUuMzgzMiAwIDAgNS4zODMyIDAgMTJDMCAxOC42MTY4IDUuMzgzMiAyNCAxMiAyNEMxOC42MTY4IDI0IDI0IDE4LjYxNjggMjQgMTJDMjQgNS4zODMyIDE4LjYxNjggMCAxMiAwWk05LjYwMTIgMTcuMjk1Nkw1LjE0NTYgMTIuODQ5Nkw2Ljg0IDExLjE1MDRMOS41OTg4IDEzLjkwNDRMMTUuOTUxNiA3LjU1MTZMMTcuNjQ4NCA5LjI0ODRMOS42MDEyIDE3LjI5NTZaJyBmaWxsPSclMjMyMTNDOEMnLyUzRSUzQy9zdmclM0VcIik7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMi40cmVtIDIuNHJlbTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLmRzLXZhcmlhdGlvbnMtbWVtYmVyc2hpcC10b3RhbHMge1xyXG4gICAgJi1saXN0IHtcclxuICAgICAgICAmX19pdGVtIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgJi4tcHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmlwdGlvbi1kZXRhaWxzIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuLWFkZG9uIHtcclxuICAgICAgICAgICAgICAgIC5wcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyZWVuKTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuLXRvdGFsIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgdmFyKC0tY29sb3ItZ3JheSk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgLmRzLXZhcmlhdGlvbnMtbWVtYmVyc2hpcC10b3RhbHMtbGlzdF9fbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3JtLmNhcnQge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgJl9fYnV0dG9uIHtcclxuICAgICAgICBwYWRkaW5nLWlubGluZTogNS40cmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICB3aWR0aDogMnJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLmRzLWZlYXR1cmUtdGV4dC1zaW1wbGUge1xyXG4gICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItdGV4dCwgIzRGNEY0Rik7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNDJyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjREZENkU4KSAyNSUsIHRyYW5zcGFyZW50KTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufSIsIi5kcy1mZWF0dXJlLWFjY29yZGlvbi1zaW1wbGUge1xyXG4gICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItdGV4dCwgIzRGNEY0Rik7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNDJyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjREZENkU4KSAyNSUsIHRyYW5zcGFyZW50KTtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgIHN1bW1hcnkge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1ib3R0b20gMC4zcyBlYXNlO1xyXG4gICAgICAgICY6Om1hcmtlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsICM0RjRGNEYpO1xyXG4gICAgICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzknIHZpZXdCb3g9JzAgMCAxNCA5JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNNi4xOTE0MSA4LjQzMzU5TDAuNTY2NDA2IDIuODA4NTlDMC4xMDkzNzUgMi4zODY3MiAwLjEwOTM3NSAxLjY0ODQ0IDAuNTY2NDA2IDEuMjI2NTZDMC45ODgyODEgMC43Njk1MzEgMS43MjY1NiAwLjc2OTUzMSAyLjE0ODQ0IDEuMjI2NTZMNyA2LjA0Mjk3TDExLjgxNjQgMS4yMjY1NkMxMi4yMzgzIDAuNzY5NTMxIDEyLjk3NjYgMC43Njk1MzEgMTMuMzk4NCAxLjIyNjU2QzEzLjg1NTUgMS42NDg0NCAxMy44NTU1IDIuMzg2NzIgMTMuMzk4NCAyLjgwODU5TDcuNzczNDQgOC40MzM1OUM3LjM1MTU2IDguODkwNjIgNi42MTMyOCA4Ljg5MDYyIDYuMTkxNDEgOC40MzM1OVonIGZpbGw9J2N1cnJlbnRDb2xvcicvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcclxuICAgICAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nOScgdmlld0JveD0nMCAwIDE0IDknIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J002LjE5MTQxIDguNDMzNTlMMC41NjY0MDYgMi44MDg1OUMwLjEwOTM3NSAyLjM4NjcyIDAuMTA5Mzc1IDEuNjQ4NDQgMC41NjY0MDYgMS4yMjY1NkMwLjk4ODI4MSAwLjc2OTUzMSAxLjcyNjU2IDAuNzY5NTMxIDIuMTQ4NDQgMS4yMjY1Nkw3IDYuMDQyOTdMMTEuODE2NCAxLjIyNjU2QzEyLjIzODMgMC43Njk1MzEgMTIuOTc2NiAwLjc2OTUzMSAxMy4zOTg0IDEuMjI2NTZDMTMuODU1NSAxLjY0ODQ0IDEzLjg1NTUgMi4zODY3MiAxMy4zOTg0IDIuODA4NTlMNy43NzM0NCA4LjQzMzU5QzcuMzUxNTYgOC44OTA2MiA2LjYxMzI4IDguODkwNjIgNi4xOTE0MSA4LjQzMzU5WicgZmlsbD0nY3VycmVudENvbG9yJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICB3aWR0aDogMTZweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTZweDtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbWFzay1zaXplOiBjb250YWluO1xyXG4gICAgICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA3NSU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJltvcGVuXSB7XHJcbiAgICAgICAgc3VtbWFyeSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuZHMtZmVhdHVyZS10ZXh0LWFkdmFuY2VkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICBwYWRkaW5nOiAxLjJyZW07XHJcbiAgICBjb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci10ZXh0LCAjNEY0RjRGKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIG1hcmdpbjogMCAtMS4ycmVtIDFyZW0gLTEuMnJlbTtcclxuICAgIC4tbGluZS0xIHtcclxuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDU0cmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItdGV4dCwgIzRGNEY0Rik7XHJcbiAgICB9XHJcbiAgICAuLWxpbmUtMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0MnJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci10ZXh0LCAjNEY0RjRGKTtcclxuICAgIH1cclxuICAgIC4tbGluZS0zIHtcclxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDU0cmVtO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjNUUzMjhBKTtcclxuICAgIH1cclxufSIsIi5kcy1mZWF0dXJlLWFjY29yZGlvbi1hZHZhbmNlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgcGFkZGluZzogMS4ycmVtO1xyXG4gICAgY29sb3I6IHZhcigtLWRzLXZhcmlhdGlvbi1mZWF0dXJlcy1jb2xvci10ZXh0LCAjNEY0RjRGKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgbWFyZ2luOiAwIC0xLjJyZW0gMXJlbSAtMS4ycmVtO1xyXG4gICAgc3VtbWFyeSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBnYXA6IDFyZW07XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1ib3R0b20gMC4zcyBlYXNlO1xyXG4gICAgICAgICY6Om1hcmtlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoIC0tZHMtZmxleC1jb2xvci1hY2NlbnQsICM1RTMyOEEgKTtcclxuICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMycgaGVpZ2h0PScyMicgdmlld0JveD0nMCAwIDIzIDIyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTEuNSAwLjEyNUMxNS4yMzI0IDAuMTI1IDE4LjY3NzcgMi4xMzQ3NyAyMC41NjQ1IDUuMzc1QzIyLjQ1MTIgOC42NTYyNSAyMi40NTEyIDEyLjYzNDggMjAuNTY0NSAxNS44NzVDMTguNjc3NyAxOS4xNTYyIDE1LjIzMjQgMjEuMTI1IDExLjUgMjEuMTI1QzcuNzI2NTYgMjEuMTI1IDQuMjgxMjUgMTkuMTU2MiAyLjM5NDUzIDE1Ljg3NUMwLjUwNzgxMiAxMi42MzQ4IDAuNTA3ODEyIDguNjU2MjUgMi4zOTQ1MyA1LjM3NUM0LjI4MTI1IDIuMTM0NzcgNy43MjY1NiAwLjEyNSAxMS41IDAuMTI1Wk02LjUzNzExIDEwLjAwOThMMTAuODAyNyAxNC4yNzU0QzExLjE3MTkgMTQuNjg1NSAxMS43ODcxIDE0LjY4NTUgMTIuMTk3MyAxNC4yNzU0TDE2LjQyMTkgMTAuMDA5OEMxNi44MzIgOS42NDA2MiAxNi44MzIgOS4wMjUzOSAxNi40MjE5IDguNjU2MjVDMTYuMDUyNyA4LjI0NjA5IDE1LjQzNzUgOC4yNDYwOSAxNS4wMjczIDguNjU2MjVMMTEuNDU5IDEyLjIyNDZMNy44OTA2MiA4LjY1NjI1QzcuNTIxNDggOC4yNDYwOSA2LjkwNjI1IDguMjQ2MDkgNi41MzcxMSA4LjY1NjI1QzYuMTI2OTUgOS4wMjUzOSA2LjEyNjk1IDkuNjQwNjIgNi41MzcxMSAxMC4wMDk4WicgZmlsbD0nJTIzNUUzMjhBJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMycgaGVpZ2h0PScyMicgdmlld0JveD0nMCAwIDIzIDIyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTEuNSAwLjEyNUMxNS4yMzI0IDAuMTI1IDE4LjY3NzcgMi4xMzQ3NyAyMC41NjQ1IDUuMzc1QzIyLjQ1MTIgOC42NTYyNSAyMi40NTEyIDEyLjYzNDggMjAuNTY0NSAxNS44NzVDMTguNjc3NyAxOS4xNTYyIDE1LjIzMjQgMjEuMTI1IDExLjUgMjEuMTI1QzcuNzI2NTYgMjEuMTI1IDQuMjgxMjUgMTkuMTU2MiAyLjM5NDUzIDE1Ljg3NUMwLjUwNzgxMiAxMi42MzQ4IDAuNTA3ODEyIDguNjU2MjUgMi4zOTQ1MyA1LjM3NUM0LjI4MTI1IDIuMTM0NzcgNy43MjY1NiAwLjEyNSAxMS41IDAuMTI1Wk02LjUzNzExIDEwLjAwOThMMTAuODAyNyAxNC4yNzU0QzExLjE3MTkgMTQuNjg1NSAxMS43ODcxIDE0LjY4NTUgMTIuMTk3MyAxNC4yNzU0TDE2LjQyMTkgMTAuMDA5OEMxNi44MzIgOS42NDA2MiAxNi44MzIgOS4wMjUzOSAxNi40MjE5IDguNjU2MjVDMTYuMDUyNyA4LjI0NjA5IDE1LjQzNzUgOC4yNDYwOSAxNS4wMjczIDguNjU2MjVMMTEuNDU5IDEyLjIyNDZMNy44OTA2MiA4LjY1NjI1QzcuNTIxNDggOC4yNDYwOSA2LjkwNjI1IDguMjQ2MDkgNi41MzcxMSA4LjY1NjI1QzYuMTI2OTUgOS4wMjUzOSA2LjEyNjk1IDkuNjQwNjIgNi41MzcxMSAxMC4wMDk4WicgZmlsbD0nJTIzNUUzMjhBJy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO1xyXG4gICAgICAgICAgICB3aWR0aDogMjFweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAyMXB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLi1saW5lLTEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1NHJlbTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsICM0RjRGNEYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuLWxpbmUtMiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDU0cmVtO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjNUUzMjhBKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmW29wZW5dIHtcclxuICAgICAgICBzdW1tYXJ5IHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYtZGVzY3JpcHRpb24ge1xyXG4gICAgICAgIC0td3lzaXd5Zy1tYXJnaW46IDAuNWVtO1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsICM0RjRGNEYpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0MnJlbTtcclxuICAgIH1cclxufSIsIkBpbXBvcnQgXCJmZWF0dXJlcy9mZWF0dXJlc190ZXh0XCI7XHJcbkBpbXBvcnQgXCJmZWF0dXJlcy9mZWF0dXJlc19hY2NvcmRpb25faXRlbVwiO1xyXG5AaW1wb3J0IFwiZmVhdHVyZXMvZmVhdHVyZXNfYWR2YW5jZWRfdGV4dFwiO1xyXG5AaW1wb3J0IFwiZmVhdHVyZXMvZmVhdHVyZXNfYWR2YW5jZWRfYWNjb3JkaW9uXCI7XHJcblxyXG4ucGRwLXZhcmlhdGlvbnMge1xyXG4gICAgLS1kcy12YXJpYXRpb24tYm94LWJvcmRlci1yYWRpdXM6IDEuOHJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDhyZW07XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xyXG4gICAgfVxyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNS40cmVtO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICAgICZfX2lubmVyIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICBnYXA6IDIuNHJlbTtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmRzLXZhcmlhdGlvbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKCAtLWRzLXZhcmlhdGlvbi1ib3gtYm9yZGVyLXJhZGl1cyApO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIC8qIFN0eWxlIGJhZGdlICovXHJcbiAgICAgICAgICAgICYtYmFkZ2Uge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCAtLWRzLWJhZGdlLWNvbG9yLWJnLCB2YXIoLS1wcmltYXJ5LWNvbG9yMSkgKTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoIC0tZHMtYmFkZ2UtY29sb3ItdGV4dCwgI2ZmZiApO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qIFN0eWxlIGZvcm0gKi9cclxuICAgICAgICAgICAgJi1mb3JtIHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRyZW0gMi40cmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBnYXA6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgIGZvcm0ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGhyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNFREVGRjM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJl9fcHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA2cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgICAgICAgICAgJi4tYmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoIC0tZHMtZmxleC1jb2xvci1iZywgI2U5ZWJmMyApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEuNnJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmLi1kdXJhdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpcHRpb24tZGV0YWlscyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmX19idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuNHJlbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyogU3R5bGUgZmVhdHVyZXMgKi9cclxuICAgICAgICAgICAgJi1mZWF0dXJlcyB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMy4ycmVtO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci1iZywgI0U5RUJGMyk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCAjZmZmO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoIC0tZHMtdmFyaWF0aW9uLWJveC1ib3JkZXItcmFkaXVzICkgdmFyKCAtLWRzLXZhcmlhdGlvbi1ib3gtYm9yZGVyLXJhZGl1cyApO1xyXG4gICAgICAgICAgICAgICAgJl9fdGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsICM0RjRGNEYpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0MnJlbTtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIucGRwLWFjY29yZGlvbi1ib3hlcyB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cmVtO1xyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbi5kcy1hY2NvcmRpb24tYm94ZXMge1xyXG4gICAgLS1kcy1hY2NvcmRpb24tYm94ZXMtaXRlbXM6IDM7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKCAtLWRzLWFjY29yZGlvbi1ib3hlcy1pdGVtcyApLCAxZnIpO1xyXG4gICAgZ2FwOiAxLjZyZW07XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgLS1kcy1hY2NvcmRpb24tYm94ZXMtaXRlbXM6IDI7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAtLWRzLWFjY29yZGlvbi1ib3hlcy1pdGVtczogMTtcclxuICAgIH0gICAgXHJcbiAgICAmX19pdGVtIHtcclxuICAgICAgICBwYWRkaW5nOiAxLjZyZW0gMi40cmVtIDEuNnJlbSAxLjZyZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci1iZywgI2U5ZWJmMyk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMS4xcmVtO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBzdW1tYXJ5IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXJnaW4tYm90dG9tIDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgJjo6bWFya2VyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci1hY2NlbnQsICNERkQ2RTgpO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PSc5JyB2aWV3Qm94PScwIDAgMTQgOScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTYuMTkxNDEgOC40MzM1OUwwLjU2NjQwNiAyLjgwODU5QzAuMTA5Mzc1IDIuMzg2NzIgMC4xMDkzNzUgMS42NDg0NCAwLjU2NjQwNiAxLjIyNjU2QzAuOTg4MjgxIDAuNzY5NTMxIDEuNzI2NTYgMC43Njk1MzEgMi4xNDg0NCAxLjIyNjU2TDcgNi4wNDI5N0wxMS44MTY0IDEuMjI2NTZDMTIuMjM4MyAwLjc2OTUzMSAxMi45NzY2IDAuNzY5NTMxIDEzLjM5ODQgMS4yMjY1NkMxMy44NTU1IDEuNjQ4NDQgMTMuODU1NSAyLjM4NjcyIDEzLjM5ODQgMi44MDg1OUw3Ljc3MzQ0IDguNDMzNTlDNy4zNTE1NiA4Ljg5MDYyIDYuNjEzMjggOC44OTA2MiA2LjE5MTQxIDguNDMzNTlaJyBmaWxsPSdjdXJyZW50Q29sb3InLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PSc5JyB2aWV3Qm94PScwIDAgMTQgOScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTYuMTkxNDEgOC40MzM1OUwwLjU2NjQwNiAyLjgwODU5QzAuMTA5Mzc1IDIuMzg2NzIgMC4xMDkzNzUgMS42NDg0NCAwLjU2NjQwNiAxLjIyNjU2QzAuOTg4MjgxIDAuNzY5NTMxIDEuNzI2NTYgMC43Njk1MzEgMi4xNDg0NCAxLjIyNjU2TDcgNi4wNDI5N0wxMS44MTY0IDEuMjI2NTZDMTIuMjM4MyAwLjc2OTUzMSAxMi45NzY2IDAuNzY5NTMxIDEzLjM5ODQgMS4yMjY1NkMxMy44NTU1IDEuNjQ4NDQgMTMuODU1NSAyLjM4NjcyIDEzLjM5ODQgMi44MDg1OUw3Ljc3MzQ0IDguNDMzNTlDNy4zNTE1NiA4Ljg5MDYyIDYuNjEzMjggOC44OTA2MiA2LjE5MTQxIDguNDMzNTlaJyBmaWxsPSdjdXJyZW50Q29sb3InLyUzRSUzQy9zdmclM0UlMEFcIik7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogM3JlbTtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogM3JlbTtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCAzcmVtO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgICAgICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmW29wZW5dIHtcclxuICAgICAgICAgICAgc3VtbWFyeSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX19oZWFkZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZ2FwOiAxLjZyZW07XHJcbiAgICB9XHJcbiAgICAmX19pY29uIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgd2lkdGg6IDguNHJlbTtcclxuICAgICAgICBmbGV4OiAwIDAgOC40cmVtO1xyXG4gICAgICAgIGhlaWdodDogOC41cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgMC44cmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kcy1mbGV4LWNvbG9yLWFjY2VudCwgI0RGRDZFOCkgMTAlLCB0cmFuc3BhcmVudCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC44cmVtO1xyXG4gICAgfVxyXG4gICAgJl9fdGl0bGUge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsICMyMTNCOEMpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuOHJlbTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDY2cmVtO1xyXG4gICAgfVxyXG4gICAgJl9fY29udGVudCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA5NSU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLWJnLCAjZTllYmYzKTtcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNnJlbSAyLjRyZW0gMS42cmVtIDEuNnJlbTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAgMCAwLjhyZW0gMC44cmVtO1xyXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IHJnYmEoIDAsMCwwLCAwLjE1ICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnBkcC1jYXJkLXNpbXBsZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoIC0tZHMtZmxleC1jb2xvci1iZywgI2U5ZWJmMyApO1xyXG4gICAgcGFkZGluZy10b3A6IDdyZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogOHJlbTtcclxuICAgIG1hcmdpbi1ib3R0b206IDhyZW07XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xyXG4gICAgfVxyXG4gICAgLmMtaGVhZGluZyB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XHJcbiAgICB9XHJcbiAgICAuYy1ibG9ja19fYnRuIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICBnYXA6IDFyZW07XHJcbiAgICB9XHJcbiAgICAuZHMtY2FyZC1zaW1wbGUge1xyXG4gICAgICAgIC0tZHMtY2FyZC1vcmRlci1tZWRpYTogMTtcclxuICAgICAgICAtLWRzLWNhcmQtb3JkZXItY29udGVudDogMjtcclxuICAgICAgICAtLWRzdC1jYXJkLWZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCAtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjZmZmICk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogdmFyKCAtLWRzdC1jYXJkLWZsZXgtZGlyZWN0aW9uICk7XHJcbiAgICAgICAgZ2FwOiA0cmVtO1xyXG4gICAgICAgIHBhZGRpbmc6IDQuNnJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgJi4tcmlnaHQge1xyXG4gICAgICAgICAgICAtLWRzLWNhcmQtb3JkZXItbWVkaWE6IDI7XHJcbiAgICAgICAgICAgIC0tZHMtY2FyZC1vcmRlci1jb250ZW50OiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmLi10b3Age1xyXG4gICAgICAgICAgICAtLWRzdC1jYXJkLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICAtLWRzdC1jYXJkLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5pcy13eXNpd3lnIHtcclxuICAgICAgICAgICAgLS1iYXNlLXRleHQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcclxuICAgICAgICAgICAgLS10aXRsZXMtY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItdGV4dCwgdmFyKC0tYm9keS10ZXh0LWNvbG9yKSk7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1kcy1mbGV4LWNvbG9yLXRleHQsIHZhcigtLWJvZHktdGV4dC1jb2xvcikpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19tZWRpYSB7XHJcbiAgICAgICAgICAgIC0tZHN0LWNhcmQtbWVkaWEtd2lkdGg6IDM4cmVtO1xyXG4gICAgICAgICAgICAtLWRzdC1jYXJkLWFzcGVjdC1yYXRpbzogMSAvIDE7XHJcbiAgICAgICAgICAgICYuLXRvcCB7XHJcbiAgICAgICAgICAgICAgICAtLWRzdC1jYXJkLW1lZGlhLXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgLS1kc3QtY2FyZC1hc3BlY3QtcmF0aW86IDE2IC8gOTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICAgICAgICAgIC0tZHN0LWNhcmQtbWVkaWEtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAtLWRzdC1jYXJkLWFzcGVjdC1yYXRpbzogMTYgLyA5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9yZGVyOiB2YXIoIC0tZHMtY2FyZC1vcmRlci1tZWRpYSwgMSApO1xyXG4gICAgICAgICAgICB3aWR0aDogdmFyKCAtLWRzdC1jYXJkLW1lZGlhLXdpZHRoICk7XHJcbiAgICAgICAgICAgIGZsZXg6IDAgMCB2YXIoIC0tZHN0LWNhcmQtbWVkaWEtd2lkdGggKTtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICBwaWN0dXJlIHtcclxuICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKCAtLWRzdC1jYXJkLWFzcGVjdC1yYXRpbyApO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNvdXJjZSxcclxuICAgICAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICZfX2NvbnRlbnQge1xyXG4gICAgICAgICAgICBvcmRlcjogdmFyKCAtLWRzLWNhcmQtb3JkZXItY29udGVudCwgMiApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIi5wZHAtYWN0aW9uLWJhciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKCAtLWRzLWZsZXgtY29sb3ItYWNjZW50LCAjZmZmICk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xyXG4gICAgfVxyXG4gICAgLmRzdC1mbGV4LWJsb2NrX19pbm5lciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBwYWRkaW5nLWJsb2NrOiAxcmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4uZHMtYWN0aW9uLWJhciB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAyLjRyZW0gNC44cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci1iZywgI2U5ZWJmMyk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1LjhyZW07XHJcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICAgICAgcGFkZGluZzogMnJlbSAyLjRyZW07XHJcbiAgICB9XHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzcmVtO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWRzLWZsZXgtY29sb3ItdGV4dCwgIzJBMzU1Qyk7XHJcbiAgICB9XHJcbiAgICAmX19idG4ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgLmMtYnRuIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLnBkcC1pY29uLWJhciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci1iZywgI2U5ZWJmMyk7XHJcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XHJcbiAgICAgICAgLS1kcy1mbGV4LS1jb250YWluZXItaW5uZXItd2lkdGg6IDE0NnJlbSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZHMtaWNvbi1iYXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogMXJlbTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBwYWRkaW5nOiAyLjRyZW0gMDtcclxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xyXG4gICAgICAgIHBhZGRpbmc6IDIuNHJlbTtcclxuICAgICAgICBnYXA6IDJyZW07XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gICAgfVxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBnYXA6IDEuMnJlbTtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fZGVzYyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuOXJlbTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMTQyMXJlbTtcclxuICAgICAgICBjb2xvcjogdmFyKC0tZHMtZmxleC1jb2xvci10ZXh0LCAjMjkyOTI5KTtcclxuICAgICAgICAmLi1pcy1zbWFsbCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XHJcbiAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgID4gKiB7XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9faWNvbiB7XHJcbiAgICAgICAgaW1nLFxyXG4gICAgICAgIHBpY3R1cmUsXHJcbiAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= */
