/** Shopify CDN: Minification failed

Line 306:63 Expected "]" to go with "["
Line 306:79 Unexpected "]"
Line 504:12 Expected "]" to go with "["
Line 504:42 Unexpected "]"

**/
/*!****************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js!./src/styles/components/glossary.scss ***!
  \****************************************************************************************************************************************************************************************************/
.glossary {
  padding: 0 0 28px;
  background-color: #DAE2CB;
  opacity: 0;
  transition: 0.3s opacity;
}
.glossary.is-loaded {
  opacity: 1;
}
.glossary__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #164734;
  opacity: 0.6;
}
.glossary__hero {
  position: relative;
}
.glossary__hero img {
  width: 100%;
  height: auto;
}
.glossary__icon-header {
  position: absolute;
}
.glossary__icon-header--1 {
  max-width: 150px;
  top: -20px;
  left: 0;
}
.glossary__icon-header--2 {
  max-width: 50px;
  right: 10px;
  bottom: 50px;
}
.glossary__heading {
  text-transform: uppercase;
  color: #F8F1E4;
  font-family: "SharpGroteskBold", sans-serif;
  font-size: 4rem;
  line-height: 40px;
  text-align: center;
}
.glossary__heading-container {
  width: 100%;
  justify-content: center;
  padding-left: 20px;
  padding-right: 20px;
  height: 100%;
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 786px;
}
.glossary__letter {
  font-size: 4rem;
  line-height: 1;
  letter-spacing: 0.09px;
  letter-spacing: -0.03em;
  font-family: "SharpGroteskBold";
  color: #154734;
  border-bottom: 1px solid #ABB993;
  padding-bottom: 15px;
  padding-top: 30px;
}
.glossary__content {
  padding-left: 15px;
  padding-right: 15px;
}
.glossary__accordion {
  border-bottom: 1px solid #ABB993;
  padding-top: 15px;
  padding-bottom: 15px;
}
.glossary__accordion__summary {
  display: flex;
  gap: 15px;
  align-items: flex-start;
}
.glossary__card-img-col {
  width: 25%;
}
.glossary__card-text-col {
  width: 75%;
}
.glossary__card-img-col img {
  opacity: 1;
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}
.glossary__card-header {
  padding-right: 30px;
}
.glossary__title {
  color: #154734;
  font-size: 2.5rem;
  line-height: 22px;
  font-family: "SharpGroteskBold";
  text-transform: uppercase;
}
.glossary__desc-preview {
  font-family: "Lato";
  font-size: 1.4rem;
  margin-top: 5px;
  line-height: 22px;
  color: #154734;
}
.glossary__icon {
  position: absolute;
  display: flex;
  right: 0;
  top: 0;
  pointer-events: none;
}
.glossary__level {
  font-family: "Lato";
  font-weight: 700;
  font-size: 1.4rem;
  color: #164734;
}
.glossary__level-wrapper {
  display: flex;
  align-items: center;
  gap: 4px;
}
.glossary__level-icons {
  display: flex;
  gap: 4px;
}
.glossary__level-tag {
  font-family: "Lato";
  font-weight: 700;
  font-size: 1.4rem;
  color: #058A57;
}
.glossary__specs-header {
  font-family: "Lato";
  font-weight: 800;
  font-size: 1.8rem;
  line-height: 30px;
  margin-top: 15px;
  color: #164734;
}
.glossary .spec-item {
  font-family: "Lato";
  font-weight: 700;
  font-size: 1.4rem;
  color: #164734;
  margin-top: 8px;
}
.glossary .spec-item span {
  font-weight: normal;
  font-weight: initial;
}
.glossary__drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.glossary__drawer-title {
  text-transform: uppercase;
  font-family: "SharpGroteskBold";
  color: #164734;
  font-size: 2.5rem;
}
.glossary__filter-menu {
  border-top: 1px solid #154734;
  margin-top: 20px;
  overflow-y: scroll;
  height: calc(100vh - 151px);
}
.glossary__filter-body {
  position: fixed;
  z-index: 30;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 30px 15px 25px;
  background-color: #F8F1E4;
}
.glossary__filter-title {
  text-transform: uppercase;
  font-family: "SharpGroteskBold";
  font-size: 2rem;
  line-height: 24px;
  color: #164734;
}
.glossary__filter-item {
  width: 100%;
  display: flex;
  gap: 15px;
}
.glossary__filter-tag {
  padding: 8px 12px;
  color: #DAE2CB;
  background-color: #154734;
  border-radius: 32px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.glossary__filter-tag--clear {
  padding: 0;
  background: unset;
  color: #154734;
  text-decoration: underline;
}
.glossary__filter-tag svg {
  width: 12px;
}
.glossary__filter-tag svg path {
  stroke: #DAE2CB;
}
.glossary__filter-accordion {
  padding-top: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid black;
}
.glossary__filter-accordion__summary {
  display: flex;
  justify-content: space-between;
}
.glossary__filter-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  position: relative;
  margin-top: 10px;
}
.glossary__filter-item > input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.glossary__filter-item::before {
  content: "";
  width: 18px;
  height: 18px;
  border: 1px solid #164734;
  border-radius: 4px;
  box-sizing: border-box;
  transition: 150ms;
}
.glossary__filter-item[\:has\(\%3E\%20input\[type\%3Dcheckbox\]\:checked\)]::before {
  background: #164734;
  border-color: #164734;
}
.glossary__filter-item:has(> input[type=checkbox]:checked)::before {
  background: #164734;
  border-color: #164734;
}
.glossary__filter-item[\:has\(\%3E\%20input\[type\%3Dcheckbox\]\:checked\)]::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  position: absolute;
  left: 4px;
  top: 50%;
  margin-top: -3px;
}
.glossary__filter-item:has(> input[type=checkbox]:checked)::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  position: absolute;
  left: 4px;
  top: 50%;
  margin-top: -3px;
}
.glossary__filter-item[\:has\(\%3E\%20input\[type\%3Dcheckbox\].focus-visible\)]::before {
  outline: 3px solid rgba(124, 58, 237, 0.35);
  outline-offset: 2px;
}
.glossary__filter-item:has(> input[type=checkbox].focus-visible)::before {
  outline: 3px solid rgba(124, 58, 237, 0.35);
  outline-offset: 2px;
}
.glossary__filter-item[\:has\(\%3E\%20input\[type\%3Dcheckbox\]\:focus-visible\)]::before {
  outline: 3px solid rgba(124, 58, 237, 0.35);
  outline-offset: 2px;
}
.glossary__filter-item:has(> input[type=checkbox]:focus-visible)::before {
  outline: 3px solid rgba(124, 58, 237, 0.35);
  outline-offset: 2px;
}
.glossary__filter-btn {
  padding: 8px 16px;
  border-radius: 32px;
  color: #F8F1E4;
  background-color: #164734;
}
.glossary__active-tags {
  padding-top: 20px;
  gap: 10px;
  display: flex;
  flex-flow: row wrap;
}
.glossary__show-results-btn {
  background-color: #154734;
  color: #FFFFFF;
  padding: 8px 16px;
  border-radius: 10px;
  width: 100%;
}
.glossary__button-container {
  left: 0;
  position: absolute;
  bottom: 0;
  background-color: #f8f1e4;
  width: 100%;
  padding: 15px;
}
.glossary__controls-top {
  display: flex;
  justify-content: space-between;
  margin-left: 15px;
  margin-right: 15px;
  padding-top: 30px;
  align-items: center;
}
.glossary__controls-top .glossary__clear-btn {
  display: none;
}
.glossary__card__btn {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #154734;
  font-size: 1.6rem;
  text-decoration: underline;
  margin-top: 10px;
  font-weight: 700;
  font-family: "Lato";
}
.glossary__card__btn svg {
  max-width: 18px;
}
.glossary__category-nav {
  position: relative;
  margin-top: -40px;
  gap: 10px;
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.glossary__category-nav::before, .glossary__category-nav::after {
  content: "";
  margin: auto;
}
.glossary__category-card {
  width: 97px;
  background-color: #F8F1E4;
  border: 1px solid #164734;
  padding-top: 12px;
  padding-bottom: 7px;
  flex-shrink: 0;
  border-radius: 16px;
}
.glossary__category-card__label {
  font-size: 1.4rem;
  margin-top: 3px;
}
.glossary__category-card img {
  opacity: 1;
}
.glossary details[open] .plus-vertical {
  display: none;
}
.glossary__result-count {
  display: none;
}
.glossary__empty {
  margin: 60px 0 500px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (min-width: 64em) {
  .glossary {
    padding-top: 0;
  }
  .glossary__empty {
    margin-top: 80px;
  }
  .glossary__filter-menu {
    height: calc(100vh - 150px);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .glossary__result-count {
    display: block;
    font-size: 1.6rem;
    color: #164734;
  }
  .glossary__heading {
    font-size: 7.2rem;
    line-height: 72px;
  }
  .glossary__drawer-close {
    display: none;
  }
  .glossary__filter-body {
    position: relative;
    display: block !important;
    background-color: unset;
    padding-left: 0;
    padding-right: 0;
    z-index: 1;
  }
  .glossary__content {
    padding: 0;
    max-width: 518px;
    width: 100%;
  }
  .glossary__controls {
    max-width: 268px;
    width: 100%;
    padding: 0;
    height: -webkit-max-content;
    height: -moz-max-content;
    height: max-content;
    position: -webkit-sticky;
    position: sticky;
    top: 150px;
    transition: top 0.3s;
  }
  .glossary__controls.is-scrolling-down {
    top: 25px;
  }
  .glossary__controls-top {
    display: none;
  }
  .glossary__inner {
    display: flex;
    gap: 130px;
    justify-content: center;
    padding-top: 25px;
  }
  .glossary__category-nav {
    margin-top: -66px;
  }
  .glossary__category-card {
    width: 127px;
    height: 117px;
    padding-left: 23px;
    padding-right: 23px;
  }
  .glossary__category-card img {
    width: 100%;
  }
  .glossary__button-container {
    display: none;
  }
  .glossary__card-img-col {
    max-width: 90px;
  }
  .glossary__card-img-col img {
    width: 100%;
  }
}

body[\:has\(.glossary__filter-btn.active\)] {
  overflow: hidden;
}

body:has(.glossary__filter-btn.active) {
  overflow: hidden;
}

#scrollTop {
  position: fixed;
  z-index: 1;
  right: 20px;
  bottom: 75px;
}
#scrollTop svg {
  width: 40px;
  height: 40px;
}

input[type=range] {
  -webkit-appearance: none;
  width: 100%;
  /* Default background (will be overridden by JS gradient) */
  background: rgba(22, 71, 52, 0.15);
  cursor: pointer;
  height: 6px;
  /* Match track height */
  border-radius: 3px;
  margin: 10px 0;
  /* Add breathing room for the thumb */
  /* --- 1. The Track (Transparent so Gradient shows) --- */
  /* --- 2. The Thumb (The Grabber) --- */
}
input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 6px;
  cursor: pointer;
  background: transparent;
  /* IMPORTANT: Let the input background show */
  border-radius: 3px;
}
input[type=range]::-moz-range-track {
  width: 100%;
  height: 6px;
  cursor: pointer;
  background: transparent;
  border-radius: 3px;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #164734;
  border: 3px solid #F8F1E4;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  /* Vertically center thumb: (TrackHeight / 2) - (ThumbHeight / 2) */
  /* (6px / 2) - (20px / 2) = 3 - 10 = -7px */
  margin-top: -7px;
  -webkit-transition: transform 0.1s ease;
  transition: transform 0.1s ease;
}
input[type=range]::-moz-range-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #164734;
  border: 3px solid #F8F1E4;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  -moz-transition: transform 0.1s ease;
  transition: transform 0.1s ease;
  border: none;
  /* Firefox specific reset */
}
input[type=range]:hover::-webkit-slider-thumb {
  transform: scale(1.1);
}
input[type=range]:hover::-moz-range-thumb {
  transform: scale(1.1);
}
input[type=range]:focus {
  outline: none;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWdsb3NzYXJ5LmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFJQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBSEY7QUFJRTtFQUNFO0FBRko7QUFJRTtFQUNFO0VBQ0E7RUFBQTtFQUFBO0VBQUE7RUFDQTtFQUNBO0FBRko7QUFJRTtFQUNFO0FBRko7QUFHSTtFQUNFO0VBQ0E7QUFETjtBQUtFO0VBQ0U7QUFISjtBQUlJO0VBQ0U7RUFDQTtFQUNBO0FBRk47QUFJSTtFQUNFO0VBQ0E7RUFDQTtBQUZOO0FBS0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFISjtBQUlJO0VBQ0U7RUFDQTtFQUNBO0VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRk47QUFPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUxKO0FBUUU7RUFDRTtFQUFBO0FBTko7QUFRRTtFQUNFO0VBQ0E7RUFDQTtBQU5KO0FBT0k7RUFDRTtFQUNBO0VBQ0E7QUFMTjtBQVFFO0VBQ0U7QUFOSjtBQVFFO0VBQ0U7QUFOSjtBQVFFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtLQUFBO0VBQ0E7QUFOSjtBQVNJO0VBQ0U7QUFQTjtBQVVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVJKO0FBVUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUko7QUFVRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFSSjtBQVVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFSSjtBQVNJO0VBQ0U7RUFDQTtFQUNBO0FBUE47QUFTSTtFQUNFO0VBQ0E7QUFQTjtBQVVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFSSjtBQVVFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUko7QUFVRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFSSjtBQVNJO0VBQ0U7RUFBQTtBQVBOO0FBV0k7RUFDRTtFQUNBO0VBQ0E7QUFUTjtBQVdJO0VBRUU7RUFDQTtFQUNBO0VBQ0E7QUFWTjtBQWNJO0VBQ0U7RUFDQTtFQUNFO0VBQ047QUFaRjtBQWNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQUE7RUFBQTtFQUNBO0VBQ0E7QUFaTjtBQWNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVpOO0FBY0k7RUFDRTtFQUNBO0VBQ0E7QUFaTjtBQWNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFaTjtBQWFNO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFYUjtBQWFNO0VBQ0U7QUFYUjtBQWFNO0VBQ0U7QUFYUjtBQWNJO0VBQ0U7RUFDQTtFQUNBO0FBWk47QUFhTTtFQUNFO0VBQ0E7QUFYUjtBQWNJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtLQUFBO01BQUE7VUFBQTtFQUNBO0VBQ0E7QUFaTjtBQWVJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFiTjtBQWdCSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZE47QUFpQkk7RUFDRTtFQUNBO0FBZk47QUFhSTtFQUNFO0VBQ0E7QUFmTjtBQWtCSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBaEJOO0FBTUk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWhCTjtBQW1CSTtFQUNFO0VBQ0E7QUFqQk47QUFlSTtFQUNFO0VBQ0E7QUFqQk47QUFlSTtFQUNFO0VBQ0E7QUFqQk47QUFlSTtFQUNFO0VBQ0E7QUFqQk47QUFtQkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBQWpCTjtBQW9CRTtFQUNFO0VBQ0U7RUFDQTtFQUNBO0FBbEJOO0FBb0JFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWxCSjtBQW9CRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWxCSjtBQW9CRTtFQUNFO0VBQ0E7RUFDQTtFQUFBO0VBQ0E7RUFDQTtBQWxCSjtBQW9CRTtFQUNFO0FBbEJKO0FBb0JFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBbEJKO0FBbUJJO0VBQ0U7QUFqQk47QUFxQkk7RUFDRTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXBCTjtBQXFCTTtFQUVFO0VBQ0E7QUFwQlI7QUF1Qkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXJCTjtBQXNCTTtFQUNFO0VBQ0E7QUFwQlI7QUFzQk07RUFDRTtBQXBCUjtBQXdCRTtFQUNFO0FBdEJKO0FBd0JFO0VBQ0U7QUF0Qko7QUF3QkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBdEJKO0FDNUxFO0VENUtGO0lBaVlJO0VBckJGO0VBc0JFO0lBQ0U7RUFwQko7RUF1Qkk7SUFDRTtJQUNBO0lBQ0E7SUFDQTtFQXJCTjtFQXdCRTtJQUNFO0lBQ0E7SUFDQTtFQXRCSjtFQXdCRTtJQUNFO0lBQ0E7RUF0Qko7RUF5Qkk7SUFDRTtFQXZCTjtFQTJCSTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQUE7SUFDQTtFQXpCTjtFQTRCRTtJQUNFO0lBQ0E7SUFDQTtFQTFCSjtFQTRCRTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQUE7SUFBQTtJQUNBO0lBQUE7SUFDQTtJQUNBO0VBMUJOO0VBMkJNO0lBQ0U7RUF6QlI7RUEyQkk7SUFDRTtFQXpCTjtFQTRCRTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0VBMUJKO0VBNkJJO0lBQ0U7RUEzQk47RUE2Qkk7SUFDRTtJQUNBO0lBQ0E7SUFBQTtFQTNCTjtFQTRCTTtJQUNFO0VBMUJSO0VBOEJFO0lBQW9CO0VBM0J0QjtFQTZCSTtJQUNFO0VBM0JOO0VBNEJNO0lBQ0U7RUExQlI7QUFDRjs7QUFnQ0E7RUFDRTtBQTdCRjs7QUE0QkE7RUFDRTtBQTdCRjs7QUErQkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBQTVCRjtBQTZCRTtFQUNFO0VBQ0E7QUEzQko7O0FBOEJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQWE7RUFDYjtFQUNBO0VBQWdCO0VBRWhCO0VBaUJBO0FBMUNKO0FBMEJJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFBeUI7RUFDekI7QUF2Qk47QUEwQkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBeEJOO0FBNEJJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0FBM0JOO0FBOEJJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQ0E7RUFBYztBQTNCcEI7QUErQk07RUFBMEI7QUE1QmhDO0FBNkJNO0VBQXNCO0FBMUI1QjtBQTZCSTtFQUNFO0FBM0JOLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93b3JrZmxvdy8uL3NyYy9zdHlsZXMvY29tcG9uZW50cy9nbG9zc2FyeS5zY3NzIiwid2VicGFjazovL3dvcmtmbG93Ly4vbm9kZV9tb2R1bGVzL3Nhc3MtbXEvX21xLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vc2V0dGluZ3MvY29sb3JzJztcbkBpbXBvcnQgJy4uL3NldHRpbmdzL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJy4uL3Rvb2xzL21peGlucyc7XG5cbi5nbG9zc2FyeSB7XG4gIHBhZGRpbmc6IDAgMCAyOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiNEQUUyQ0I7XG4gIG9wYWNpdHk6MDtcbiAgdHJhbnNpdGlvbjouM3Mgb3BhY2l0eTtcbiAgJi5pcy1sb2FkZWR7XG4gICAgb3BhY2l0eToxO1xuICB9XG4gICZfX292ZXJsYXl7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgaW5zZXQ6MDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMxNjQ3MzQ7XG4gICAgb3BhY2l0eTouNjtcbiAgfVxuICAmX19oZXJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW1ne1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIGhlaWdodDphdXRvO1xuICAgIH1cbiAgfVxuXG4gICZfX2ljb24taGVhZGVye1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICYtLTF7XG4gICAgICBtYXgtd2lkdGg6MTUwcHg7XG4gICAgICB0b3A6LTIwcHg7XG4gICAgICBsZWZ0OjA7XG4gICAgfVxuICAgICYtLTJ7XG4gICAgICBtYXgtd2lkdGg6NTBweDtcbiAgICAgIHJpZ2h0OjEwcHg7XG4gICAgICBib3R0b206NTBweDtcbiAgICB9XG4gIH1cbiAgJl9faGVhZGluZyB7XG4gICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjRjhGMUU0O1xuICAgIGZvbnQtZmFtaWx5OiBcIlNoYXJwR3JvdGVza0JvbGRcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgJi1jb250YWluZXJ7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgICAgIHBhZGRpbmctaW5saW5lOjIwcHg7XG4gICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIG1heC13aWR0aDo3ODZweDtcblxuICAgIH1cbiAgfVxuXG4gICZfX2xldHRlciB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOi4wOXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xuICAgIGZvbnQtZmFtaWx5OidTaGFycEdyb3Rlc2tCb2xkJztcbiAgICBjb2xvcjojMTU0NzM0O1xuICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNBQkI5OTM7XG4gICAgcGFkZGluZy1ib3R0b206MTVweDtcbiAgICBwYWRkaW5nLXRvcDozMHB4O1xuICB9XG5cbiAgJl9fY29udGVudHtcbiAgICBwYWRkaW5nLWlubGluZToxNXB4O1xuICB9XG4gICZfX2FjY29yZGlvbntcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQUJCOTkzO1xuICAgIHBhZGRpbmctdG9wOjE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206MTVweDtcbiAgICAmX19zdW1tYXJ5e1xuICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgZ2FwOjE1cHg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbiAgJl9fY2FyZC1pbWctY29se1xuICAgIHdpZHRoOjI1JTtcbiAgfVxuICAmX19jYXJkLXRleHQtY29se1xuICAgIHdpZHRoOjc1JTtcbiAgfVxuICAmX19jYXJkLWltZy1jb2wgaW1ne1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYXNwZWN0LXJhdGlvOiAxLzE7XG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBib3JkZXItcmFkaXVzOjEwcHg7XG4gIH1cbiAgJl9fY2FyZHtcbiAgICAmLWhlYWRlcntcbiAgICAgIHBhZGRpbmctcmlnaHQ6MzBweDtcbiAgICB9XG4gIH1cbiAgJl9fdGl0bGV7XG4gICAgY29sb3I6IzE1NDczNDtcbiAgICBmb250LXNpemU6Mi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OjIycHg7XG4gICAgZm9udC1mYW1pbHk6J1NoYXJwR3JvdGVza0JvbGQnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbiAgJl9fZGVzYy1wcmV2aWV3e1xuICAgIGZvbnQtZmFtaWx5OidMYXRvJztcbiAgICBmb250LXNpemU6MS40cmVtO1xuICAgIG1hcmdpbi10b3A6NXB4O1xuICAgIGxpbmUtaGVpZ2h0OjIycHg7XG4gICAgY29sb3I6IzE1NDczNDtcbiAgfVxuICAmX19pY29ue1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICByaWdodDowO1xuICAgIHRvcDowO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gICZfX2xldmVse1xuICAgIGZvbnQtZmFtaWx5OidMYXRvJztcbiAgICBmb250LXdlaWdodDo3MDA7XG4gICAgZm9udC1zaXplOjEuNHJlbTtcbiAgICBjb2xvcjojMTY0NzM0O1xuICAgICYtd3JhcHBlcntcbiAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgICAgIGdhcDo0cHg7XG4gICAgfVxuICAgICYtaWNvbnN7XG4gICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICBnYXA6NHB4O1xuICAgIH1cbiAgfVxuICAmX19sZXZlbC10YWd7XG4gICAgZm9udC1mYW1pbHk6J0xhdG8nO1xuICAgIGZvbnQtd2VpZ2h0OjcwMDtcbiAgICBmb250LXNpemU6MS40cmVtO1xuICAgIGNvbG9yOiMwNThBNTc7XG4gIH1cbiAgJl9fc3BlY3MtaGVhZGVye1xuICAgIGZvbnQtZmFtaWx5OidMYXRvJztcbiAgICBmb250LXdlaWdodDo4MDA7XG4gICAgZm9udC1zaXplOjEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDozMHB4O1xuICAgIG1hcmdpbi10b3A6MTVweDtcbiAgICBjb2xvcjojMTY0NzM0O1xuICB9XG4gIC5zcGVjLWl0ZW17XG4gICAgZm9udC1mYW1pbHk6J0xhdG8nO1xuICAgIGZvbnQtd2VpZ2h0OjcwMDtcbiAgICBmb250LXNpemU6MS40cmVtO1xuICAgIGNvbG9yOiMxNjQ3MzQ7XG4gICAgbWFyZ2luLXRvcDo4cHg7XG4gICAgc3BhbntcbiAgICAgIGZvbnQtd2VpZ2h0OmluaXRpYWw7XG4gICAgfVxuICB9XG4gICZfX2RyYXdlcntcbiAgICAmLWhlYWRlcntcbiAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgIH1cbiAgICAmLXRpdGxle1xuXG4gICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTonU2hhcnBHcm90ZXNrQm9sZCc7XG4gICAgICBjb2xvcjojMTY0NzM0O1xuICAgICAgZm9udC1zaXplOjIuNXJlbTtcbiAgICB9XG4gIH1cbiAgJl9fZmlsdGVye1xuICAgICYtbWVudXtcbiAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICMxNTQ3MzQ7XG4gICAgICBtYXJnaW4tdG9wOjIwcHg7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTUxcHgpO1xuICAgIH1cbiAgICAmLWJvZHl7XG4gICAgICBwb3NpdGlvbjpmaXhlZDtcbiAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6MTAwJTtcbiAgICAgIGluc2V0OjA7XG4gICAgICBwYWRkaW5nOjMwcHggMTVweCAyNXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjojRjhGMUU0O1xuICAgIH1cbiAgICAmLXRpdGxle1xuICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgZm9udC1mYW1pbHk6J1NoYXJwR3JvdGVza0JvbGQnO1xuICAgICAgZm9udC1zaXplOjJyZW07XG4gICAgICBsaW5lLWhlaWdodDoyNHB4O1xuICAgICAgY29sb3I6IzE2NDczNDtcbiAgICB9XG4gICAgJi1pdGVte1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIGdhcDoxNXB4O1xuICAgIH1cbiAgICAmLXRhZ3tcbiAgICAgIHBhZGRpbmc6OHB4IDEycHg7XG4gICAgICBjb2xvcjojREFFMkNCO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE1NDczNDtcbiAgICAgIGJvcmRlci1yYWRpdXM6MzJweDtcbiAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6NXB4O1xuICAgICAgJi0tY2xlYXJ7XG4gICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgYmFja2dyb3VuZDp1bnNldDtcbiAgICAgICAgY29sb3I6IzE1NDczNDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBzdmd7XG4gICAgICAgIHdpZHRoOjEycHg7XG4gICAgICB9XG4gICAgICBzdmcgcGF0aHtcbiAgICAgICAgc3Ryb2tlOiNEQUUyQ0I7XG4gICAgICB9XG4gICAgfVxuICAgICYtYWNjb3JkaW9ue1xuICAgICAgcGFkZGluZy10b3A6MjBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOjIwcHg7XG4gICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCBibGFjaztcbiAgICAgICZfX3N1bW1hcnl7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47XG4gICAgICB9XG4gICAgfVxuICAgICYtaXRlbXtcbiAgICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgICBnYXA6LjVyZW07XG4gICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgIHVzZXItc2VsZWN0Om5vbmU7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgXG4gICAgICBtYXJnaW4tdG9wOjEwcHg7XG4gICAgfVxuXG4gICAgJi1pdGVtID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJde1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OjA7XG4gICAgICB3aWR0aDoxcHg7XG4gICAgICBoZWlnaHQ6MXB4O1xuICAgIH1cblxuICAgICYtaXRlbTo6YmVmb3Jle1xuICAgICAgY29udGVudDpcIlwiO1xuICAgICAgd2lkdGg6MThweDtcbiAgICAgIGhlaWdodDoxOHB4O1xuICAgICAgYm9yZGVyOjFweCBzb2xpZCAjMTY0NzM0O1xuICAgICAgYm9yZGVyLXJhZGl1czo0cHg7XG4gICAgICBib3gtc2l6aW5nOmJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOjE1MG1zO1xuICAgIH1cblxuICAgICYtaXRlbTpoYXMoPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCk6OmJlZm9yZXtcbiAgICAgIGJhY2tncm91bmQ6IzE2NDczNDtcbiAgICAgIGJvcmRlci1jb2xvcjojMTY0NzM0O1xuICAgIH1cblxuICAgICYtaXRlbTpoYXMoPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCk6OmFmdGVye1xuICAgICAgY29udGVudDpcIlwiO1xuICAgICAgd2lkdGg6OXB4O1xuICAgICAgaGVpZ2h0OjVweDtcbiAgICAgIGJvcmRlci1sZWZ0OjJweCBzb2xpZCAjZmZmO1xuICAgICAgYm9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjtcbiAgICAgIHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgbGVmdDo0cHg7XG4gICAgICB0b3A6NTAlO1xuICAgICAgbWFyZ2luLXRvcDotM3B4O1xuICAgIH1cblxuICAgICYtaXRlbTpoYXMoPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMtdmlzaWJsZSk6OmJlZm9yZXtcbiAgICAgIG91dGxpbmU6M3B4IHNvbGlkIHJnYmEoMTI0LDU4LDIzNywuMzUpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6MnB4O1xuICAgIH1cbiAgICAmLWJ0bntcbiAgICAgIHBhZGRpbmc6OHB4IDE2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOjMycHg7XG4gICAgICBjb2xvcjojRjhGMUU0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE2NDczNDtcbiAgICB9XG4gIH1cbiAgJl9fYWN0aXZlLXRhZ3N7XG4gICAgcGFkZGluZy10b3A6MjBweDtcbiAgICAgIGdhcDogMTBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG4gICZfX3Nob3ctcmVzdWx0cy1idG57XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMTU0NzM0O1xuICAgIGNvbG9yOiNGRkZGRkY7XG4gICAgcGFkZGluZzo4cHggMTZweDtcbiAgICBib3JkZXItcmFkaXVzOjEwcHg7XG4gICAgd2lkdGg6MTAwJTtcbiAgfVxuICAmX19idXR0b24tY29udGFpbmVye1xuICAgIGxlZnQ6MDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6I2Y4ZjFlNDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOjE1cHg7XG4gIH1cbiAgJl9fY29udHJvbHMtdG9we1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWlubGluZToxNXB4O1xuICAgIHBhZGRpbmctdG9wOjMwcHg7XG4gICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICB9XG4gICZfX2NvbnRyb2xzLXRvcCAuZ2xvc3NhcnlfX2NsZWFyLWJ0bntcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cbiAgJl9fY2FyZF9fYnRue1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgZ2FwOjVweDtcbiAgICBjb2xvcjojMTU0NzM0O1xuICAgIGZvbnQtc2l6ZToxLjZyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbWFyZ2luLXRvcDoxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OjcwMDtcbiAgICBmb250LWZhbWlseTonTGF0byc7XG4gICAgc3Zne1xuICAgICAgbWF4LXdpZHRoOjE4cHg7XG4gICAgfVxuICB9XG4gICZfX2NhdGVnb3J5e1xuICAgICYtbmF2e1xuICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOi00MHB4O1xuXG4gICAgICBnYXA6MTBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgICAgIFxuICAgICAgb3ZlcmZsb3cteDogYXV0bzsgICAgICBcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAgXG4gICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICB9XG4gICAgfVxuICAgICYtY2FyZHtcbiAgICAgIHdpZHRoOjk3cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGOEYxRTQ7XG4gICAgICBib3JkZXI6MXB4IHNvbGlkICMxNjQ3MzQ7XG4gICAgICBwYWRkaW5nLXRvcDoxMnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206N3B4O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOjE2cHg7XG4gICAgICAmX19sYWJlbHtcbiAgICAgICAgZm9udC1zaXplOjEuNHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDozcHg7XG4gICAgICB9XG4gICAgICBpbWd7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGRldGFpbHNbb3Blbl0gLnBsdXMtdmVydGljYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJl9fcmVzdWx0LWNvdW50e1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuICAmX19lbXB0eXtcbiAgICBtYXJnaW46IDYwcHggMCA1MDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gIH1cbiAgQGluY2x1ZGUgbXEoJGZyb206IGxnKSB7XG4gICAgcGFkZGluZy10b3A6MDtcbiAgICAmX19lbXB0eXtcbiAgICAgIG1hcmdpbi10b3A6ODBweDtcbiAgICB9XG4gICAgJl9fZmlsdGVye1xuICAgICAgJi1tZW51e1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNTBweCk7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAgXG4gICAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9fcmVzdWx0LWNvdW50e1xuICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgIGZvbnQtc2l6ZToxLjZyZW07XG4gICAgICBjb2xvcjojMTY0NzM0O1xuICAgIH1cbiAgICAmX19oZWFkaW5ne1xuICAgICAgZm9udC1zaXplOjcuMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiA3MnB4O1xuICAgIH1cbiAgICAmX19kcmF3ZXJ7XG4gICAgICAmLWNsb3Nle1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgICZfX2ZpbHRlcntcbiAgICAgICYtYm9keXtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6YmxvY2shaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnVuc2V0O1xuICAgICAgICBwYWRkaW5nLWlubGluZTowO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19jb250ZW50e1xuICAgICAgcGFkZGluZzowO1xuICAgICAgbWF4LXdpZHRoOjUxOHB4O1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgJl9fY29udHJvbHN7XG4gICAgICAgIG1heC13aWR0aDogMjY4cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6bWF4LWNvbnRlbnQ7XG4gICAgICAgIHBvc2l0aW9uOnN0aWNreTtcbiAgICAgICAgdG9wOjE1MHB4O1xuICAgICAgICB0cmFuc2l0aW9uOnRvcCAuM3M7XG4gICAgICAgICYuaXMtc2Nyb2xsaW5nLWRvd257XG4gICAgICAgICAgdG9wOjI1cHg7XG4gICAgICAgIH1cbiAgICAgICYtdG9we1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgICZfX2lubmVye1xuICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgZ2FwOjEzMHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgICAgIHBhZGRpbmctdG9wOjI1cHg7XG4gICAgfVxuICAgICZfX2NhdGVnb3J5e1xuICAgICAgJi1uYXZ7XG4gICAgICAgIG1hcmdpbi10b3A6LTY2cHg7XG4gICAgICB9XG4gICAgICAmLWNhcmR7XG4gICAgICAgIHdpZHRoOjEyN3B4O1xuICAgICAgICBoZWlnaHQ6MTE3cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOjIzcHg7XG4gICAgICAgIGltZ3tcbiAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZfX2J1dHRvbi1jb250YWluZXJ7ZGlzcGxheTpub25lO31cbiAgICAmX19jYXJke1xuICAgICAgJi1pbWctY29se1xuICAgICAgICBtYXgtd2lkdGg6OTBweDtcbiAgICAgICAgaW1ne1xuICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYm9keTpoYXMoLmdsb3NzYXJ5X19maWx0ZXItYnRuLmFjdGl2ZSl7XG4gIG92ZXJmbG93OmhpZGRlbjtcbn1cbiNzY3JvbGxUb3B7XG4gIHBvc2l0aW9uOmZpeGVkO1xuICB6LWluZGV4OiAxO1xuICByaWdodDoyMHB4O1xuICBib3R0b206NzVweDtcbiAgc3Zne1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxufVxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IFxuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIERlZmF1bHQgYmFja2dyb3VuZCAod2lsbCBiZSBvdmVycmlkZGVuIGJ5IEpTIGdyYWRpZW50KSAqL1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjIsIDcxLCA1MiwgMC4xNSk7IFxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBoZWlnaHQ6IDZweDsgLyogTWF0Y2ggdHJhY2sgaGVpZ2h0ICovXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIG1hcmdpbjogMTBweCAwOyAvKiBBZGQgYnJlYXRoaW5nIHJvb20gZm9yIHRoZSB0aHVtYiAqL1xuXG4gICAgLyogLS0tIDEuIFRoZSBUcmFjayAoVHJhbnNwYXJlbnQgc28gR3JhZGllbnQgc2hvd3MpIC0tLSAqL1xuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogSU1QT1JUQU5UOiBMZXQgdGhlIGlucHV0IGJhY2tncm91bmQgc2hvdyAqL1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cbiAgICBcbiAgICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICAvKiAtLS0gMi4gVGhlIFRodW1iIChUaGUgR3JhYmJlcikgLS0tICovXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTY0NzM0OyBcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICNGOEYxRTQ7IFxuICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwwLDAsMC4xNSk7XG4gICAgICBcbiAgICAgIC8qIFZlcnRpY2FsbHkgY2VudGVyIHRodW1iOiAoVHJhY2tIZWlnaHQgLyAyKSAtIChUaHVtYkhlaWdodCAvIDIpICovXG4gICAgICAvKiAoNnB4IC8gMikgLSAoMjBweCAvIDIpID0gMyAtIDEwID0gLTdweCAqL1xuICAgICAgbWFyZ2luLXRvcDogLTdweDsgXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTY0NzM0O1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgI0Y4RjFFNDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMTUpO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbiAgICAgIGJvcmRlcjogbm9uZTsgLyogRmlyZWZveCBzcGVjaWZpYyByZXNldCAqL1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9IiwiQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5cbi8vLyBCcmVha3BvaW50IGxpc3Rcbi8vL1xuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJGJyZWFrcG9pbnRzOiAoXG4gIG1vYmlsZTogMzIwcHgsXG4gIHRhYmxldDogNzQwcHgsXG4gIGRlc2t0b3A6IDk4MHB4LFxuICB3aWRlOiAxMzAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aC4gRm9yIGV4YW1wbGU6IChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBAdXNlICdwYXRoL3RvL21xJyB3aXRoICgkc2hvdy1icmVha3BvaW50czogKCdtb2JpbGUnLCAndGFibGV0JywgJ2Rlc2t0b3AnKSk7XG4vLy9cbi8vL1xuLy8vIEB0eXBlIG1hcFxuJHNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChmb3IgZXhhbXBsZTogYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBvdmVycmllZCB0aGUgbWVkaWEgdHlwZSwgeW91IGNhbiB1c2UgdGhpcyBvcHRpb24uXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQHVzZSAncGF0aC90by9tcScgd2l0aCAoJG1lZGlhLXR5cGU6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVcbiRtZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBweDJlbSgxNnB4KTtcbi8vLyAgcCB7IGZvbnQtc2l6ZTogcHgyZW0oMTZweCk7IH1cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5cbkBmdW5jdGlvbiBweDJlbSgkcHgpIHtcbiAgQGlmIG1hdGguaXMtdW5pdGxlc3MoJHB4KSB7XG4gICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgQHJldHVybiBweDJlbSgkcHggKiAxcHgpO1xuICB9XG4gIC8vIGlmICRweCBpcyBjb21wYXRpYmxlIHdpdGggZW0gdW5pdHMsIHRoZW4gcmV0dXJuIHZhbHVlIHVuY2hhbmdlZFxuICBAaWYgbWF0aC5jb21wYXRpYmxlKCRweCwgMWVtKSB7XG4gICAgQHJldHVybiAkcHg7XG4gIH1cbiAgQHJldHVybiBtYXRoLmRpdigkcHgsIDE2cHgpICogMWVtO1xufVxuXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICR0YWJsZXQtd2lkdGg6IGdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBnZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBnZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vLy8gTWVkaWEgUXVlcnkgbWl4aW5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gW2ZhbHNlXSAtIE9uZSBvZiAkYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICR1bnRpbCBbZmFsc2VdIC0gT25lIG9mICRicmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCBbZmFsc2VdIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlIFskbWVkaWEtdHlwZV0gLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXG4vLy9cbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgWyRicmVha3BvaW50c11cbi8vL1xuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtZWRpYS10eXBlXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJGJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gcHgyZW1cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBnZXQtYnJlYWtwb2ludC13aWR0aFxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEB1c2UgJ3BhdGgvdG8vbXEnIGFzICo7XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4vLy8gICAgICBjb2xvcjogcmVkO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogZ3JlZW47XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XG4vLy8gICAgICBjb2xvcjogdGVhbDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XG4vLy8gICAgJG15LWJyZWFrcG9pbnRzOiAoTDogOTAwcHgsIFhMOiAxMjAwcHgpO1xuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgJGZyb206IGZhbHNlLFxuICAkdW50aWw6IGZhbHNlLFxuICAkYW5kOiBmYWxzZSxcbiAgJG1lZGlhLXR5cGU6ICRtZWRpYS10eXBlLFxuICAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50c1xuKSB7XG4gICRtaW4td2lkdGg6IDA7XG4gICRtYXgtd2lkdGg6IDA7XG4gICRtZWRpYS1xdWVyeTogJyc7XG5cbiAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXG4gIEBpZiAkZnJvbSB7XG4gICAgQGlmIHR5cGUtb2YoJGZyb20pID09IG51bWJlciB7XG4gICAgICAkbWluLXdpZHRoOiBweDJlbSgkZnJvbSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWluLXdpZHRoOiBweDJlbShnZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxuICBAaWYgJHVudGlsIHtcbiAgICBAaWYgdHlwZS1vZigkdW50aWwpID09IG51bWJlciB7XG4gICAgICAkbWF4LXdpZHRoOiBweDJlbSgkdW50aWwpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heC13aWR0aDogcHgyZW0oZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIDAuMDFlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG1pbi13aWR0aCAhPSAwIHtcbiAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJztcbiAgfVxuICBAaWYgJG1heC13aWR0aCAhPSAwIHtcbiAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJztcbiAgfVxuICBAaWYgJGFuZCB7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JztcbiAgfVxuXG4gIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgfVxuXG4gIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vIFF1aWNrIHNvcnRcbi8vL1xuLy8vIEBhdXRob3IgU2FtIFJpY2hhcmRzXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtMaXN0fSBTb3J0ZWQgTGlzdFxuQGZ1bmN0aW9uIF9xdWljay1zb3J0KCRsaXN0KSB7XG4gICRsZXNzOiAoKTtcbiAgJGVxdWFsOiAoKTtcbiAgJGxhcmdlOiAoKTtcblxuICBAaWYgbGVuZ3RoKCRsaXN0KSA+IDEge1xuICAgICRzZWVkOiBsaXN0Lm50aCgkbGlzdCwgbWF0aC5jZWlsKG1hdGguZGl2KGxlbmd0aCgkbGlzdCksIDIpKSk7XG5cbiAgICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgICBAaWYgKCRpdGVtID09ICRzZWVkKSB7XG4gICAgICAgICRlcXVhbDogbGlzdC5hcHBlbmQoJGVxdWFsLCAkaXRlbSk7XG4gICAgICB9IEBlbHNlIGlmICgkaXRlbSA8ICRzZWVkKSB7XG4gICAgICAgICRsZXNzOiBsaXN0LmFwcGVuZCgkbGVzcywgJGl0ZW0pO1xuICAgICAgfSBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xuICAgICAgICAkbGFyZ2U6IGxpc3QuYXBwZW5kKCRsYXJnZSwgJGl0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gam9pbihqb2luKF9xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX3F1aWNrLXNvcnQoJGxhcmdlKSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuXG4vLy8gU29ydCBhIG1hcCBieSB2YWx1ZXMgKHdvcmtzIHdpdGggbnVtYmVycyBvbmx5KVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc29ydFxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcbkBmdW5jdGlvbiBfbWFwLXNvcnQtYnktdmFsdWUoJG1hcCkge1xuICAkbWFwLXNvcnRlZDogKCk7XG4gICRtYXAta2V5czogbWFwLmtleXMoJG1hcCk7XG4gICRtYXAtdmFsdWVzOiBtYXAudmFsdWVzKCRtYXApO1xuICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcblxuICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXG4gIEBlYWNoICR2YWx1ZSBpbiAkbWFwLXZhbHVlcy1zb3J0ZWQge1xuICAgICRpbmRleDogaW5kZXgoJG1hcC12YWx1ZXMsICR2YWx1ZSk7XG4gICAgJGtleTogbGlzdC5udGgoJG1hcC1rZXlzLCAkaW5kZXgpO1xuICAgICRtYXAtc29ydGVkOiBtYXAubWVyZ2UoXG4gICAgICAkbWFwLXNvcnRlZCxcbiAgICAgIChcbiAgICAgICAgJGtleTogJHZhbHVlLFxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBVbnNldCB0aGUgdmFsdWUgaW4gJG1hcC12YWx1ZXMgdG8gcHJldmVudCB0aGUgbG9vcFxuICAgIC8vIGZyb20gZmluZGluZyB0aGUgc2FtZSBpbmRleCB0d2ljZVxuICAgICRtYXAtdmFsdWVzOiBsaXN0LnNldC1udGgoJG1hcC12YWx1ZXMsICRpbmRleCwgMCk7XG4gIH1cblxuICBAcmV0dXJuICRtYXAtc29ydGVkO1xufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIGFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICRuZXctYnJlYWtwb2ludDogKFxuICAgICRuYW1lOiAkd2lkdGgsXG4gICk7XG4gICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xuICAkYnJlYWtwb2ludHM6IF9tYXAtc29ydC1ieS12YWx1ZSgkYnJlYWtwb2ludHMpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzIFskc2hvdy1icmVha3BvaW50c10gLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzIFskYnJlYWtwb2ludHNdIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRicmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRzaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIHNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gc2hvdy1icmVha3BvaW50cyhcbiAgJHNob3ctYnJlYWtwb2ludHM6ICRzaG93LWJyZWFrcG9pbnRzLFxuICAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50c1xuKSB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmJlZWQ1O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZiZWVkNTtcbiAgICBjb2xvcjogI2MwOTg1MztcbiAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAkd2lkdGg6IGdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICBjb250ZW50OiAnI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje3B4MmVtKCR3aWR0aCl9KSc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpZiBsaXN0Lmxlbmd0aCgkc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgQGluY2x1ZGUgc2hvdy1icmVha3BvaW50cztcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/