search-element {
  display: block;
  position: relative;
  padding: 0 0 var(--spacer1) 0;
  box-shadow: initial !important;
}
search-element.loading .search-results-container {
  opacity: 0.3;
  pointer-events: none;
}
search-element.layout-content-right-sidebar {
  grid-gap: 0 var(--gutter1);
}
search-element .ui {
  grid-column: 1/-1;
  padding-top: var(--gutter1);
  padding-bottom: var(--gutter1);
  margin-top: var(--gutter1-);
  grid-gap: 0;
  z-index: 3;
  background-color: var(--background-colour, white);
  border-bottom: 1px solid transparent;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), padding var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .ui:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  border-bottom: inherit;
  height: calc(100% + 1px);
  width: 100%;
}
search-element .ui .search-types, search-element .ui .search-input, search-element .ui .search-keywords {
  grid-column: 1/-1;
}
search-element .ui .search-keywords .button, search-element .ui .search-controls .button {
  --border-radius:6px;
}
search-element .ui .search-keywords {
  grid-row: 3;
  grid-column: 1/span 2;
  margin-top: var(--gap);
}
search-element .ui .search-controls {
  padding-right: 0 !important;
  margin-top: var(--gap);
  display: grid;
  grid-gap: calc(var(--gap) * 0.5);
  grid-auto-flow: column;
  justify-content: flex-end;
}
search-element .ui.stuck {
  border-bottom-color: var(--border-colours, #dcdcdc);
}
search-element:not(.show-filters) > .left {
  grid-column: 1/-1 !important;
}
search-element:not(.show-filters) > .right {
  grid-column: 1/-1 !important;
}
search-element:not(.show-filters) .search-categories {
  display: none;
}
@media (min-width: 1121px) {
  search-element:not(.show-filters) .search-categories {
    grid-template-columns: repeat(auto-fill, minmax(600px, 1fr));
  }
}
search-element .search-types {
  display: grid;
  position: relative;
  margin-top: calc(var(--gap) * -1);
  grid-gap: var(--gutter1);
  justify-content: start;
}
search-element .search-types button {
  position: relative;
  grid-row: 1;
  text-transform: uppercase;
  font-size: 1em;
  font-weight: bold;
  color: #131f6b;
  padding: var(--gap) 0;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-types button::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transition: transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  height: 6px;
  width: 100%;
  background-color: var(--secondary, #DF3035);
  display: block;
  pointer-events: none;
  transform: scaleY(0);
  transform-origin: 50% 100%;
}
@media (hover: hover) {
  search-element .search-types button:hover {
    color: #DF3035;
  }
  search-element .search-types button:hover::after {
    transform: scaleY(0.5);
  }
}
search-element .search-types button.current {
  color: #131f6b;
}
search-element .search-types button.current::after {
  transform: scaleY(1);
}
search-element .search-input {
  --search-input-padding: var(--gutter1);
  --search-icon-size: 26px;
  --search-input-padding-left: calc(var(--search-input-padding) * 2 + var(--search-icon-size));
  --search-input-padding-right: var(--search-input-padding-left);
  display: block;
  position: relative;
}
search-element .search-input input[type=search] {
  --font-colour: #6A6A6A;
  --background-colour: #FFFFFF;
  --border-radius: var(--border-radius, 6px);
  --border-colour: var(--font-colour);
  --border: 1px solid var(--border-colour);
  --padding: var(--gap) var(--gap);
  border-radius: var(--border-radius, 6px);
  background-color: var(--background-colour);
  border: var(--border);
  padding: var(--padding);
  font-size: 0.875em;
  color: var(--font-colour);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: var(--search-input-padding) var(--search-input-padding-right) var(--search-input-padding) var(--search-input-padding-left);
  width: 100%;
  border-radius: 6px;
  font-size: 1.25em;
  border: 1px solid var(--border-colours, #dcdcdc);
  transition: padding var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]::-moz-placeholder {
  -moz-transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input input[type=search]:focus {
  outline-color: #131f6b;
}
search-element .search-input input[type=search]:focus::-moz-placeholder {
  color: transparent;
}
search-element .search-input input[type=search]:focus::placeholder {
  color: transparent;
}
search-element .search-input input[type=search].autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
search-element .search-input input[type=search][value=""] ~ svg.search {
  color: #969695;
}
search-element .search-input input[type=search][value=""] ~ button.close {
  pointer-events: none;
  opacity: 0;
  transform: translateY(-50%) scale(0.8) rotate(0deg);
}
search-element .search-input svg.search {
  width: var(--search-icon-size);
  height: var(--search-icon-size);
  position: absolute;
  top: 50%;
  color: #DF3035;
  left: calc(var(--search-input-padding) * 1);
  transform: translateY(-50%);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), left var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-input button.close {
  width: var(--search-icon-size);
  height: var(--search-icon-size);
  position: absolute;
  top: 50%;
  color: #DF3035;
  right: calc(var(--search-input-padding) * 1);
  transform: translateY(-50%) scale(1) rotate(0deg);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55), right var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  search-element .search-input button.close:hover {
    color: #131f6b;
    transform: translateY(-50%) scale(1.06) rotate(90deg);
  }
}
search-element .search-keywords {
  position: relative;
  overflow: hidden;
}
search-element .search-keywords > div {
  display: grid;
  grid-gap: calc(var(--gap) * 0.5);
  justify-content: start;
}
search-element .search-keywords .button {
  grid-row: 1;
  width: -moz-fit-content;
  width: fit-content;
}
search-element .search-keywords .button.outline {
  text-transform: initial;
  white-space: nowrap;
  --background-colour: white;
}
@media (hover: hover) {
  search-element .search-keywords .button.outline:not(:hover) {
    --font-colour: #969695;
    --border-colour: var(--border-colours, #dcdcdc);
  }
  search-element .search-keywords .button.outline:hover {
    --hover-font-colour: #DF3035;
    --hover-border-colour: #DF3035;
    --hover-background-colour: #FFFFFF;
  }
}
search-element .search-keywords .button.outline.active {
  --font-colour: #FFFFFF !important;
  --border-colour: #DF3035 !important;
  --background-colour: #DF3035 !important;
}
@media (hover: hover) {
  search-element .search-keywords .button.outline.active:hover {
    --hover-font-colour: #FFFFFF !important;
    --hover-border-colour: #DF3035 !important;
    --hover-background-colour: #DF3035 !important;
  }
}
search-element .search-keywords .button.outline.active.active {
  --hover-font-colour: #FFFFFF !important;
  --hover-border-colour: #DF3035 !important;
  --hover-background-colour: #DF3035 !important;
}
@media (max-width: 1680px) {
  search-element .search-keywords {
    min-width: calc(100% + var(--gutter2));
    left: var(--gutter1-);
  }
  search-element .search-keywords > div {
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  search-element .search-keywords > div .button:last-of-type {
    margin-right: var(--gutter1);
  }
}
search-element .search-results-container {
  display: block;
  margin-top: var(--gutter1);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-results-container > .heading {
  display: none;
}
search-element .search-results-container .no-results {
  padding: var(--gutter1);
  border-radius: var(--border-radius, 6px);
  max-width: 900px;
  border: 1px dashed #dcdcdc;
}
search-element .search-results-container .results {
  display: grid;
  grid-gap: var(--gutter0);
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
}
search-element.list-style-rows .search-results-container .results {
  grid-template-columns: 1fr;
}
search-element.list-style-rows .search-results-container .results .result a {
  padding: var(--gutter0);
}

search-element .search-results-container .result {
  display: block;
}
search-element .search-results-container .result a {
  display: flex;
  text-decoration: none;
  flex-direction: column;
  border-radius: 6px;
  height: 100%;
  border: 1px solid var(--border-colours, #dcdcdc);
  padding: var(--gutter1);
  transition: border var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@media (hover: hover) {
  search-element .search-results-container .result a:hover {
    border-color: #DF3035 !important;
  }
}
search-element .search-results-container .result a:active {
  border-color: #292B68 !important;
  transform: scale(0.98);
}
search-element .search-results-container .result a:visited div {
  color: #292B68;
}
search-element .search-results-container .result a .heading {
  font-size: 1em;
}
search-element .search-results-container .result a div {
  font-size: 0.875em;
}
search-element:not(.show-highlights) .search-results-container .result mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
}

search-element .search-results-container .result a .image {
  height: 100px;
  order: -1;
  border-top-left-radius: calc(var(--border-radius, 6px) - 1px);
  border-top-right-radius: calc(var(--border-radius, 6px) - 1px);
  margin: var(--gutter1-) var(--gutter1-) var(--gutter1) var(--gutter1-);
}
search-element .search-results-container .result a[data-type]::after {
  content: attr(data-type);
  padding: 4px 8px;
  background-color: #F4F4F4;
  border: 1px solid #dcdcdc;
  font-size: 0.625em;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 4px;
  margin-top: calc(var(--gap) * 0.5);
  border-left: 4px solid var(--tag-colour, #969695);
}
search-element .search-results-container .result a[data-type="Metal Glossary"]::after {
  --tag-colour: #131f6b;
}
search-element .search-results-container .result a[data-type=Datasheet]::after {
  --tag-colour: #DF3035;
}
search-element .search-results-container .result a[data-type=News]::after {
  --tag-colour: #50BC08;
}
search-element .button.search-highlight-toggle {
  --padding:6px !important;
  --background-colour: white;
  --border-colour: #0095FF;
  --font-colour:#0095FF;
}
search-element .button.search-highlight-toggle svg {
  margin: 0 !important;
  width: 1.44em;
}
search-element .button.search-categories-toggle, search-element .button.search-clear-filters {
  text-transform: initial;
  white-space: nowrap;
}
@media (hover: hover) {
  search-element .button.search-clear-filters:hover {
    --stroke:#DF3035;
  }
}
search-element .button.search-list-style-toggle {
  --padding:6px !important;
  display: flex;
}
search-element .button.search-list-style-toggle svg {
  margin: 0 !important;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .button.search-list-style-toggle svg + svg {
  position: absolute;
}
search-element.show-highlights .button.search-highlight-toggle {
  --background-colour: #0095FF;
  --font-colour:white;
}
search-element:not(.showing-highlight-markers) .button.search-highlight-toggle {
  display: none;
}
search-element:not(.filters-active) .button.search-clear-filters {
  display: none;
}
search-element.list-style-rows .button.search-list-style-toggle svg.list-grid {
  opacity: 1;
}
search-element.list-style-grid .button.search-list-style-toggle svg.list-rows {
  opacity: 1;
}
search-element .search-categories {
  --gap: 8px;
  --heading-height: 43px;
  margin-top: var(--gutter1);
  display: grid;
  position: relative;
  border-radius: var(--border-radius, 6px);
  border: 1px solid var(--border-colours, #dcdcdc);
  padding: 0 0 var(--gutter1) 0 !important;
  background: #F4F4F4;
  height: -moz-fit-content;
  height: fit-content;
  flex-direction: column;
}
search-element.sticky-filter .search-categories {
  position: sticky;
  top: calc(var(--search-ui-height) + var(--gutter1));
  height: calc(100vh - var(--search-ui-height) - var(--gutter3));
  overflow: hidden;
  overflow-y: auto;
  display: flex;
}
search-element.sticky-filter .search-categories::before, search-element.sticky-filter .search-categories::after {
  content: initial;
}
search-element.sticky-filter .search-categories summary {
  background-color: #F4F4F4;
  top: 0;
}

search-element.no-results .search-categories {
  opacity: 0;
}
search-element.no-results .search-controls .button:not(.search-clear-filters) {
  display: none;
}
search-element.no-results .search-controls .search-clear-filters::before {
  content: "";
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  border-radius: var(--border-radius, 6px);
  border: 1px solid #DF3035;
  animation-name: flash;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}
@keyframes flash {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  100% {
    transform: scale(1.2, 1.8);
    opacity: 0;
  }
}

search-element .search-categories::after, search-element .search-categories::before {
  content: "";
  position: sticky;
  grid-row: 1;
  grid-column: 1/-1;
  margin-left: -1px;
  margin-top: -1px;
  width: calc(100% + 2px);
  height: var(--heading-height);
}
search-element .search-categories::after {
  top: calc(var(--search-ui-height) + var(--gutter1));
  background: inherit;
  border: 1px solid var(--border-colours, #dcdcdc);
  border-bottom: 1px dashed var(--border-colours, #dcdcdc);
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  box-shadow: 0px -4px white;
}
search-element .search-categories::before {
  top: calc(var(--search-ui-height) - var(--heading-height) + var(--gutter1));
  margin-top: calc(-1 * var(--heading-height) - 1px);
  background: white;
  z-index: 2;
}
search-element .search-categories h4 {
  display: none;
  position: absolute;
  bottom: 100%;
  margin-bottom: var(--gutter1);
  font-size: 2em;
  line-height: 1.3;
}
search-element:not(.show-filters) .search-categories {
  margin-top: calc(var(--spacer1) + var(--gutter1));
}
search-element:not(.show-filters) .search-categories h4 {
  display: block;
}
search-element:not(.show-filters) .search-categories details {
  border-bottom: initial !important;
}
search-element:not(.show-filters) .search-categories summary {
  pointer-events: none;
}
search-element:not(.show-filters) .search-categories summary svg {
  display: none !important;
}

@media (max-width: 1120px) {
  search-element .search-categories {
    margin-top: calc(var(--spacer1) + var(--gutter1));
  }
  search-element .search-categories h4 {
    display: block;
  }
  search-element .search-categories details {
    border-bottom: initial !important;
  }
  search-element .search-categories summary {
    pointer-events: none;
  }
  search-element .search-categories summary svg {
    display: none !important;
  }
}
search-element .search-categories details:not([hidden]) .content {
  display: flex;
}
search-element .search-categories details:not([open]) summary {
  padding-bottom: calc(var(--gap) * 0.5);
}
search-element .search-categories details:not([open]) summary svg.plus {
  display: block;
}
search-element .search-categories details:not([open]) summary svg.minus {
  display: none;
}
search-element .search-categories details:not(:last-of-type) {
  border-bottom: 1px dashed #dcdcdc;
}
search-element .search-categories details summary {
  font-size: 1.0625em;
  line-height: 1.6;
  display: flex;
  align-items: center;
  position: sticky;
  top: calc(var(--search-ui-height) + var(--gutter1));
  box-sizing: border-box;
  z-index: 1;
  color: #131f6b;
  height: var(--heading-height);
  text-transform: uppercase;
  font-weight: bold;
  justify-content: space-between;
  padding: var(--gap) var(--gutter1);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-categories details summary svg {
  width: 10px;
  height: 10px;
  stroke: #969695;
  stroke-width: 1.6em;
  transition: stroke var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
search-element .search-categories details summary svg.plus {
  display: none;
}
search-element .search-categories details summary svg.minus {
  display: block;
}
@media (hover: hover) {
  search-element .search-categories details summary:hover {
    cursor: pointer;
    color: #DF3035;
  }
  search-element .search-categories details summary:hover svg {
    stroke: #DF3035;
  }
}
search-element .search-categories details .content {
  flex-wrap: wrap;
  position: relative;
  margin-left: calc(-1 * (calc(var(--gap) * 0.5) / 2));
  margin-top: calc(-1 * (calc(var(--gap) * 0.5) / 2));
  padding: 0 var(--gutter1) calc(var(--gap) * 2) var(--gutter1);
}
search-element .search-categories details li {
  display: flex;
  margin: calc(calc(var(--gap) * 0.5) / 2);
}
search-element .search-categories details li[data-count="0"] {
  display: none;
}
search-element .search-categories details li input[type=checkbox] {
  display: none;
}
search-element .search-categories details li input[type=checkbox] ~ label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--gap) * 0.5) var(--gap);
  min-width: 9ch;
  font-size: 0.8125em;
  border-radius: 6px;
  border: 1px solid #dcdcdc;
  background-color: white;
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  search-element .search-categories details li input[type=checkbox] ~ label:hover {
    cursor: pointer;
    border-color: #DF3035;
  }
}
search-element .search-categories details li input[type=checkbox]:checked ~ label {
  background-color: #DF3035;
  color: white;
  border-color: #DF3035;
}
search-element .search-categories details li input[type=checkbox]:checked ~ label span.count {
  background-color: rgba(255, 255, 255, 0.3);
}
search-element .search-categories details li span.count {
  display: inline-flex;
  place-items: center;
  place-content: center;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
  background-color: #F4F4F4;
  padding: calc(var(--gap) * 0.5);
  margin-right: calc(var(--gap) * -1);
  margin-top: calc(var(--gap) * -1);
  margin-bottom: calc(var(--gap) * -1);
  margin-left: var(--gap);
  height: 100%;
  min-width: 3ch;
  font-size: 0.75em;
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (max-width: 1120px) {
  search-element .button.search-list-style-toggle {
    display: none;
  }
  search-element.list-style-rows .search-results-container .results .result a {
    padding: var(--gutter1);
  }
  search-element .search-keywords {
    display: none;
  }
  search-element .ui .search-controls {
    position: fixed;
    bottom: 0;
    left: 0;
    padding: calc(var(--gap) * 0.5) var(--gutter1) var(--gap) var(--gutter1) !important;
    border-top: 1px solid var(--border-colours, #dcdcdc);
    margin: 0;
    width: 100vw;
    background-color: white;
  }
  :root[data-browser*=chrome][data-device*=phone] search-element .ui .search-controls {
    padding: calc(var(--gap) * 0.5) var(--gutter1) calc(var(--gap) + 4px) var(--gutter1) !important;
  }
  search-element .search-categories {
    padding-top: var(--gutter1) !important;
  }
  search-element .search-categories details summary {
    top: var(--search-ui-height);
    background: #F4F4F4;
  }
  search-element .search-categories::before, search-element .search-categories::after {
    content: initial;
  }
}
search-element.grey {
  --background-colour: #F4F4F4;
  --border-colours: #F4F4F4;
  background-color: #F4F4F4;
}
search-element.grey:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
}
search-element.grey .ui:not(.stuck) {
  padding-top: var(--spacer0);
  padding-bottom: var(--spacer0);
}
search-element.grey .ui::before {
  border-bottom-color: #dcdcdc;
}
search-element.grey .search-results-container, search-element.grey .search-categories {
  margin-top: var(--spacer0);
}
search-element.grey .results .result a, search-element.grey .search-categories {
  background-color: white;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL3NlYXJjaC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJlYWsuc2NzcyIsIl92YXJpYWJsZXMvY29sb3Vycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faG92ZXIuc2NzcyIsIl9lbGVtZW50cy9mb3JtLnNjc3MiLCJfdmFyaWFibGVzL3VuaXRzLnNjc3MiLCJfZWxlbWVudHMvbWFyay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvYW5pbWF0aW9uL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsIl92YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BO0VBRUUsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsNkJBQUE7RUFDQSw4QkFBQTtBQ05GO0FEU0k7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7QUNQTjtBRFdFO0VBQ0UsMEJBQUE7QUNUSjtBRFlFO0VBQ0UsaUJBQUE7RUFDQSwy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Q0EseUJNbmpCQTtFTm9qQkEsK0JFN2hCRjtFRjhoQkUsbUNFN2hCaUI7RUY4aEJqQixpQ0U5aEJpQjtFRitoQmpCLG9DRS9oQmlCO0VGZ2lCakIsdUJFaGlCRjtFRmlpQkUsWUFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLDZIYTdrQkk7QVpnbkJkO0FJL21CRTtFTHFsQkU7SUFDRSxhQUFBO0VDNkJKO0VEM0JFO0lBQ0UsdUJFaGVLO0VENmZUO0VEM0JFO0lBQW1CLGFBQUE7RUM4QnJCO0VEN0JFO0lBQ0UsZUFBQTtJQUNBLFNBQUE7SUFDQSxPQUFBO0lBQ0EsbUZBQUE7SUFDQSxvREFBQTtJQUNBLFNBQUE7SUFDQSxZQUFBO0lBQ0EsdUJBQUE7RUMrQko7RUQ5QmE7SUFDUCwrRkFBQTtFQ2dDTjtFRDdCRTtJQUNFLHNDQUFBO0VDK0JKO0VEOUJJO0lBQWtCLDRCQUFBO0lBQTZCLG1CTTNsQjNDO0VMNm5CUjtFRGpDSTtJQUFzQixnQkFBQTtFQ29DMUI7QUFDRjtBRGhDRTtFQUNFLDRCQUFBO0VBQ0EseUJBQUE7RUFDQSx5Qk1wbUJNO0FMc29CVjtBRTFwQkU7RUFDRSxXQUFBO0VBQ0YseUJBQUE7RUFDQSxXQUFBO0VDYUEsa0JBQUE7RUFTRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsOENBQUE7QUh3b0JKO0FEMUNNO0VBQWdCLDJCRTFoQlg7RUYwaEJpQyw4QkUxaEJqQztBRHdrQlg7QUQ3Q007RUFDRSw0Qk14bUJFO0FMdXBCVjtBRDVDSTtFQUNFLDBCRWhpQks7QUQ4a0JYO0FENUNJO0VBQ0UsdUJBQUE7QUM4Q04iLCJmaWxlIjoiY29tcG9uZW50cy9zZWFyY2guY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlYXJjaFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNlYXJjaC1lbGVtZW50IHtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIHBhZGRpbmc6MCAwICRzcGFjZXIgMDsgXG4gIGJveC1zaGFkb3c6aW5pdGlhbCAhaW1wb3J0YW50OyBcbiAgXG4gICYubG9hZGluZyB7XG4gICAgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OjAuMztcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciB7XG4gICAgZ3JpZC1nYXA6MCAkZ3V0dGVyO1xuICB9XG5cbiAgLnVpIHtcbiAgICBncmlkLWNvbHVtbjoxIC8gLTE7XG4gICAgcGFkZGluZy10b3A6JGd1dHRlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTokZ3V0dGVyO1xuICAgIG1hcmdpbi10b3A6JGd1dHRlci07XG4gICAgZ3JpZC1nYXA6MDsgXG4gICAgei1pbmRleDozO1xuICAgIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICN7d2hpdGV9KTtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb24sIHBhZGRpbmcgJHRyYW5zaXRpb247XG5cbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWJsb3dvdXQge1xuICAgICAgYm9yZGVyLWJvdHRvbTppbmhlcml0O1xuICAgICAgaGVpZ2h0OmNhbGMoMTAwJSArIDFweCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnNlYXJjaC10eXBlcywgLnNlYXJjaC1pbnB1dCwgLnNlYXJjaC1rZXl3b3JkcyB7XG4gICAgICBncmlkLWNvbHVtbjoxIC8gLTE7XG4gICAgfVxuICAgIC5zZWFyY2gta2V5d29yZHMsIC5zZWFyY2gtY29udHJvbHMge1xuICAgICAgLmJ1dHRvbiB7IC0tYm9yZGVyLXJhZGl1czo2cHg7IH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWtleXdvcmRzIHtcbiAgICAgIGdyaWQtcm93OjM7IFxuICAgICAgZ3JpZC1jb2x1bW46MSAvIHNwYW4gMjtcbiAgICAgIG1hcmdpbi10b3A6JGdhcDsgXG5cbiAgICB9XG5cbiAgICAuc2VhcmNoLWNvbnRyb2xzIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6JGdhcDsgXG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6JGdhcDA7XG4gICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uOyBcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuICAgICYuc3R1Y2sge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAgIC8vIC5zZWFyY2gtaW5wdXQge1xuICAgICAgLy8gICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nOiN7JGd1dHRlcjB9O1xuICAgICAgLy8gICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWxlZnQgOiBjYWxjKHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSAqIDIgKyB2YXIoLS1zZWFyY2gtaWNvbi1zaXplKSk7XG4gICAgICAvLyB9XG4gICAgICB+IC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICBcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gICY6bm90KC5zaG93LWZpbHRlcnMpIHtcbiAgICA+IC5sZWZ0IHsgZ3JpZC1jb2x1bW46IDEgLyAtMSAhaW1wb3J0YW50O31cbiAgICA+IC5yaWdodCB7IGdyaWQtY29sdW1uOiAxIC8gLTEgIWltcG9ydGFudDt9XG4gICAgLnNlYXJjaC1jYXRlZ29yaWVzIHsgXG4gICAgICBkaXNwbGF5Om5vbmU7IFxuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KG1lZGl1bSkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg2MDBweCwgMWZyKSk7IH1cbiAgICB9XG4gIH1cblxuICAuc2VhcmNoLXR5cGVzIHtcbiAgICBkaXNwbGF5OmdyaWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6JGdhcC07XG4gICAgZ3JpZC1nYXA6JGd1dHRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgIGJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBncmlkLXJvdzoxO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTYpO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjokYmx1ZTtcbiAgICAgIHBhZGRpbmc6JGdhcCAwO1xuICAgICAgdHJhbnNpdGlvbjpjb2xvciAkdHJhbnNpdGlvbjtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OicnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTowO1xuICAgICAgICAvLyBsZWZ0OiRndXR0ZXIwOyBcbiAgICAgICAgbGVmdDowO1xuICAgICAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgaGVpZ2h0OjZweDtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgLy8gd2lkdGg6Y2FsYygxMDAlIC0gY2FsYygjeyRndXR0ZXJ9KSk7IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06c2NhbGVZKDAuNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuY3VycmVudCB7XG4gICAgICAgIGNvbG9yOiRibHVlO1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOnNjYWxlWSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIFxuICAuc2VhcmNoLWlucHV0IHtcblxuICAgIC0tc2VhcmNoLWlucHV0LXBhZGRpbmcgOiAjeyRndXR0ZXJ9O1xuICAgIC0tc2VhcmNoLWljb24tc2l6ZSA6IDI2cHg7XG4gICAgLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1sZWZ0IDogY2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAyICsgdmFyKC0tc2VhcmNoLWljb24tc2l6ZSkpO1xuICAgIC0tc2VhcmNoLWlucHV0LXBhZGRpbmctcmlnaHQgOiB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1sZWZ0KTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGZvcm0taW5wdXQoJ3NlYXJjaCcpIHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1yaWdodCkgdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpIHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLWxlZnQpO1xuICAgICAgd2lkdGg6MTAwJTsgXG4gICAgICBib3JkZXItcmFkaXVzOjZweDsgXG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDIwKTtcbiAgICAgIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSk7XG4gICAgICB0cmFuc2l0aW9uOiBwYWRkaW5nICR0cmFuc2l0aW9uO1xuICAgICAgJlt2YWx1ZT1cIlwiXSB7XG4gICAgICAgIH4gc3ZnLnNlYXJjaCB7IGNvbG9yOiRncmV5OyB9XG4gICAgICAgIH4gYnV0dG9uLmNsb3NlIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDAuOCkgcm90YXRlKDBkZWcpOyB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHN2Zy5zZWFyY2gge1xuICAgICAgd2lkdGg6dmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7IFxuICAgICAgaGVpZ2h0OnZhcigtLXNlYXJjaC1pY29uLXNpemUpOyBcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDo1MCU7XG4gICAgICBjb2xvcjokcmVkO1xuICAgICAgbGVmdDpjYWxjKHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSAqIDEpOyBcbiAgICAgIHRyYW5zZm9ybSA6dHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBsZWZ0ICR0cmFuc2l0aW9uO1xuICAgIH1cblxuICAgIGJ1dHRvbi5jbG9zZSB7XG4gICAgICB3aWR0aDp2YXIoLS1zZWFyY2gtaWNvbi1zaXplKTsgXG4gICAgICBoZWlnaHQ6dmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7IFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOjUwJTtcbiAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICByaWdodDpjYWxjKHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSAqIDEpOyBcbiAgICAgIHRyYW5zZm9ybSA6dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgJHRyYW5zaXRpb24sY29sb3IgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dC1iYWNrLCByaWdodCAkdHJhbnNpdGlvbjtcbiAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgICBjb2xvcjokYmx1ZTsgXG4gICAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMDYpIHJvdGF0ZSg5MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5d29yZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLnNlYXJjaC1rZXl3b3JkcyB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgID4gZGl2IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLWdhcDokZ2FwMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgZ3JpZC1yb3c6IDE7IFxuICAgICAgd2lkdGg6Zml0LWNvbnRlbnQ7IFxuICAgIH1cbiAgICAuYnV0dG9uLm91dGxpbmUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICAtLWZvbnQtY29sb3VyOiAjeyRncmV5fTtcbiAgICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7dmFyKC0tYm9yZGVyLWNvbG91cnMsICN7JGdyZXk0fSl9O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHJlZH07XG4gICAgICAgICAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiAjeyRyZWR9O1xuICAgICAgICAgIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICAvLyBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgLS1mb250LWNvbG91cjogI3skd2hpdGV9ICFpbXBvcnRhbnQ7XG4gICAgICAgIC0tYm9yZGVyLWNvbG91cjogI3skcmVkfSAhaW1wb3J0YW50O1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRyZWR9ICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCcuYWN0aXZlJykge1xuICAgICAgICAgIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHdoaXRlfSAhaW1wb3J0YW50O1xuICAgICAgICAgIC0taG92ZXItYm9yZGVyLWNvbG91cjogI3skcmVkfSAhaW1wb3J0YW50O1xuICAgICAgICAgIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICN7JHJlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1pbihtYXgpIHtcbiAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlICsgI3skZ3V0dGVyMn0pO1xuICAgICAgbGVmdDokZ3V0dGVyLTtcbiAgICAgID4gZGl2IHsgXG4gICAgICAgIHBhZGRpbmctbGVmdDokZ3V0dGVyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiRndXR0ZXI7XG4gICAgICAgIC5idXR0b246bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6JGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3VsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuXG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXJnaW4tdG9wOiRndXR0ZXI7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuXG4gICAgPiAuaGVhZGluZyB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC5uby1yZXN1bHRzIHtcbiAgICAgIHBhZGRpbmc6JGd1dHRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gICAgICBtYXgtd2lkdGg6OTAwcHg7IFxuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICRncmV5NDtcbiAgICB9XG5cbiAgICAucmVzdWx0cyB7XG4gICAgICBkaXNwbGF5OmdyaWQ7XG4gICAgICBncmlkLWdhcDokZ3V0dGVyMDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM1MHB4LCAxZnIpKTtcbiAgICAgIEBhdC1yb290IHNlYXJjaC1lbGVtZW50Lmxpc3Qtc3R5bGUtcm93cyAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHRzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIC5yZXN1bHQgYSB7IFxuICAgICAgICAgIHBhZGRpbmcgOiAkZ3V0dGVyMDsgXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC5yZXN1bHQge1xuICAgICAgZGlzcGxheTpibG9jazsgXG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTpmbGV4OyBcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBib3JkZXItcmFkaXVzOjZweDsgXG4gICAgICAgIGhlaWdodDoxMDAlOyBcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAgICAgcGFkZGluZzokZ3V0dGVyOyBcbiAgICAgICAgdHJhbnNpdGlvbjpib3JkZXIgJHRyYW5zaXRpb24sIG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dC1iYWNrO1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDogI3skcmVkfSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICBib3JkZXItY29sb3IgOiAjeyRibHVlMn0gIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgICAgICB9XG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgLy8gYm9yZGVyLWNvbG9yIDogI3skZ3JleX07XG4gICAgICAgICAgZGl2IHsgY29sb3I6JGJsdWUyOyB9XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgLy8gYmFja2dyb3VuZDogcmVkO1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDE2KTtcbiAgICAgICAgfVxuICAgICAgICBkaXYge1xuICAgICAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgICB9XG4gICAgICAgIEBhdC1yb290IHNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1oaWdobGlnaHRzKSAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgbWFyayB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFyay1yZXNldCgpO1xuICAgICAgICB9XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgaGVpZ2h0OjEwMHB4OyBcbiAgICAgICAgICAvLyB3aWR0aDogMTAwJTsgXG4gICAgICAgICAgb3JkZXI6LTE7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czpjYWxjKCN7JGJvcmRlci1yYWRpdXN9IC0gMXB4KTtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpjYWxjKCN7JGJvcmRlci1yYWRpdXN9IC0gMXB4KTtcbiAgICAgICAgICBtYXJnaW46JGd1dHRlci0gJGd1dHRlci0gJGd1dHRlciAkZ3V0dGVyLTsgXG4gICAgICAgIH1cbiAgICAgICAgJltkYXRhLXR5cGVdIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OmF0dHIoZGF0YS10eXBlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6NHB4IDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6JGdyZXkzO1xuICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7ICBcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTApO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDokZ2FwMDsgXG4gICAgICAgICAgICBib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0tdGFnLWNvbG91ciwgJGdyZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmW2RhdGEtdHlwZT1cIk1ldGFsIEdsb3NzYXJ5XCJdOjphZnRlciB7IC0tdGFnLWNvbG91ciA6ICN7JGJsdWV9OyB9XG4gICAgICAgICZbZGF0YS10eXBlPVwiRGF0YXNoZWV0XCJdOjphZnRlciB7IC0tdGFnLWNvbG91ciA6ICN7JHJlZH07IH1cbiAgICAgICAgJltkYXRhLXR5cGU9XCJOZXdzXCJdOjphZnRlciB7IC0tdGFnLWNvbG91ciA6ICN7JGdyZWVufTsgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICAvLyBVSSBCdXR0b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAuYnV0dG9uIHtcblxuICAgICYuc2VhcmNoLWhpZ2hsaWdodC10b2dnbGUge1xuICAgICAgLS1wYWRkaW5nOjZweCAhaW1wb3J0YW50O1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3t3aGl0ZX07XG4gICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JGNvbG91ci1tYXJrfTtcbiAgICAgIC0tZm9udC1jb2xvdXI6I3skY29sb3VyLW1hcmt9O1xuICAgICAgc3ZnIHsgbWFyZ2luOjAgIWltcG9ydGFudDsgd2lkdGg6MS40NGVtOyB9XG4gICAgfVxuXG4gICAgJi5zZWFyY2gtY2F0ZWdvcmllcy10b2dnbGUsICYuc2VhcmNoLWNsZWFyLWZpbHRlcnMge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYuc2VhcmNoLWNsZWFyLWZpbHRlcnMge1xuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAtLXN0cm9rZTojeyRyZWR9O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHtcbiAgICAgIC0tcGFkZGluZzo2cHggIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgIHN2ZyB7IFxuICAgICAgICBtYXJnaW46MCAhaW1wb3J0YW50OyBcbiAgICAgICAgb3BhY2l0eTowO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICArIHN2ZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTt9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5zaG93LWhpZ2hsaWdodHMgLmJ1dHRvbi5zZWFyY2gtaGlnaGxpZ2h0LXRvZ2dsZSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyLW1hcmt9OyBcbiAgICAtLWZvbnQtY29sb3VyOiN7d2hpdGV9O1xuICB9XG4gICY6bm90KC5zaG93aW5nLWhpZ2hsaWdodC1tYXJrZXJzKSAuYnV0dG9uLnNlYXJjaC1oaWdobGlnaHQtdG9nZ2xlIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cbiAgJjpub3QoLmZpbHRlcnMtYWN0aXZlKSAuYnV0dG9uLnNlYXJjaC1jbGVhci1maWx0ZXJzIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cbiAgJi5saXN0LXN0eWxlLXJvd3MgLmJ1dHRvbi5zZWFyY2gtbGlzdC1zdHlsZS10b2dnbGUge1xuICAgIHN2Zy5saXN0LWdyaWQgeyBvcGFjaXR5OjE7IH1cbiAgfVxuICAmLmxpc3Qtc3R5bGUtZ3JpZCAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSB7XG4gICAgc3ZnLmxpc3Qtcm93cyB7IG9wYWNpdHk6MTsgfVxuICB9XG5cbiAgLy8gQ2F0ZWdvcmllcyBGaWx0ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLnNlYXJjaC1jYXRlZ29yaWVzIHtcblxuICAgIEBhdC1yb290IHNlYXJjaC1lbGVtZW50LnN0aWNreS1maWx0ZXIgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgICAgIHBvc2l0aW9uOnN0aWNreTtcbiAgICAgIHRvcDpjYWxjKHZhcigtLXNlYXJjaC11aS1oZWlnaHQpICsgI3skZ3V0dGVyfSk7XG4gICAgICBoZWlnaHQ6Y2FsYygxMDB2aCAtIHZhcigtLXNlYXJjaC11aS1oZWlnaHQpIC0gI3skZ3V0dGVyM30pO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAvLyAmOjpiZWZvcmUsICY6OmFmdGVyIHsgb3BhY2l0eTowOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGNvbnRlbnQ6aW5pdGlhbDsgfVxuICAgICAgLy8gJjo6YmVmb3JlIHtjb250ZW50OmluaXRpYWw7IH1cbiAgICAgIC8vICY6OmFmdGVyIHsgdG9wOi0xcHg7IH1cbiAgICAgIHN1bW1hcnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MzsgdG9wOjA7IH1cbiAgICB9XG5cbiAgICBAYXQtcm9vdCBzZWFyY2gtZWxlbWVudC5uby1yZXN1bHRzIHtcbiAgICAgIC5zZWFyY2gtY2F0ZWdvcmllcyB7IG9wYWNpdHk6MDsgfVxuICAgICAgLnNlYXJjaC1jb250cm9scyAuYnV0dG9uOm5vdCguc2VhcmNoLWNsZWFyLWZpbHRlcnMpIHsgZGlzcGxheTpub25lOyB9XG4gICAgICAuc2VhcmNoLWNvbnRyb2xzIC5zZWFyY2gtY2xlYXItZmlsdGVyczo6YmVmb3JlIHtcblxuICAgICAgICBjb250ZW50OlwiXCI7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlOyBcbiAgICAgICAgdG9wOjAlO1xuICAgICAgICBsZWZ0OjAlO1xuICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICBoZWlnaHQ6MTAwJTsgXG4gICAgICAgIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlcjoxcHggc29saWQgJHJlZDsgXG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1rZXlmcmFtZXMoZmxhc2gpIHtcbiAgICAgICAgICAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eTowLjg7IH1cbiAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEuMiwgMS44KTsgb3BhY2l0eTowOyB9XG4gICAgICAgIH1cblxuICAgICAgICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuXG4gICAgICB9XG4gICAgfVxuXG4gICAgLS1nYXAgOiA4cHg7XG4gICAgLS1oZWFkaW5nLWhlaWdodCA6IDQzcHg7IC8vIFRoaXMgaGFzIHRvIGJlIGZpeGVkIHRvIGFsbG93IGZvciB0aGUgZmFrZSBzdGlja3kgYmFycyB0byBmdW5jdGlvbiBjb3JyZWN0bHlcblxuICAgIG1hcmdpbi10b3A6JGd1dHRlcjtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIC8vIGdyaWQtZ2FwOiRnYXA7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAvLyBwYWRkaW5nOiRndXR0ZXIgMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6MCAwICRndXR0ZXIgMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6JGdyZXkzO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICY6OmFmdGVyLCAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDpcIlwiO1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIGdyaWQtcm93OjE7ICAgICBcbiAgICAgIGdyaWQtY29sdW1uOjEgLyAtMTtcbiAgICAgIG1hcmdpbi1sZWZ0Oi0xcHg7XG4gICAgICBtYXJnaW4tdG9wOi0xcHg7XG4gICAgICB3aWR0aDpjYWxjKDEwMCUgKyAycHgpO1xuICAgICAgaGVpZ2h0OnZhcigtLWhlYWRpbmctaGVpZ2h0KTtcblxuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICB0b3A6Y2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgICAgYmFja2dyb3VuZDppbmhlcml0O1xuICAgICAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAgIC8vIGJvcmRlci1ib3R0b206bm9uZTtcbiAgICAgIGJvcmRlci1ib3R0b206MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3VycywgI3skZ3JleTR9KTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IC00cHggd2hpdGU7XG4gICAgfVxuICAgICY6OmJlZm9yZSB7XG4gICAgICB0b3A6Y2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSAtIHZhcigtLWhlYWRpbmctaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgICAgbWFyZ2luLXRvcDpjYWxjKCgtMSAqIHZhcigtLWhlYWRpbmctaGVpZ2h0KSkgLSAxcHgpO1xuICAgICAgYmFja2dyb3VuZDp3aGl0ZTtcbiAgICAgIHotaW5kZXg6MjtcbiAgICB9XG5cbiAgICBoNCB7IFxuICAgICAgZGlzcGxheTpub25lOyBcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206JGd1dHRlcjsgXG4gICAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIH1cblxuICAgIEBhdC1yb290IHNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgICAgbWFyZ2luLXRvcDpjYWxjKCN7JHNwYWNlcn0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIGg0IHsgZGlzcGxheTpibG9jazsgfVxuICAgICAgZGV0YWlscyB7IGJvcmRlci1ib3R0b206aW5pdGlhbCAhaW1wb3J0YW50OyB9XG4gICAgICBzdW1tYXJ5IHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHN2ZyB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9fVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1pbihtZWRpdW0pIHtcbiAgICAgIG1hcmdpbi10b3A6Y2FsYygjeyRzcGFjZXJ9ICsgI3skZ3V0dGVyfSk7XG4gICAgICBoNCB7IGRpc3BsYXk6YmxvY2s7IH1cbiAgICAgIGRldGFpbHMgeyBib3JkZXItYm90dG9tOmluaXRpYWwgIWltcG9ydGFudDsgfVxuICAgICAgc3VtbWFyeSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyBzdmcgeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfX1cbiAgICB9XG5cbiAgICBkZXRhaWxzIHtcbiAgICAgICY6bm90KFtoaWRkZW5dKSAuY29udGVudCB7IGRpc3BsYXk6ZmxleDsgfVxuICAgICAgJjpub3QoW29wZW5dKSBzdW1tYXJ5IHsgXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiRnYXAwOyBcbiAgICAgICAgc3ZnLnBsdXMgeyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICAgIHN2Zy5taW51cyB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgfVxuICAgICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBib3JkZXItYm90dG9tOjFweCBkYXNoZWQgJGdyZXk0OyB9XG4gICAgICBcbiAgICAgIHN1bW1hcnkge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWg0O1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IFxuICAgICAgICBwb3NpdGlvbjpzdGlja3k7IFxuICAgICAgICB0b3A6Y2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSArICN7JGd1dHRlcn0pOyBcbiAgICAgICAgLy8gYmFja2dyb3VuZDokZ3JleTM7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHotaW5kZXg6MTtcbiAgICAgICAgY29sb3I6JGJsdWU7IFxuICAgICAgICBoZWlnaHQ6dmFyKC0taGVhZGluZy1oZWlnaHQpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAvLyBib3JkZXI6MXB4IGRhc2hlZCByZWQ7XG4gICAgICAgIHBhZGRpbmc6JGdhcCAkZ3V0dGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB3aWR0aDoxMHB4OyBcbiAgICAgICAgICBoZWlnaHQ6MTBweDtcbiAgICAgICAgICBzdHJva2U6JGdyZXk7IFxuICAgICAgICAgIHN0cm9rZS13aWR0aDoxLjZlbTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UgJHRyYW5zaXRpb247XG4gICAgICAgICAgJi5wbHVzIHsgZGlzcGxheTpub25lOyB9XG4gICAgICAgICAgJi5taW51cyB7IGRpc3BsYXk6YmxvY2s7IH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgICAgICAgY29sb3I6JHJlZDsgXG4gICAgICAgICAgc3ZnIHsgXG4gICAgICAgICAgICBzdHJva2U6JHJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tbGVmdDpjYWxjKC0xICogKCN7JGdhcDB9IC8gMikpO1xuICAgICAgICBtYXJnaW4tdG9wOmNhbGMoLTEgKiAoI3skZ2FwMH0gLyAyKSk7XG4gICAgICAgIHBhZGRpbmc6MCAkZ3V0dGVyICRnYXAyICRndXR0ZXI7XG4gICAgICB9XG5cblxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIC8vICYuY2hpbGQgaW5wdXQgfiBsYWJlbCB7IGJhY2tncm91bmQtY29sb3I6JGdyZWVuICFpbXBvcnRhbnQ7fVxuICAgICAgICBtYXJnaW46Y2FsYygjeyRnYXAwfSAvIDIpO1xuICAgICAgICAmW2RhdGEtY291bnQ9XCIwXCJdIHsgXG4gICAgICAgICAgZGlzcGxheTpub25lOyBcbiAgICAgICAgfVxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICB+IGxhYmVsIHtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6JGdhcDAgJGdhcDtcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBwYWRkaW5nOiRnYXAwICRnYXA7XG4gICAgICAgICAgICBtaW4td2lkdGg6OWNoO1xuICAgICAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxMyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDsgICBcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjokcmVkOyBcbiAgICAgICAgICAgIH0gICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRyZWQ7XG4gICAgICAgICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICAgICAgICBib3JkZXItY29sb3I6JHJlZDtcbiAgICAgICAgICAgIHNwYW4uY291bnQge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHdoaXRlLCAwLjMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4uY291bnQge1xuICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7XG4gICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NXB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjVweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gICAgICAgICAgcGFkZGluZzokZ2FwMDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6JGdhcC07XG4gICAgICAgICAgbWFyZ2luLXRvcDokZ2FwLTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiRnYXAtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiRnYXA7XG4gICAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgICAgbWluLXdpZHRoOjNjaDtcbiAgICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1pbihtZWRpdW0pIHsgXG4gICAgLmJ1dHRvbi5zZWFyY2gtbGlzdC1zdHlsZS10b2dnbGUge1xuICAgICAgZGlzcGxheTpub25lOyBcbiAgICB9XG4gICAgJi5saXN0LXN0eWxlLXJvd3MgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0cyAgLnJlc3VsdCBhIHsgXG4gICAgICBwYWRkaW5nIDogJGd1dHRlcjsgXG4gICAgfVxuICAgIC5zZWFyY2gta2V5d29yZHMgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAudWkgLnNlYXJjaC1jb250cm9scyB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBib3R0b206MDsgXG4gICAgICBsZWZ0OjA7IFxuICAgICAgcGFkZGluZzokZ2FwMCAkZ3V0dGVyICRnYXAgJGd1dHRlciAhaW1wb3J0YW50OyBcbiAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXJzLCAjeyRncmV5NH0pO1xuICAgICAgbWFyZ2luOjA7IFxuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBAYXQtcm9vdCA6cm9vdFtkYXRhLWJyb3dzZXIqPVwiY2hyb21lXCJdW2RhdGEtZGV2aWNlKj1cInBob25lXCJdICYge1xuICAgICAgICBwYWRkaW5nOiRnYXAwICRndXR0ZXIgY2FsYygjeyRnYXB9ICsgNHB4KSAkZ3V0dGVyICFpbXBvcnRhbnQ7IFxuICAgICAgfVxuICAgIH1cbiAgICAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICAgICAgcGFkZGluZy10b3A6JGd1dHRlciAhaW1wb3J0YW50O1xuICAgICAgZGV0YWlscyBzdW1tYXJ5IHsgdG9wOnZhcigtLXNlYXJjaC11aS1oZWlnaHQpOyBiYWNrZ3JvdW5kOiRncmV5MzsgfVxuICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGNvbnRlbnQ6aW5pdGlhbDsgfVxuICAgIH1cbiAgfVxuXG5cbiAgJi5ncmV5IHtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skZ3JleTN9O1xuICAgIC0tYm9yZGVyLWNvbG91cnMgOiAjeyRncmV5M307XG4gICAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0O1xuICAgIC51aSB7XG4gICAgICAmOm5vdCguc3R1Y2spIHsgcGFkZGluZy10b3A6JHNwYWNlcjA7IHBhZGRpbmctYm90dG9tOiRzcGFjZXIwOyB9XG4gICAgICAmOjpiZWZvcmUgeyBcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjokZ3JleTQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIsIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgICBtYXJnaW4tdG9wOiRzcGFjZXIwO1xuICAgIH1cbiAgICAucmVzdWx0cyAucmVzdWx0IGEsIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbiAgXG4gICYubG9hZGluZyB7XG4gICAgLnJlc3VsdCBhOm5vdCgubG9hZGluZykge1xuICAgICAgLy8gb3BhY2l0eTogMC4xO1xuICAgICAgLy8gcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAvLyB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgIH1cbiAgfVxuXG5cbn0iLCJzZWFyY2gtZWxlbWVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCB2YXIoLS1zcGFjZXIxKSAwO1xuICBib3gtc2hhZG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG5zZWFyY2gtZWxlbWVudC5sb2FkaW5nIC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuc2VhcmNoLWVsZW1lbnQubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciB7XG4gIGdyaWQtZ2FwOiAwIHZhcigtLWd1dHRlcjEpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnVpIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIxLSk7XG4gIGdyaWQtZ2FwOiAwO1xuICB6LWluZGV4OiAzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgd2hpdGUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgcGFkZGluZyB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC51aTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIGJvcmRlci1ib3R0b206IGluaGVyaXQ7XG4gIGhlaWdodDogY2FsYygxMDAlICsgMXB4KTtcbiAgd2lkdGg6IDEwMCU7XG59XG5zZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC10eXBlcywgc2VhcmNoLWVsZW1lbnQgLnVpIC5zZWFyY2gtaW5wdXQsIHNlYXJjaC1lbGVtZW50IC51aSAuc2VhcmNoLWtleXdvcmRzIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5zZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1rZXl3b3JkcyAuYnV0dG9uLCBzZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1jb250cm9scyAuYnV0dG9uIHtcbiAgLS1ib3JkZXItcmFkaXVzOjZweDtcbn1cbnNlYXJjaC1lbGVtZW50IC51aSAuc2VhcmNoLWtleXdvcmRzIHtcbiAgZ3JpZC1yb3c6IDM7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbnNlYXJjaC1lbGVtZW50IC51aSAuc2VhcmNoLWNvbnRyb2xzIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbnNlYXJjaC1lbGVtZW50IC51aS5zdHVjayB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXJzLCAjZGNkY2RjKTtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSA+IC5sZWZ0IHtcbiAgZ3JpZC1jb2x1bW46IDEvLTEgIWltcG9ydGFudDtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSA+IC5yaWdodCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xICFpbXBvcnRhbnQ7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNjAwcHgsIDFmcikpO1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtdHlwZXMgYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLXJvdzogMTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzEzMWY2YjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtdHlwZXMgYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIGJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6ICNERjMwMzU7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC10eXBlcyBidXR0b246aG92ZXI6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjUpO1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIGJ1dHRvbi5jdXJyZW50IHtcbiAgY29sb3I6ICMxMzFmNmI7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXR5cGVzIGJ1dHRvbi5jdXJyZW50OjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCB7XG4gIC0tc2VhcmNoLWlucHV0LXBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICAtLXNlYXJjaC1pY29uLXNpemU6IDI2cHg7XG4gIC0tc2VhcmNoLWlucHV0LXBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAyICsgdmFyKC0tc2VhcmNoLWljb24tc2l6ZSkpO1xuICAtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLXJpZ2h0OiB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZy1sZWZ0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgLS1mb250LWNvbG91cjogIzZBNkE2QTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgcGFkZGluZzogdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmcpIHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nLXJpZ2h0KSB2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgdmFyKC0tc2VhcmNoLWlucHV0LXBhZGRpbmctbGVmdCk7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI2RjZGNkYyk7XG4gIHRyYW5zaXRpb246IHBhZGRpbmcgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgaW5wdXRbdHlwZT1zZWFyY2hdLmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCBpbnB1dFt0eXBlPXNlYXJjaF1bdmFsdWU9XCJcIl0gfiBzdmcuc2VhcmNoIHtcbiAgY29sb3I6ICM5Njk2OTU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IGlucHV0W3R5cGU9c2VhcmNoXVt2YWx1ZT1cIlwiXSB+IGJ1dHRvbi5jbG9zZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC44KSByb3RhdGUoMGRlZyk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWlucHV0IHN2Zy5zZWFyY2gge1xuICB3aWR0aDogdmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGNvbG9yOiAjREYzMDM1O1xuICBsZWZ0OiBjYWxjKHZhcigtLXNlYXJjaC1pbnB1dC1wYWRkaW5nKSAqIDEpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBsZWZ0IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1pbnB1dCBidXR0b24uY2xvc2Uge1xuICB3aWR0aDogdmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2VhcmNoLWljb24tc2l6ZSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGNvbG9yOiAjREYzMDM1O1xuICByaWdodDogY2FsYyh2YXIoLS1zZWFyY2gtaW5wdXQtcGFkZGluZykgKiAxKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjY4LCAtMC41NSwgMC4yNjUsIDEuNTUpLCByaWdodCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtaW5wdXQgYnV0dG9uLmNsb3NlOmhvdmVyIHtcbiAgICBjb2xvcjogIzEzMWY2YjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMS4wNikgcm90YXRlKDkwZGVnKTtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgPiBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgLmJ1dHRvbiB7XG4gIGdyaWQtcm93OiAxO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgLmJ1dHRvbi5vdXRsaW5lOm5vdCg6aG92ZXIpIHtcbiAgICAtLWZvbnQtY29sb3VyOiAjOTY5Njk1O1xuICAgIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyIHtcbiAgICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjREYzMDM1O1xuICAgIC0taG92ZXItYm9yZGVyLWNvbG91cjogI0RGMzAzNTtcbiAgICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZS5hY3RpdmUge1xuICAtLWZvbnQtY29sb3VyOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIC0tYm9yZGVyLWNvbG91cjogI0RGMzAzNSAhaW1wb3J0YW50O1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjREYzMDM1ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzIC5idXR0b24ub3V0bGluZS5hY3RpdmU6aG92ZXIge1xuICAgIC0taG92ZXItZm9udC1jb2xvdXI6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6ICNERjMwMzUgIWltcG9ydGFudDtcbiAgICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjREYzMDM1ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgLmJ1dHRvbi5vdXRsaW5lLmFjdGl2ZS5hY3RpdmUge1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogI0RGMzAzNSAhaW1wb3J0YW50O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjREYzMDM1ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTY4MHB4KSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMge1xuICAgIG1pbi13aWR0aDogY2FsYygxMDAlICsgdmFyKC0tZ3V0dGVyMikpO1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWtleXdvcmRzID4gZGl2IHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gta2V5d29yZHMgPiBkaXYgLmJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyID4gLmhlYWRpbmcge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAubm8tcmVzdWx0cyB7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXgtd2lkdGg6IDkwMHB4O1xuICBib3JkZXI6IDFweCBkYXNoZWQgI2RjZGNkYztcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM1MHB4LCAxZnIpKTtcbn1cbnNlYXJjaC1lbGVtZW50Lmxpc3Qtc3R5bGUtcm93cyAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHRzIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG59XG5zZWFyY2gtZWxlbWVudC5saXN0LXN0eWxlLXJvd3MgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0cyAucmVzdWx0IGEge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIwKTtcbn1cblxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXJzLCAjZGNkY2RjKTtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIHRyYW5zaXRpb246IGJvcmRlciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNjgsIC0wLjU1LCAwLjI2NSwgMS41NSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjREYzMDM1ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBhOmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogIzI5MkI2OCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGE6dmlzaXRlZCBkaXYge1xuICBjb2xvcjogIzI5MkI2ODtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBhIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYSBkaXYge1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctaGlnaGxpZ2h0cykgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbn1cblxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1yZXN1bHRzLWNvbnRhaW5lciAucmVzdWx0IGEgLmltYWdlIHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgb3JkZXI6IC0xO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgLSAxcHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIC0gMXB4KTtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxLSkgdmFyKC0tZ3V0dGVyMS0pIHZhcigtLWd1dHRlcjEpIHZhcigtLWd1dHRlcjEtKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIgLnJlc3VsdCBhW2RhdGEtdHlwZV06OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLXR5cGUpO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBmb250LXNpemU6IDAuNjI1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdGFnLWNvbG91ciwgIzk2OTY5NSk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYVtkYXRhLXR5cGU9XCJNZXRhbCBHbG9zc2FyeVwiXTo6YWZ0ZXIge1xuICAtLXRhZy1jb2xvdXI6ICMxMzFmNmI7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYVtkYXRhLXR5cGU9RGF0YXNoZWV0XTo6YWZ0ZXIge1xuICAtLXRhZy1jb2xvdXI6ICNERjMwMzU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHQgYVtkYXRhLXR5cGU9TmV3c106OmFmdGVyIHtcbiAgLS10YWctY29sb3VyOiAjNTBCQzA4O1xufVxuc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtaGlnaGxpZ2h0LXRvZ2dsZSB7XG4gIC0tcGFkZGluZzo2cHggIWltcG9ydGFudDtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0tYm9yZGVyLWNvbG91cjogIzAwOTVGRjtcbiAgLS1mb250LWNvbG91cjojMDA5NUZGO1xufVxuc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtaGlnaGxpZ2h0LXRvZ2dsZSBzdmcge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEuNDRlbTtcbn1cbnNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWNhdGVnb3JpZXMtdG9nZ2xlLCBzZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1jbGVhci1maWx0ZXJzIHtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBzZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1jbGVhci1maWx0ZXJzOmhvdmVyIHtcbiAgICAtLXN0cm9rZTojREYzMDM1O1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuYnV0dG9uLnNlYXJjaC1saXN0LXN0eWxlLXRvZ2dsZSB7XG4gIC0tcGFkZGluZzo2cHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbn1cbnNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHN2ZyB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLmJ1dHRvbi5zZWFyY2gtbGlzdC1zdHlsZS10b2dnbGUgc3ZnICsgc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuc2VhcmNoLWVsZW1lbnQuc2hvdy1oaWdobGlnaHRzIC5idXR0b24uc2VhcmNoLWhpZ2hsaWdodC10b2dnbGUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjMDA5NUZGO1xuICAtLWZvbnQtY29sb3VyOndoaXRlO1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93aW5nLWhpZ2hsaWdodC1tYXJrZXJzKSAuYnV0dG9uLnNlYXJjaC1oaWdobGlnaHQtdG9nZ2xlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguZmlsdGVycy1hY3RpdmUpIC5idXR0b24uc2VhcmNoLWNsZWFyLWZpbHRlcnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuc2VhcmNoLWVsZW1lbnQubGlzdC1zdHlsZS1yb3dzIC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHN2Zy5saXN0LWdyaWQge1xuICBvcGFjaXR5OiAxO1xufVxuc2VhcmNoLWVsZW1lbnQubGlzdC1zdHlsZS1ncmlkIC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHN2Zy5saXN0LXJvd3Mge1xuICBvcGFjaXR5OiAxO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgLS1nYXA6IDhweDtcbiAgLS1oZWFkaW5nLWhlaWdodDogNDNweDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICBwYWRkaW5nOiAwIDAgdmFyKC0tZ3V0dGVyMSkgMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuc2VhcmNoLWVsZW1lbnQuc3RpY2t5LWZpbHRlciAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IGNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLXNlYXJjaC11aS1oZWlnaHQpIC0gdmFyKC0tZ3V0dGVyMykpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuc2VhcmNoLWVsZW1lbnQuc3RpY2t5LWZpbHRlciAuc2VhcmNoLWNhdGVnb3JpZXM6OmJlZm9yZSwgc2VhcmNoLWVsZW1lbnQuc3RpY2t5LWZpbHRlciAuc2VhcmNoLWNhdGVnb3JpZXM6OmFmdGVyIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbnNlYXJjaC1lbGVtZW50LnN0aWNreS1maWx0ZXIgLnNlYXJjaC1jYXRlZ29yaWVzIHN1bW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICB0b3A6IDA7XG59XG5cbnNlYXJjaC1lbGVtZW50Lm5vLXJlc3VsdHMgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgb3BhY2l0eTogMDtcbn1cbnNlYXJjaC1lbGVtZW50Lm5vLXJlc3VsdHMgLnNlYXJjaC1jb250cm9scyAuYnV0dG9uOm5vdCguc2VhcmNoLWNsZWFyLWZpbHRlcnMpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50Lm5vLXJlc3VsdHMgLnNlYXJjaC1jb250cm9scyAuc2VhcmNoLWNsZWFyLWZpbHRlcnM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNERjMwMzU7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yLCAxLjgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzOjphZnRlciwgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBncmlkLXJvdzogMTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTtcbiAgaGVpZ2h0OiB2YXIoLS1oZWFkaW5nLWhlaWdodCk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXM6OmFmdGVyIHtcbiAgdG9wOiBjYWxjKHZhcigtLXNlYXJjaC11aS1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI2RjZGNkYyk7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cnMsICNkY2RjZGMpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm94LXNoYWRvdzogMHB4IC00cHggd2hpdGU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXM6OmJlZm9yZSB7XG4gIHRvcDogY2FsYyh2YXIoLS1zZWFyY2gtdWktaGVpZ2h0KSAtIHZhcigtLWhlYWRpbmctaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWhlYWRpbmctaGVpZ2h0KSAtIDFweCk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB6LWluZGV4OiAyO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGg0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbnNlYXJjaC1lbGVtZW50Om5vdCguc2hvdy1maWx0ZXJzKSAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNlcjEpICsgdmFyKC0tZ3V0dGVyMSkpO1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyBoNCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHtcbiAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuc2VhcmNoLWVsZW1lbnQ6bm90KC5zaG93LWZpbHRlcnMpIC5zZWFyY2gtY2F0ZWdvcmllcyBzdW1tYXJ5IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudDpub3QoLnNob3ctZmlsdGVycykgLnNlYXJjaC1jYXRlZ29yaWVzIHN1bW1hcnkgc3ZnIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjZXIxKSArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgaDQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHtcbiAgICBib3JkZXItYm90dG9tOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIHN1bW1hcnkge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBzdW1tYXJ5IHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlsczpub3QoW2hpZGRlbl0pIC5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzOm5vdChbb3Blbl0pIHN1bW1hcnkge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzOm5vdChbb3Blbl0pIHN1bW1hcnkgc3ZnLnBsdXMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzOm5vdChbb3Blbl0pIHN1bW1hcnkgc3ZnLm1pbnVzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgI2RjZGNkYztcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHN1bW1hcnkge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IGNhbGModmFyKC0tc2VhcmNoLXVpLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBoZWlnaHQ6IHZhcigtLWhlYWRpbmctaGVpZ2h0KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1ndXR0ZXIxKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBzdW1tYXJ5IHN2ZyB7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIHN0cm9rZTogIzk2OTY5NTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjZlbTtcbiAgdHJhbnNpdGlvbjogc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgc3VtbWFyeSBzdmcucGx1cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBzdW1tYXJ5IHN2Zy5taW51cyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgc3VtbWFyeTpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjREYzMDM1O1xuICB9XG4gIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIHN1bW1hcnk6aG92ZXIgc3ZnIHtcbiAgICBzdHJva2U6ICNERjMwMzU7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIC5jb250ZW50IHtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogKGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgLyAyKSk7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTEgKiAoY2FsYyh2YXIoLS1nYXApICogMC41KSAvIDIpKTtcbiAgcGFkZGluZzogMCB2YXIoLS1ndXR0ZXIxKSBjYWxjKHZhcigtLWdhcCkgKiAyKSB2YXIoLS1ndXR0ZXIxKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiBjYWxjKGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgLyAyKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpW2RhdGEtY291bnQ9XCIwXCJdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIGlucHV0W3R5cGU9Y2hlY2tib3hdIH4gbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgbWluLXdpZHRoOiA5Y2g7XG4gIGZvbnQtc2l6ZTogMC44MTI1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgbGkgaW5wdXRbdHlwZT1jaGVja2JveF0gfiBsYWJlbDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1jb2xvcjogI0RGMzAzNTtcbiAgfVxufVxuc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIGRldGFpbHMgbGkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCB+IGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGMzAzNTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6ICNERjMwMzU7XG59XG5zZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBsaSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkIH4gbGFiZWwgc3Bhbi5jb3VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbnNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllcyBkZXRhaWxzIGxpIHNwYW4uY291bnQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi13aWR0aDogM2NoO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIHNlYXJjaC1lbGVtZW50IC5idXR0b24uc2VhcmNoLWxpc3Qtc3R5bGUtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHNlYXJjaC1lbGVtZW50Lmxpc3Qtc3R5bGUtcm93cyAuc2VhcmNoLXJlc3VsdHMtY29udGFpbmVyIC5yZXN1bHRzIC5yZXN1bHQgYSB7XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1rZXl3b3JkcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1jb250cm9scyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ2FwKSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VycywgI2RjZGNkYyk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICA6cm9vdFtkYXRhLWJyb3dzZXIqPWNocm9tZV1bZGF0YS1kZXZpY2UqPXBob25lXSBzZWFyY2gtZWxlbWVudCAudWkgLnNlYXJjaC1jb250cm9scyB7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1ndXR0ZXIxKSBjYWxjKHZhcigtLWdhcCkgKyA0cHgpIHZhcigtLWd1dHRlcjEpICFpbXBvcnRhbnQ7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgfVxuICBzZWFyY2gtZWxlbWVudCAuc2VhcmNoLWNhdGVnb3JpZXMgZGV0YWlscyBzdW1tYXJ5IHtcbiAgICB0b3A6IHZhcigtLXNlYXJjaC11aS1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG4gIH1cbiAgc2VhcmNoLWVsZW1lbnQgLnNlYXJjaC1jYXRlZ29yaWVzOjpiZWZvcmUsIHNlYXJjaC1lbGVtZW50IC5zZWFyY2gtY2F0ZWdvcmllczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGluaXRpYWw7XG4gIH1cbn1cbnNlYXJjaC1lbGVtZW50LmdyZXkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRjRGNEY0O1xuICAtLWJvcmRlci1jb2xvdXJzOiAjRjRGNEY0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xufVxuc2VhcmNoLWVsZW1lbnQuZ3JleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG59XG5zZWFyY2gtZWxlbWVudC5ncmV5IC51aTpub3QoLnN0dWNrKSB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIwKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjApO1xufVxuc2VhcmNoLWVsZW1lbnQuZ3JleSAudWk6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkY2RjZGM7XG59XG5zZWFyY2gtZWxlbWVudC5ncmV5IC5zZWFyY2gtcmVzdWx0cy1jb250YWluZXIsIHNlYXJjaC1lbGVtZW50LmdyZXkgLnNlYXJjaC1jYXRlZ29yaWVzIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG5zZWFyY2gtZWxlbWVudC5ncmV5IC5yZXN1bHRzIC5yZXN1bHQgYSwgc2VhcmNoLWVsZW1lbnQuZ3JleSAuc2VhcmNoLWNhdGVnb3JpZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZXYgdmFsdWVzIGRlZmluZWQgYmVsb3cuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZSBWYWx1ZXMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuXG4vLyBUaGVzZSB0aHJlZSB2YWx1ZXMgd2lsbCBhY3QgYSBjb25zdGFudCBiYXNlbGluZSBmb3IgYWxsIGZvbGxvd2luZyB1bml0IGRlbGNhcmF0aW9ucy5cblxuLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbi8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuJGdhcCA6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1nYXAgOiAkZ2FwO1xuXG4vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiRzcGFjZXIgOiA0dmggIWRlZmF1bHQ7IFxuJGJhc2Utc3BhY2VyIDogJHNwYWNlcjsgXG5cbi8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbi8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiRndXR0ZXIgOiAzdncgIWRlZmF1bHQ7XG4kYmFzZS1ndXR0ZXIgOiAkZ3V0dGVyOyBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFzYm9sdXRlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG5cbkBmdW5jdGlvbiBnYXAoJGFtb3VudCA6IDEpIHtcbiAgQGlmICggJGFtb3VudCA9PSAxICkgeyBcbiAgICBAcmV0dXJuIHZhcigtLWdhcCk7IFxuICB9IEBlbHNlIHsgXG4gICAgQHJldHVybiBjYWxjKHZhcigtLWdhcCkgKiAjeyRhbW91bnR9KTsgXG4gIH1cbn1cblxuJGdhcDAgOiBnYXAoMC41KTsgJGdhcDAtIDogZ2FwKC0wLjUpO1xuJGdhcCAgOiBnYXAoMSk7ICAgJGdhcC0gIDogZ2FwKC0xKTtcbiRnYXAyIDogZ2FwKDIpOyAgICRnYXAyLSA6IGdhcCgtMik7XG4kZ2FwMyA6IGdhcCgzKTsgICAkZ2FwMy0gOiBnYXAoLTMpO1xuJGdhcDQgOiBnYXAoNCk7ICAgJGdhcDQtIDogZ2FwKC00KTtcbiRnYXA1IDogZ2FwKDUpOyAgICRnYXA1LSA6IGdhcCgtNSk7XG4kZ2FwNiA6IGdhcCg2KTsgICAkZ2FwNi0gOiBnYXAoLTYpO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVsYXRpdmUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gX2R5bmFtaWMtdW5pdCgkY3VzdG9tLXByb3BlcnR5LCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG5cbiAgLy8gQ2FsYyBNZXRob2RcbiAgJHJlc3VsdCA6IGNhbGMoKCN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9KSArICN7aWYoJG1pbiA9PSAwLCAwcHgsICRtaW4pfSk7XG4gIFxuICAvLyBDbGFtcCBNZXRob2RcbiAgQGlmICggJHVzZS1jbGFtcCApIHtcbiAgICBAaWYgKCAkYW1vdW50ID09IDAgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3ttYXRoLmRpdigkbWluLCAyKX0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAwLjUsICN7JG1heH0pO1xuICAgIH0gQGVsc2UgaWYgKCAkYW1vdW50ID09IDEgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0sICN7JG1heH0pO1xuICAgIH1cbiAgfSBcblxuICBAaWYgKCAkdXNlLW5lZ2F0aXZlICkge1xuICAgICRyZXN1bHQgOiBjYWxjKC0xICogI3skcmVzdWx0fSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG5cbn0gXG5cbi8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIHNwYWNlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1zcGFjZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJHNwYWNlcjAgOiB2YXIoLS1zcGFjZXIwKTsgJHNwYWNlcjAtIDogdmFyKC0tc3BhY2VyMC0pO1xuJHNwYWNlciAgOiB2YXIoLS1zcGFjZXIxKTsgJHNwYWNlci0gIDogdmFyKC0tc3BhY2VyMS0pO1xuJHNwYWNlcjIgOiB2YXIoLS1zcGFjZXIyKTsgJHNwYWNlcjItIDogdmFyKC0tc3BhY2VyMi0pO1xuJHNwYWNlcjMgOiB2YXIoLS1zcGFjZXIzKTsgJHNwYWNlcjMtIDogdmFyKC0tc3BhY2VyMy0pO1xuJHNwYWNlcjQgOiB2YXIoLS1zcGFjZXI0KTsgJHNwYWNlcjQtIDogdmFyKC0tc3BhY2VyNC0pO1xuJHNwYWNlcjUgOiB2YXIoLS1zcGFjZXI1KTsgJHNwYWNlcjUtIDogdmFyKC0tc3BhY2VyNS0pO1xuJHNwYWNlcjYgOiB2YXIoLS1zcGFjZXI2KTsgJHNwYWNlcjYtIDogdmFyKC0tc3BhY2VyNi0pO1xuXG4vLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbi8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gZ3V0dGVyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLWd1dHRlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kZ3V0dGVyMCA6IHZhcigtLWd1dHRlcjApOyAkZ3V0dGVyMC0gOiB2YXIoLS1ndXR0ZXIwLSk7XG4kZ3V0dGVyICA6IHZhcigtLWd1dHRlcjEpOyAkZ3V0dGVyLSAgOiB2YXIoLS1ndXR0ZXIxLSk7XG4kZ3V0dGVyMiA6IHZhcigtLWd1dHRlcjIpOyAkZ3V0dGVyMi0gOiB2YXIoLS1ndXR0ZXIyLSk7XG4kZ3V0dGVyMyA6IHZhcigtLWd1dHRlcjMpOyAkZ3V0dGVyMy0gOiB2YXIoLS1ndXR0ZXIzLSk7XG4kZ3V0dGVyNCA6IHZhcigtLWd1dHRlcjQpOyAkZ3V0dGVyNC0gOiB2YXIoLS1ndXR0ZXI0LSk7XG4kZ3V0dGVyNSA6IHZhcigtLWd1dHRlcjUpOyAkZ3V0dGVyNS0gOiB2YXIoLS1ndXR0ZXI1LSk7XG4kZ3V0dGVyNiA6IHZhcigtLWd1dHRlcjYpOyAkZ3V0dGVyNi0gOiB2YXIoLS1ndXR0ZXI2LSk7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJhY2tncm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JhY2tncm91bmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIGJsb3dvdXQoJHBzdWRvIDogYmVmb3JlKSB7XG4gICY6I3skcHN1ZG99IHtcbiAgICBjb250ZW50OlwiXCI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBcblx0XHR6LWluZGV4Oi0xOyBcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi5ibG93b3V0OyBcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gUG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwb3NpdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnLi4vaGVscGVycy9icmVhayc7XG5cbkBtaXhpbiBleHBhbmRlZCB7XG5cdHBvc2l0aW9uOmFic29sdXRlOyBcblx0dG9wOjA7IFxuXHRsZWZ0OjA7IFxuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTsgXG59XG5cbkBtaXhpbiBjZW50cmUge1xuICBwb3NpdGlvbjphYnNvbHV0ZTsgXG5cdHRvcDo1MCU7IFxuXHRsZWZ0OjUwJTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXG59XG5cbkBtaXhpbiBibG93b3V0KCRob3Jpem9udGFsIDogdHJ1ZSwgJHZlcnRpY2FsIDogZmFsc2UpIHtcbiAgXG4gIHBvc2l0aW9uOmFic29sdXRlO1xuXG4gIEBpZiAkaG9yaXpvbnRhbCBhbmQgJHZlcnRpY2FsIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDUwJTsgXG4gICAgd2lkdGggICAgIDogMTAwdnc7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSwgdmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9IEBlbHNlIGlmICRob3Jpem9udGFsICB7XG4gICAgdG9wICAgICAgIDogMDsgXG4gICAgbGVmdCAgICAgIDogNTAlOyBcbiAgICB3aWR0aCAgICAgOiAxMDB2dztcbiAgICBoZWlnaHQgICAgOiAxMDAlOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpKTtcbiAgfSBAZWxzZSBpZiAkdmVydGljYWwgIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDA7IFxuICAgIHdpZHRoICAgICA6IDEwMCU7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkodmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS4gXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93IFxuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudCBcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuIFxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucywgXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd24gXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlIFxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLiBcbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LiBcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlICAgOiAjMTMxZjZiOyAvLyBQcmltYXJ5XG4kYmx1ZTIgIDogIzI5MkI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzICA6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQgIDogIzEwMTI0ZDsgLy8gRGFyayBHcmFkaWVudFxuJGJsdWU1ICA6ICMwMDk1RkY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciAgXG4vLyAkcmVkICAgIDogI0UwM0E0MDsgLy8gU2Vjb25kYXJ5XG4kcmVkICAgIDogI0RGMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2UgXG4kZ3JleSAgIDogIzk2OTY5NTtcbiRncmV5MiAgOiAjNkE2QTZBOyAvLyBGb250XG4kZ3JleTMgIDogI0Y0RjRGNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NCAgOiAjZGNkY2RjOyBcbiRncmV5NSAgOiAjQjFCMUIxOyAvLyBTcGFjZXJzIDxocj5cbiRncmV5NiAgOiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgIFxuJGdyZWVuICA6ICM1MEJDMDg7XG4kZ3JlZW4yIDogIzc2YmIyODsgLy8gRVNHIGdyZWVuXG4keWVsbG93IDogI0Y2RjREQjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MiA6ICNGQ0IwMDI7IFxuJGJsYWNrICA6ICMxRTFBMUE7XG5cbiRtYXJrIDogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJHByaW1hcnkgICA6IHZhcigtLXByaW1hcnksICAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5IDogdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcblxuLy8vIFBhbGV0dGUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBCeSBsb2FkaW5nIGNvbmZpZ3VyYXRpb25zIGludG8gdGhpcyAncGFsbGV0ZScgbW9kdWxlLCB3ZSB3aWxsIGJlIGFibGVcbi8vLyB0byBkZWNsYXJlIHZhcmlhbnRzIG9mIGEgZmV3IGNvbW1vbiBjb2xvdXJzLiBZb3UgY2FuIGFsc28gYWRqdXN0IHRoZSBsaWdodG5lc3Ncbi8vLyBvciBkYXJrbmVzcyBvZiBlYWNoIHZhcmlhbnQgYnkgcGFzc2luZyBpbiB0aGUgcmVsZXZhbnQgcHJpdmF0ZSBydWxlcy4gXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnIHdpdGggKFxuICAkYmx1ZSAgIDogJGJsdWUsXG4gICRyZWQgICAgOiAkcmVkLFxuICAkZ3JleSAgIDogJGdyZXksXG4gICR5ZWxsb3cgOiAkeWVsbG93LFxuICAkZ3JlZW4gIDogJGdyZWVuLFxuICAkYmxhY2sgIDogJGJsYWNrXG4pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuXG5AbWl4aW4gX2Jhc2Utc3R5bGluZyB7XG4gIFxuICAtLWZvbnQtY29sb3VyIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWJvcmRlci1yYWRpdXMgOiAjeyRib3JkZXItcmFkaXVzfTtcbiAgLS1ib3JkZXItY29sb3VyIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlciA6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nIDogI3skZ2FwfSAjeyRnYXB9O1xuXG4gIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6dmFyKC0tYm9yZGVyKTsgXG4gIHBhZGRpbmc6dmFyKC0tcGFkZGluZyk7IFxuICBmb250LXNpemU6Zm9udC5zaXplKDE0KTsgXG4gIGNvbG9yOnZhciggLS1mb250LWNvbG91cik7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB9XG4gICY6Zm9jdXMge1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOnRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBvdXRsaW5lLWNvbG9yIDogJGJsdWU7IFxuICB9XG4gICYuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG59XG5cbkBtaXhpbiBhbGwtaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW5wdXQoJHR5cGU6bnVsbCkge1xuXG4gICRzZWxlY3RvciA6ICdpbnB1dDpub3QoW3R5cGU9XCJjaGVja2JveFwiXSk6bm90KFt0eXBlPVwicmFkaW9cIl0pJztcblxuICBAaWYgdHlwZS1vZigkdHlwZSkgIT0gJ251bGwnIHtcbiAgICAkc2VsZWN0b3IgOiAnaW5wdXRbdHlwZT1cIiN7JHR5cGV9XCJdJztcbiAgfVxuXG4gICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIHNlbGVjdCgkc3Ryb2tlIDogJGJsYWNrKSB7XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpjYWxjKDEwMCUgLSAjeyRnYXB9KSBjZW50ZXI7IFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTsgICAgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gY2hlY2tib3goKSB7XG5cbn1cblxuQG1peGluIHRleHRhcmVhKCkge1xuXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2Vcbi8vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrbm90dG9uL2RvZ2dpc3R5bGUvYmxvYi9tYXN0ZXIvbGlicmFyeS9zcmMvY3JlYXRlL191bml0cy5zY3NzXG5cbi8vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHZhbHVlcyBkZWZpbmVkIGJlbG93LiBcblxuQGZvcndhcmQgJ2NyZWF0ZS91bml0cycgd2l0aCAoXG5cbiAgLy8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuICAvLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbiAgLy8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuICAvLy8gQHJlc3VsdCA6ICRnYXAwLCAkZ2FwLCAkZ2FwMiwgJGdhcDMsICRnYXA0LCAkZ2FwNSAsICRnYXA2LCAkZ2FwMC0sICRnYXAtLCAkZ2FwMi0sICRnYXAzLSwgJGdhcDQtLCAkZ2FwNS0gYW5kICRnYXA2LVxuICBcbiAgJGdhcCA6IDE2cHgsXG5cbiAgLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4gIC8vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbiAgLy8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG4gIC8vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbiAgLy8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiAgLy8vIEByZXN1bHQgOiAkc3BhY2VyMCwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcjQsICRzcGFjZXI1LCAkc3BhY2VyNiwgJHNwYWNlcjAtLCAkc3BhY2VyLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyNC0sICRzcGFjZXI1LSBhbmQgJHNwYWNlcjYtXG4gIFxuICAkc3BhY2VyIDogNHZoLCBcblxuICAvLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuICAvLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuICAvLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuICAvLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuICAvLy8gQHJlc3VsdCA6ICRndXR0ZXIwLCAkZ3V0dGVyLCAkZ3V0dGVyMiwgJGd1dHRlcjMsICRndXR0ZXI0LCAkZ3V0dGVyNSwgJGd1dHRlcjYsICRndXR0ZXIwLSwgJGd1dHRlci0sICRndXR0ZXIyLSwgJGd1dHRlcjMtLCAkZ3V0dGVyNC0sICRndXR0ZXI1LSBhbmQgJGd1dHRlcjYtXG4gIFxuICAkZ3V0dGVyIDogM3Z3LCBcblxuKTtcblxuJGJvcmRlci1yYWRpdXMgOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuJHNpZGViYXItd2lkdGggOiA1MDBweDsiLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuXG5AbWl4aW4gbWFyaygpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cnMtbWFyaztcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKCN7JGJvcmRlci1yYWRpdXN9IC8gMik7XG4gIHBhZGRpbmc6MCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xufVxuXG5AbWl4aW4gbWFyay1yZXNldCgpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6aW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbn0iLCJAbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0geyBAY29udGVudDsgfVxuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDIsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgzLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNCwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDUsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg2LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJ0b3BcIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpLCAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJib3R0b21cIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpLCAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUcmFuc2l0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcImhlbHBlcnMvZWFzZVwiO1xuXG4kZHVyYXRpb24gOiAwLjJzO1xuJGVhc2UgICAgIDogZWFzZS4kaW4tb3V0O1xuJGRlbGF5ICAgIDogbnVsbDtcblxuJHRyYW5zaXRpb24gOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgJGVhc2UpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICRkZWxheSk7Il19 */