@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i,
center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details,
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

:root {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

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

html {
  height: 100%;
  font-size: 62.5%;
  block-size: 100%;
  inline-size: 100%;
}

body {
  min-block-size: 100%;
  min-inline-size: 100%;
}

html, body {
  min-height: 100%;
}

p:empty, pre:empty, blockquote:empty, ol:empty, ul:empty, li:empty, legend:empty, figcaption:empty, body:empty, article:empty, nav:empty, aside:empty, section:empty, header:empty, footer:empty, address:empty {
  display: none;
}

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
  display: block;
}

svg, symbol {
  overflow: visible;
}

details {
  display: block;
}

summary {
  display: list-item;
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  width: 100%;
}

address {
  font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
  -webkit-margin-before: 0em;
  -webkit-margin-after: 0em;
  -webkit-margin-start: 0px;
  -webkit-margin-end: 0px;
  font-weight: normal;
}

hr {
  border: none;
  height: 1px;
  box-sizing: content-box;
  overflow: visible;
}

blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
  background-color: white;
  color: black;
  padding: 16px;
  position: relative;
  z-index: 9999;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  touch-action: manipulation;
}

button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

button, input {
  overflow: visible;
}

button, select {
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
button:focus,
[type=button]:focus,
[type=reset]:focus,
[type=submit]:focus {
  outline: 0;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

[disabled] {
  cursor: default;
}

img {
  border-style: none;
}

em {
  font-style: italic;
}

a {
  background-color: transparent;
  text-decoration: none;
  touch-action: manipulation;
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

b, strong {
  font-weight: bold;
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

textarea {
  resize: none;
  overflow: auto;
}

pre {
  background-color: white;
  color: black;
  text-transform: none;
  text-decoration: none;
  text-align: left;
  display: block;
  font-size: 16px;
  padding: 16px;
  position: relative;
  z-index: 999;
}

body.devmode img:not([alt]) {
  border: 2px red dashed;
}

@media (min-width: 321px) {
  body {
    overflow-x: hidden;
  }
}

:where(*) {
  scroll-margin-top: var(--navigation-height, 2rem);
}

.async-hide {
  opacity: 0 !important;
}

main:empty {
  display: none;
}

figure.image,
picture.image {
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}
figure.image img,
picture.image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}

video-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
}
@supports not (aspect-ratio: 16/9) {
  video-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  video-container > * {
    position: absolute;
  }
}
video-container iframe, video-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}

mark {
  background-color: #0095FF;
  color: white;
  border-radius: calc(var(--border-radius, 6px) / 2);
  padding: 0 5px;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}

details {
  outline: none;
}

summary {
  -webkit-appearance: none;
}
summary::-webkit-details-marker, summary::marker {
  display: none;
}

.button {
  --font-colour: white;
  --background-colour: var(--primary);
  --border-colour: transparent;
  --padding: 8px 20px;
  --font-size: 16px;
  --border-radius: 50px;
  --hover-font-colour: var(--primary);
  --hover-background-colour: white;
  --hover-border-colour: initial;
  --hover-padding: var(--padding);
  --hover-font-size: var(--font-size);
  --hover-border-radius: var(--border-radius);
  --icon-size: 1.1em;
  cursor: pointer;
  display: inline-flex;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border-style: solid;
  border-width: 1px;
  word-break: break-all;
  font-weight: bold;
  place-content: center;
  place-items: center;
  align-self: flex-start;
  text-transform: uppercase;
  color: var(--font-colour);
  background-color: var(--background-colour);
  border-color: var(--border-colour);
  padding: var(--padding);
  font-size: var(--font-size);
  border-radius: var(--border-radius);
  transition: background-color var(--transition-duration) var(--transition-ease), color var(--transition-duration) var(--transition-ease), border var(--transition-duration) var(--transition-ease);
}
.button svg {
  width: var(--icon-size);
  height: var(--icon-size);
  order: 3;
  fill: var(--fill, currentColor);
  margin-left: calc(var(--icon-size) / 2);
  transition: fill var(--transition-duration) var(--transition-ease), stroke var(--transition-duration) var(--transition-ease);
}
.button svg[class*=arrow] {
  --icon-size: 0.9em;
}
.button svg.arrow-left {
  margin-right: calc(var(--icon-size) / 2);
  margin-left: 0 !important;
  order: 1;
}
.button > span {
  order: 2;
}
.button.small {
  --padding: 6px 18px;
  --font-size: 12px;
}
.button.small svg {
  margin-left: calc(var(--gap) * 0.5);
}
.button.small svg.arrow-left {
  margin-right: calc(var(--gap) * 0.5);
}
.button.large {
  --padding: 12px 24px;
  --font-size: 24px;
}
.button.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #131f6b;
  --hover-border-colour: transparent;
}
.button.blue {
  --background-colour: #131f6b;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #131f6b;
}
.button.blue.outline {
  --background-colour: transparent;
  --font-colour: #131f6b;
  --border-colour: #131f6b;
  --hover-background-colour: #131f6b;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.red {
  --background-colour: #DF3035;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #DF3035;
}
.button.red.outline {
  --background-colour: transparent;
  --font-colour: #DF3035;
  --border-colour: #DF3035;
  --hover-background-colour: #DF3035;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.green {
  --background-colour: #76bb28;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #76bb28;
}
.button.green.outline {
  --background-colour: transparent;
  --font-colour: #76bb28;
  --border-colour: #76bb28;
  --hover-background-colour: #76bb28;
  --hover-font-colour: #FFFFFF;
  --hover-border-colour: transparent;
}
.button.white {
  --background-colour: #FFFFFF;
  --font-colour: var(--primary, #131f6b);
  --hover-background-colour: var(--primary, #131f6b);
  --hover-font-colour: #FFFFFF;
}
.button.white.outline {
  --background-colour: transparent;
  --font-colour: #FFFFFF;
  --border-colour: #FFFFFF;
  --hover-background-colour: #FFFFFF;
  --hover-font-colour: var(--primary, #131f6b);
  --hover-border-colour: transparent;
}
.button.disabled {
  pointer-events: none;
  --background-colour: #dcdcdc;
  --font-colour: white;
  --hover-background-colour: white;
  --hover-font-colour: #dcdcdc;
}
.button.disabled.outline {
  --background-colour: transparent;
  --font-colour: #dcdcdc;
  --border-colour: #dcdcdc;
  --hover-background-colour: #dcdcdc;
  --hover-font-colour: #dcdcdc;
  --hover-border-colour: transparent;
}
@media (hover: hover) {
  .button:hover {
    color: var(--hover-font-colour);
    background-color: var(--hover-background-colour);
    border-color: var(--hover-border-colour);
    border-radius: var(--hover-border-radius);
    padding: var(--hover-padding);
    font-size: var(--hover-font-size);
  }
}
.button.brochure {
  --font-colour: #131f6b;
  --background-colour: transparent;
  --padding: 5px 0px;
  --icon-size: 32px;
  --border-colour: transparent;
  --border-radius: 0;
  --hover-font-colour: #DF3035;
  --hover-border-colour: transparent;
  --hover-background-colour: transparent;
  flex-direction: row-reverse;
  text-transform: uppercase;
}
.button.brochure svg {
  margin-right: calc(var(--gap) * 0.5);
  margin-left: 0;
  fill: #DF3035;
}
.button.red svg.tick, .button.red svg.download {
  --stroke: #DF3035;
}
.button.blue svg.tick, .button.blue svg.download {
  --stroke: #131f6b;
}
.button.outline svg.tick, .button.outline svg.download {
  --stroke: #FFFFFF;
}
@media (hover: hover) {
  .button:hover.red svg.tick,
  .button:hover.red svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.red.outline svg.tick, .button:hover.red.outline svg.download {
    --stroke: #DF3035;
  }
  .button:hover.blue svg.tick,
  .button:hover.blue svg.download {
    --stroke: #FFFFFF;
  }
  .button:hover.blue.outline svg.tick, .button:hover.blue.outline svg.download {
    --stroke: #131f6b;
  }
  .button:hover.white svg.tick, .button:hover.white svg.download {
    --stroke: #131f6b;
  }
}

button-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  position: relative;
}
button-container .button {
  white-space: nowrap;
  margin: calc(var(--gap) * 0.5);
}

.sticky {
  position: sticky;
  top: 0px;
}

input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
  -webkit-appearance: none;
}

#holding-page header svg {
  max-width: 400px;
}
@media (max-width: 980px) {
  #holding-page {
    display: flex;
    flex-direction: column;
    padding: var(--gutter1);
  }
}

body#error-404 header h2 {
  max-width: 900px;
}
body#error-404 search-bar {
  margin-bottom: var(--spacer0);
}
body#error-404 search-bar input[type=search] {
  border: 1px solid #131f6b;
}

body > .idle-dialog {
  position: sticky;
  box-shadow: initial !important;
  display: flex;
  place-items: center;
  place-content: center;
  bottom: var(--gutter1-);
  z-index: 2;
  /* Start hidden below viewport */
  transform: translateY(100%);
  /* Animation with delayed start */
  animation: slide-in-idle-dialog both;
  animation-timeline: scroll();
  animation-range: calc(var(--navigation-height, 0px)) calc(var(--navigation-height, 0px) + clamp(2rem, 5vh, 3rem) * 2);
}
body > .idle-dialog .button {
  outline: 1px solid rgba(255, 255, 255, 0.5);
}
@keyframes slide-in-idle-dialog {
  to {
    transform: translateY(0rem);
  }
}
#contact-modal {
  --dialog-content-background-colour: #F4F4F4;
}
#contact-modal form .submit-row {
  margin-top: var(--gutter1);
}

body > .back-to-top {
  width: 40px;
  height: 40px;
  position: fixed;
  bottom: var(--gutter1);
  right: var(--gutter1);
  background: #292B68;
  border: 2px solid white;
  border-radius: 50%;
  z-index: 9999;
  opacity: 0;
  display: flex;
  pointer-events: none;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), bottom var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  place-content: center;
  place-items: center;
}
body > .back-to-top svg {
  position: relative;
  color: white;
  width: 50%;
  top: -4%;
}
@media (hover: hover) {
  body > .back-to-top:hover {
    background-color: #DF3035;
  }
}

footer#footer.in-view ~ .back-to-top {
  bottom: 120px;
}

navigation-bar:not(.in-view) ~ .back-to-top {
  opacity: 1;
  pointer-events: all;
}

:root {
  --primary: #131f6b;
  --secondary: #DF3035;
  --breakpoint-min: 320px;
  --breakpoint-small: 480px;
  --breakpoint-small-medium: 980px;
  --breakpoint-medium: 1120px;
  --breakpoint-large: 1400px;
  --breakpoint-max: 1680px;
  --font-colour: #6A6A6A;
  --heading-colour: var(--primary, #131f6b);
  --sub-heading-colour: var(--secondary, #DF3035);
  --transition-duration: 0.2s;
  --transition-ease: cubic-bezier(0.42, 0, 0.58, 1);
  --transition-delay: ;
  --breadcrumb-height: 90px;
  --anchors-height: 60px;
  --breadcrumb-and-anchors-sticky-underset: -15px;
  --main-max-width: 900px;
  --navigation-height: 143px;
  --sidebar-width: clamp(300px, 30vw, 500px);
  --gap: 16px;
  --gutter: 3vw;
  --spacer: 4vh;
  --gutter0: clamp(8px, var(--gutter) * 0.5, 12px);
  --gutter0-: calc(-1 * clamp(8px, var(--gutter) * 0.5, 12px));
  --spacer0: clamp(16px, var(--spacer), 32px);
  --spacer0-: calc(-1 * clamp(16px, var(--spacer), 32px));
  --gutter1: clamp(16px, var(--gutter), 32px);
  --gutter1-: calc(-1 * clamp(16px, var(--gutter), 32px));
  --spacer1: clamp(16px, var(--spacer) * 3, 64px);
  --spacer1-: calc(-1 * clamp(16px, var(--spacer) * 3, 64px));
  --gutter2: clamp(16px, var(--gutter) * 2, 48px);
  --gutter2-: calc(-1 * clamp(16px, var(--gutter) * 2, 48px));
  --spacer2: clamp(16px, var(--spacer) * 6, 112px);
  --spacer2-: calc(-1 * clamp(16px, var(--spacer) * 6, 112px));
  --gutter3: clamp(16px, var(--gutter) * 3, 64px);
  --gutter3-: calc(-1 * clamp(16px, var(--gutter) * 3, 64px));
  --spacer3: clamp(16px, var(--spacer) * 9, 160px);
  --spacer3-: calc(-1 * clamp(16px, var(--spacer) * 9, 160px));
  --gutter4: clamp(16px, var(--gutter) * 4, 80px);
  --gutter4-: calc(-1 * clamp(16px, var(--gutter) * 4, 80px));
  --spacer4: clamp(16px, var(--spacer) * 12, 208px);
  --spacer4-: calc(-1 * clamp(16px, var(--spacer) * 12, 208px));
  --gutter5: clamp(16px, var(--gutter) * 5, 96px);
  --gutter5-: calc(-1 * clamp(16px, var(--gutter) * 5, 96px));
  --spacer5: clamp(16px, var(--spacer) * 15, 256px);
  --spacer5-: calc(-1 * clamp(16px, var(--spacer) * 15, 256px));
  --gutter6: clamp(16px, var(--gutter) * 6, 112px);
  --gutter6-: calc(-1 * clamp(16px, var(--gutter) * 6, 112px));
  --spacer6: clamp(16px, var(--spacer) * 18, 304px);
  --spacer6-: calc(-1 * clamp(16px, var(--spacer) * 18, 304px));
  --computed-gutter: calc(((100vw - var(--breakpoint-max)) / 2));
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --sidebar-width: 500px;
  }
  @media (max-width: 1400px) {
    :root {
      --sidebar-width: 300px;
    }
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  :root {
    --gutter0: calc((var(--gutter) * 0.5) + 8px);
    --gutter0-: calc(-1 * calc((var(--gutter) * 0.5) + 8px));
    --spacer0: calc((var(--spacer) * 2) + 16px);
    --spacer0-: calc(-1 * calc((var(--spacer) * 2) + 16px));
    --gutter1: calc((var(--gutter) * 1) + 16px);
    --gutter1-: calc(-1 * calc((var(--gutter) * 1) + 16px));
    --spacer1: calc((var(--spacer) * 4) + 16px);
    --spacer1-: calc(-1 * calc((var(--spacer) * 4) + 16px));
    --gutter2: calc((var(--gutter) * 2) + 16px);
    --gutter2-: calc(-1 * calc((var(--gutter) * 2) + 16px));
    --spacer2: calc((var(--spacer) * 8) + 16px);
    --spacer2-: calc(-1 * calc((var(--spacer) * 8) + 16px));
    --gutter3: calc((var(--gutter) * 3) + 16px);
    --gutter3-: calc(-1 * calc((var(--gutter) * 3) + 16px));
    --spacer3: calc((var(--spacer) * 12) + 16px);
    --spacer3-: calc(-1 * calc((var(--spacer) * 12) + 16px));
    --gutter4: calc((var(--gutter) * 4) + 16px);
    --gutter4-: calc(-1 * calc((var(--gutter) * 4) + 16px));
    --spacer4: calc((var(--spacer) * 16) + 16px);
    --spacer4-: calc(-1 * calc((var(--spacer) * 16) + 16px));
    --gutter5: calc((var(--gutter) * 5) + 16px);
    --gutter5-: calc(-1 * calc((var(--gutter) * 5) + 16px));
    --spacer5: calc((var(--spacer) * 20) + 16px);
    --spacer5-: calc(-1 * calc((var(--spacer) * 20) + 16px));
    --gutter6: calc((var(--gutter) * 6) + 16px);
    --gutter6-: calc(-1 * calc((var(--gutter) * 6) + 16px));
    --spacer6: calc((var(--spacer) * 24) + 16px);
    --spacer6-: calc(-1 * calc((var(--spacer) * 24) + 16px));
  }
}

@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-bold.woff2") format("woff2"), url("../../../assets/fonts/lato-bold.woff") format("woff"), url("../../../assets/fonts/lato-bold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-semibold.woff2") format("woff2"), url("../../../assets/fonts/lato-semibold.woff") format("woff"), url("../../../assets/fonts/lato-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
@font-face {
  font-family: "lato";
  src: url("../../../assets/fonts/lato-regular.woff2") format("woff2"), url("../../../assets/fonts/lato-regular.woff") format("woff"), url("../../../assets/fonts/lato-regular.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium.woff") format("woff"), url("../../../assets/fonts/montserrat-medium.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-medium-italic.woff2") format("woff2"), url("../../../assets/fonts/montserrat-medium-italic.woff") format("woff"), url("../../../assets/fonts/montserrat-medium-italic.otf") format("opentype");
  font-display: swap;
  font-style: italic;
  font-weight: 500;
}
@font-face {
  font-family: "montserrat";
  src: url("../../../assets/fonts/montserrat-semibold.woff2") format("woff2"), url("../../../assets/fonts/montserrat-semibold.woff") format("woff"), url("../../../assets/fonts/montserrat-semibold.otf") format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}
body {
  font-family: montserrat, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--font-colour, #6A6A6A);
  line-height: 1.6;
  font-size: 1.5rem;
}
@supports (width: clamp(1px, 5vw, 10px)) {
  body {
    font-size: clamp(1.4rem, 1.5vw, 1.6rem);
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  @media (max-width: 950px) {
    body {
      font-size: 1.4rem;
    }
  }
  @media (min-width: 1601px) {
    body {
      font-size: 1.6rem;
    }
  }
}

h1 {
  font-size: 3.8125em;
  font-size: clamp(2.5em, 5vw, 3.8125em);
  line-height: 1.2;
}

h2 {
  font-size: 2em;
  line-height: 1.3;
}

h3 {
  font-size: 1.5625em;
  line-height: 1.6;
}

h4 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h5 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h6 {
  font-size: 1.0625em;
  line-height: 1.6;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--heading-colour, var(--font-colour));
  text-wrap: pretty;
}
h1.sub-heading,
h2.sub-heading,
h3.sub-heading,
h4.sub-heading,
h5.sub-heading,
h6.sub-heading {
  color: var(--sub-heading-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1 span,
h1 strong,
h1 p,
h2 span,
h2 strong,
h2 p,
h3 span,
h3 strong,
h3 p,
h4 span,
h4 strong,
h4 p,
h5 span,
h5 strong,
h5 p,
h6 span,
h6 strong,
h6 p {
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
}

q,
blockquote {
  quotes: "“" "”" "‘" "’";
}
q::before,
blockquote::before {
  content: open-quote;
}
q::after,
blockquote::after {
  content: close-quote;
}

a {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  text-decoration: none;
  text-underline-position: under;
  color: var(--font-colour);
}
a.external {
  display: inline-flex;
  align-items: center;
}
a.external svg.external-link {
  opacity: 0.6;
  width: 0.8em;
  height: 0.8em;
  margin-left: 0.5em;
}

ol,
ul {
  list-style: none;
  list-style-position: inside;
}

li a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

small {
  font-size: 0.625em;
  line-height: 1.8;
}

hr {
  background-color: var(--hr-colour, #dcdcdc);
  margin-top: var(--spacer0);
  margin-bottom: var(--spacer0);
}

.note {
  position: relative;
  display: block;
  background-color: #fff5bf;
  border: 1px solid #ffe13c;
  padding: var(--gutter1);
  border-radius: var(--border-radius, 6px);
}
.note a {
  text-decoration: underline;
  color: #978002;
}
.note::before {
  content: "Please Note";
  text-transform: uppercase;
  position: relative;
  font-size: 10px;
  font-weight: bold;
  color: #978002;
  display: block;
  margin-bottom: calc(var(--gap) * 0.5);
}

body {
  --row-navigation: 1;
  --row-breadcrumbs: 2;
  --row-anchors: 3;
  --row-header: 4;
  --row-main: 5;
  --row-background: 1;
  --row-sidebar: 4 / span 3;
  --row-footer: 100;
  --rows: auto;
  --column-left: 2;
  --column-main: 2 / span 2;
  --column-right: 4;
  --column-full: 2 / -2;
  --column-gutter: minmax(0, 1fr);
  --column-content: minmax(0, calc(1680px - (var(--sidebar-width) * 2) - var(--gutter4)));
  --column-sidebar: var(--sidebar-width);
  --columns: var(--column-gutter) var(--column-sidebar) var(--column-content) var(--column-sidebar) var(--column-gutter);
  display: grid;
  min-width: 320px;
  grid-gap: 0 var(--gutter1);
  grid-template-rows: var(--rows);
  grid-template-columns: var(--columns);
}
body > * {
  grid-column: var(--column-full);
}

navigation-bar {
  z-index: 999;
  grid-row: var(--row-navigation);
}
navigation-bar:not(.in-view) ~ #breadcrumbs-bar,
navigation-bar:not(.in-view) ~ #anchors-bar {
  --anchors-height: 50px;
}

#breadcrumbs-bar {
  z-index: 2;
  grid-row: var(--row-breadcrumbs);
  height: var(--breadcrumb-height);
}
#breadcrumbs-bar.sticky {
  top: var(--breadcrumb-and-anchors-sticky-underset);
}

#anchors-bar {
  z-index: 2;
  grid-row: var(--row-anchors);
  height: var(--anchors-height);
}
#anchors-bar.sticky {
  top: calc(var(--breadcrumb-height) - 1px + var(--breadcrumb-and-anchors-sticky-underset) * 2);
}

.header {
  grid-row: var(--row-header);
  grid-column: var(--column-main);
  max-width: var(--main-max-width);
}

#footer {
  grid-row: var(--row-footer);
}

main {
  grid-row: var(--row-main);
  grid-column: var(--column-main);
  max-width: var(--main-max-width);
  display: flex;
  flex-direction: column;
}
main > *,
main ~ section,
main ~ aside,
main ~ div,
main ~ service-centre-finder,
main ~ markets-summary {
  position: relative;
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
  flex-grow: 1;
}
main ~ div:has(div#truendo_container) {
  padding: 0;
}
main service-centre-finder picture {
  --translateX: 0;
  width: calc(100vw + var(--gutter1));
  left: var(--gutter1-);
}
@media (min-width: 1681px) {
  main service-centre-finder picture {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

side-bar {
  grid-row: var(--row-sidebar);
  grid-column: var(--column-right);
  width: var(--sidebar-width);
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
}
side-bar > div {
  display: grid;
  grid-gap: var(--gutter1) var(--gutter1);
  grid-template-columns: repeat(1, minmax(var(--sidebar-width), 1fr));
}
side-bar > div.sticky {
  top: calc(var(--breadcrumb-height) + var(--anchors-height) + var(--gutter1));
}
side-bar > div > * {
  position: relative;
}
side-bar > div > *.red {
  --background-colour: #DF3035;
}
side-bar > div > *.blue {
  --background-colour: #131f6b;
}
side-bar > div > *.grey {
  --background-colour: #F4F4F4;
  --border-colour: #dcdcdc;
}
side-bar > div > *.white {
  --background-colour: #FFFFFF;
  --border-colour: #F4F4F4;
}

aside#support-information .glossary-terms,
tabbed-content[data-style="1"] > nav {
  top: calc(var(--breadcrumb-height) + var(--anchors-height) + var(--gutter1));
}

@media (max-width: 980px) {
  body {
    --columns: var(--column-gutter) var(--column-content) var(--column-gutter);
    --column-main: var(--column-full);
    --column-left: var(--column-full);
    --column-right: var(--column-full);
    --row-sidebar: auto;
  }
  body > * {
    width: 100%;
  }
  body side-bar {
    padding-top: var(--spacer1);
  }
  body side-bar > div {
    grid-gap: var(--spacer1) var(--gutter1);
  }
  body side-bar > div.sticky {
    position: relative;
    top: initial;
  }
}
@media (max-width: 352px) {
  body {
    --sidebar-width: 100%;
  }
}
.themed.red {
  background: #DF3035;
}
.themed.red.blowout + .themed.red {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.red.blowout + .themed.red.light {
  --border-top-colour: #dcdcdc;
}
.themed.red.blowout + .themed.red.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.blue {
  background: #131f6b;
}
.themed.blue.blowout + .themed.blue {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.blue.blowout + .themed.blue.light {
  --border-top-colour: #dcdcdc;
}
.themed.blue.blowout + .themed.blue.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.grey {
  background: #F4F4F4;
}
.themed.grey.blowout + .themed.grey {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.grey.blowout + .themed.grey.light {
  --border-top-colour: #dcdcdc;
}
.themed.grey.blowout + .themed.grey.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed.white {
  background: #FFFFFF;
}
.themed.white.blowout + .themed.white {
  box-shadow: 0px 1px var(--border-top-colour);
}
.themed.white.blowout + .themed.white.light {
  --border-top-colour: #dcdcdc;
}
.themed.white.blowout + .themed.white.dark {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.themed:not(.blowout) {
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
  margin-bottom: var(--spacer1);
  margin-top: var(--spacer1);
  border-radius: var(--border-radius, 6px);
}
.themed:not(.blowout).white {
  border: 1px solid #F4F4F4;
}
.themed:not(.blowout).white + .blowout.white,
.themed:not(.blowout).white + :not(.themed) {
  margin-top: var(--spacer1-);
}

.blowout:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  background: inherit;
}
@media (max-width: 336px) {
  .blowout:before {
    transform: initial;
    left: calc(var(--gap) * -1);
    width: 100vw;
  }
}
@media (max-width: 980px) {
  .blowout:before {
    transform: initial;
    left: 0;
    margin-left: var(--gutter1-);
    width: 100vw;
  }
}
@media (min-width: 981px) {
  body:not(mobile) main .blowout:before {
    --translateX: 0;
    width: calc(100vw + var(--gutter1));
    left: var(--gutter1-);
    width: calc(100vw + var(--gutter1));
  }
}
@media (min-width: 981px) and (min-width: 1681px) {
  body:not(mobile) main .blowout:before {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

body.mobile main .blowout:before {
  --translateX: 0;
  width: calc(100vw + var(--gutter1));
  left: var(--gutter1-);
  width: calc(100vw + var(--gutter1));
}
@media (min-width: 1681px) {
  body.mobile main .blowout:before {
    left: calc((-1 * var(--computed-gutter)) - var(--gutter1));
  }
}

background-image,
background-video {
  z-index: -1;
  grid-row: var(--row-background);
  grid-column: 1/-1;
}
background-image.behind-header,
background-video.behind-header {
  --row-background: 4;
}

img[data-src],
video[data-src] {
  transition: opacity 0.3s ease-in;
  opacity: 0;
}
img[data-src].loaded,
video[data-src].loaded {
  opacity: 1;
}

main ~ *:not(.themed) + :not(.themed):not(#footer):not(side-bar) {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}

main > *.themed.content-block {
  box-shadow: initial;
}

main > *.themed + :not(.themed):not(#footer) {
  margin-top: 0;
  box-shadow: initial;
}

main ~ *.themed + :not(.themed):not(#footer),
body.background-positioned-behind-header main > *:first-child {
  box-shadow: initial;
}

main > *:first-child:not(.themed),
main > *:first-child.white {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}

main ~ *:not(.themed) + .themed:not(.blowout),
main > *:not(.themed) + .themed:not(.blowout) {
  margin-top: 0;
}

.header ~ main > .themed:not(.blowout):first-child {
  margin-top: var(--spacer1);
}

main > .themed:not(.blowout):last-child {
  margin-bottom: var(--spacer1);
}

main > .themed:not(.blowout) + .blowout {
  margin-top: var(--spacer1);
}

.header ~ main > .themed:not(.blowout) {
  margin-top: 0;
}

main ~ div:has(#CookiebotWidget) {
  padding-top: 0;
  padding-bottom: 0;
}

body:not([data-components*=side-bar]) {
  --main-max-width: auto;
  --column-main: var(--column-full);
}

body:not([data-components*=breadcrumbs-bar]) {
  --row-navigation: 1;
  --row-anchors: 2;
  --row-header: 3;
  --row-main: 4;
}
body:not([data-components*=breadcrumbs-bar]) background-image.full,
body:not([data-components*=breadcrumbs-bar]) background-video.full {
  --row-background: 1 / span 4;
}
body:not([data-components*=breadcrumbs-bar]) background-image.behind-header,
body:not([data-components*=breadcrumbs-bar]) background-video.full {
  --row-background: 3;
}
body:not([data-components*=breadcrumbs-bar]) #anchors-bar.sticky {
  top: 0;
}
@media (min-width: 981px) {
  body:not([data-components*=breadcrumbs-bar]) {
    --row-sidebar: 3 / span 3;
  }
  body:not([data-components*=breadcrumbs-bar]) side-bar div.sticky,
  body:not([data-components*=breadcrumbs-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=breadcrumbs-bar]) tabbed-content[data-style="1"] > nav {
    top: calc(var(--anchors-height) + var(--gutter1));
  }
}

body:not([data-components*=anchors-bar]) {
  --row-navigation: 1;
  --row-breadcrumbs: 2;
  --row-header: 3;
  --row-main: 4;
}
body:not([data-components*=anchors-bar]) background-image.full,
body:not([data-components*=anchors-bar]) background-video.full {
  --row-background: 1 / span 4;
}
body:not([data-components*=anchors-bar]) background-image.behind-header,
body:not([data-components*=anchors-bar]) background-video.behind-header {
  --row-background: 3;
}
body:not([data-components*=anchors-bar]) #breadcrumbs-bar.sticky {
  top: 0;
}
@media (min-width: 981px) {
  body:not([data-components*=anchors-bar]) {
    --row-sidebar: 3 / span 3;
  }
  body:not([data-components*=anchors-bar]) side-bar div.sticky,
  body:not([data-components*=anchors-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=anchors-bar]) tabbed-content[data-style="1"] > nav {
    top: calc(var(--anchors-height) + var(--gutter1));
  }
}

body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) {
  --row-navigation: 1;
  --row-header: 2;
  --row-main: 3;
  --row-background: 1;
}
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-image.full,
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-video.full {
  --row-background: 1 / span 5;
}
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-image.behind-header,
body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) background-video.behind-header {
  --row-background: 2;
}
@media (min-width: 981px) {
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) {
    --row-sidebar: 2 / span 3;
  }
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) side-bar div.sticky,
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) aside#support-information .glossary-terms,
  body:not([data-components*=breadcrumbs-bar]):not([data-components*=anchors-bar]) tabbed-content[data-style="1"] > nav {
    top: var(--gutter1);
  }
}

@media (max-width: 980px) {
  body.rule-last-main-section-is-themed side-bar {
    padding-top: 0;
  }
}

.layout-content-right-sidebar, .layout-content-left-sidebar {
  display: grid;
  grid-gap: var(--gutter1);
  grid-template-columns: 1fr;
}
.layout-content-right-sidebar .left,
.layout-content-right-sidebar .right, .layout-content-left-sidebar .left,
.layout-content-left-sidebar .right {
  grid-column: 1/-1;
  max-width: 100%;
}
.layout-content-right-sidebar .layout-content-right-sidebar, .layout-content-right-sidebar .layout-content-left-sidebar, .layout-content-left-sidebar .layout-content-right-sidebar, .layout-content-left-sidebar .layout-content-left-sidebar {
  --column-content: minmax(0, calc(1680px - (var(--sidebar-width) * 2)));
}

@media (min-width: 981px) {
  body > .layout-content-left-sidebar .left {
    grid-column: 1;
  }
  body > .layout-content-left-sidebar .right {
    grid-column: 2/4;
  }
  body > .layout-content-right-sidebar .left {
    grid-column: 1/3;
    max-width: var(--main-max-width);
  }
  body > .layout-content-right-sidebar .right {
    grid-column: 3;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  body > .layout-content-right-sidebar, body > .layout-content-left-sidebar {
    grid-template-columns: var(--column-sidebar) var(--column-content) var(--column-sidebar);
  }
}
@media (min-width: 1121px) {
  body:not([data-components*=side-bar]) main .layout-content-left-sidebar .left {
    grid-column: 1;
  }
  body:not([data-components*=side-bar]) main .layout-content-left-sidebar .right {
    grid-column: 2/4;
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar .left {
    grid-column: 1/3;
    max-width: var(--main-max-width);
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar .right {
    grid-column: 3;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
  body:not([data-components*=side-bar]) main .layout-content-right-sidebar, body:not([data-components*=side-bar]) main .layout-content-left-sidebar {
    grid-template-columns: var(--column-sidebar) var(--column-content) var(--column-sidebar);
  }
}

.content-block > * {
  grid-column: 1/-1;
}
@media (min-width: 701px) {
  .content-block {
    --column-count: 6;
  }
  .content-block .col-1-1 {
    grid-column: 1/span 1;
  }
  .content-block .col-1-2 {
    grid-column: 1/span 2;
  }
  .content-block .col-1-3 {
    grid-column: 1/span 3;
  }
  .content-block .col-1-4 {
    grid-column: 1/span 4;
  }
  .content-block .col-1-5 {
    grid-column: 1/span 5;
  }
  .content-block .col-1-6 {
    grid-column: 1/span 6;
  }
  .content-block .col-2-1 {
    grid-column: 2/span 1;
  }
  .content-block .col-2-2 {
    grid-column: 2/span 2;
  }
  .content-block .col-2-3 {
    grid-column: 2/span 3;
  }
  .content-block .col-2-4 {
    grid-column: 2/span 4;
  }
  .content-block .col-2-5 {
    grid-column: 2/span 5;
  }
  .content-block .col-3-1 {
    grid-column: 3/span 1;
  }
  .content-block .col-3-2 {
    grid-column: 3/span 2;
  }
  .content-block .col-3-3 {
    grid-column: 3/span 3;
  }
  .content-block .col-3-4 {
    grid-column: 3/span 4;
  }
  .content-block .col-4-1 {
    grid-column: 4/span 1;
  }
  .content-block .col-4-2 {
    grid-column: 4/span 2;
  }
  .content-block .col-4-3 {
    grid-column: 4/span 3;
  }
  .content-block .col-5-1 {
    grid-column: 5/span 2;
  }
  .content-block .col-5-2 {
    grid-column: 5/span 2;
  }
  .content-block .col-6-1 {
    grid-column: 6/span 1;
  }
}
@media (min-width: 700px) and (max-width: 1400px) {
  .content-block {
    --column-count: 4;
  }
  .content-block .col-1-3 {
    grid-column: 1/span 2;
  }
  .content-block .col-1-4 {
    grid-column: 1/span 3;
  }
  .content-block .col-1-5 {
    grid-column: 1/span 3;
  }
  .content-block .col-4-3 {
    grid-column: 3/-1;
  }
  .content-block .col-1-6 {
    grid-column: 1/-1;
  }
  .content-block .col-2-3,
  .content-block .col-2-4,
  .content-block .col-2-5 {
    grid-column: 2/-1;
  }
  .content-block .col-3-2,
  .content-block .col-3-3,
  .content-block .col-3-4 {
    grid-column: 3/-1;
  }
  .content-block .col-4-1,
  .content-block .col-4-2,
  .content-block .col-5-1,
  .content-block .col-6-1 {
    grid-column: 4/-1;
  }
  .content-block .col-5-2 {
    grid-column: 1/-1;
  }
}
@media (min-width: 320px) and (max-width: 699px) {
  .content-block {
    --column-count: 2;
  }
  .content-block .col-1-1,
  .content-block .col-3-1,
  .content-block .col-5-1 {
    grid-column: 1;
  }
  .content-block .col-2-1,
  .content-block .col-4-1,
  .content-block .col-6-1 {
    grid-column: 2;
  }
}
@media (min-width: 320px) and (max-width: 699px) and (max-width: 500px) {
  .content-block .col-1-1 {
    grid-column: 1/-1;
  }
  .content-block .col-1-5 + .col-6-1 {
    grid-column: 1/-1;
  }
}
@media (min-width: 320px) and (max-width: 699px) and (min-width: 501px) {
  .content-block .col-2-5 {
    grid-column: 2;
  }
  .content-block .col-1-5 {
    grid-column: 1;
  }
}

navigation-bar {
  position: relative;
  display: flex;
  padding: calc(var(--spacer0) + var(--gap)) 0;
  align-items: flex-end;
  justify-content: space-between;
  align-items: center;
  background-color: #10124d;
  z-index: 5;
  gap: var(--gutter1);
  height: -moz-min-content;
  height: min-content;
  --top-level-link-gutters: var(--gap);
  --top-level-link-colour: white;
  --marker-line-thickness: 3px;
  --spacer-line-thickness: 1px;
}
@media (max-width: 980px) {
  navigation-bar {
    align-items: center;
  }
}
navigation-bar:before {
  content: "";
  background-color: inherit;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(var(--translateX, -50%));
  background: inherit;
}
navigation-bar > *:not(.image) {
  position: relative;
  z-index: 1;
}
body[data-components*=background-image] navigation-bar.hide-background {
  background-color: initial;
  background: initial;
}
body[data-components*=background-image] navigation-bar.hide-background::before {
  display: none;
}

body[data-components*=background-video] navigation-bar.hide-background {
  background-color: initial;
  background: initial;
}
body[data-components*=background-video] navigation-bar.hide-background::before {
  display: none;
}

navigation-bar.invert {
  background-color: initial;
  background: initial;
  --top-level-link-colour: #131f6b;
}
navigation-bar.invert::before {
  display: none;
}
navigation-bar.invert a.logo img[src*="tagline.svg"] {
  filter: invert(0.9);
}
navigation-bar a.logo {
  max-width: 320px;
  max-width: 280px;
  width: 100%;
  min-width: 200px;
}
navigation-bar a.logo img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
}
navigation-bar a.logo img[src*="logo.svg"] {
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 90%, 0 90%);
          clip-path: polygon(0 0, 100% 0, 100% 90%, 0 90%);
}
navigation-bar a.logo img[src*="tagline.svg"] {
  margin-top: calc(var(--gap) * 0.5);
}
navigation-bar a.logo::after {
  content: "";
  width: 100%;
  height: 3px;
  position: absolute;
  left: 0;
  bottom: 0;
  bottom: calc(var(--logo-tagline-height, calc(var(--gap) * -0.5)) + calc(var(--gap) * 0.5));
  background-color: #DF3035;
}
navigation-bar nav {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  gap: 8px;
}
navigation-bar nav main-menu > ul > li.top-level-link:not(:nth-last-child(2)):not(:nth-last-child(3)):not(:last-of-type)::before,
navigation-bar nav secondary-menu > ul > li:not(:last-of-type)::before {
  content: "";
  width: var(--spacer-line-thickness);
  height: 40%;
  position: absolute;
  right: calc(-1 * var(--spacer-line-thickness) / 2);
  top: 30%;
  background-color: var(--spacer-line-colour, #DF3035);
}
navigation-bar nav personalise-experience {
  display: none;
}
navigation-bar nav .personalised {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gap);
}
navigation-bar nav .personalised personalise-experience {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
}
navigation-bar nav .personalised personalise-experience a.button.personalised {
  --font-size: 0.8em;
  --padding: 4px 10px;
}
@media (max-width: 940px) {
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    --font-size: 16px;
    --padding: 8px 20px;
    --icon-size: 20px;
  }
  navigation-bar nav .personalised personalise-experience a.button.personalised p {
    display: none;
  }
  navigation-bar nav .personalised personalise-experience a.button.personalised svg {
    margin-left: 0;
  }
}
@media (max-width: 600px) {
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    max-height: 36px;
    --icon-size: 1.1em;
  }
}
navigation-bar nav .personalised personalise-experience + secondary-menu {
  width: -moz-fit-content;
  width: fit-content;
  justify-content: flex-end;
}
@media (max-width: 440px) {
  navigation-bar nav .personalised {
    top: unset;
    flex-wrap: nowrap;
  }
  navigation-bar nav .personalised .button,
  navigation-bar nav .personalised personalise-experience a.button.personalised {
    --padding: 8px;
    --icon-size: 0.8em;
  }
}
navigation-bar nav main-menu > ul > li.top-level-link + .search {
  margin-left: -2px;
}
navigation-bar nav .link {
  font-size: var(--font-size);
  text-decoration: none;
}
navigation-bar nav .link svg {
  margin-left: 0.4em;
  height: 0.5em;
  fill: #FFFFFF;
}
navigation-bar nav .link svg:not(.arrow-right):not(.arrow-left) {
  height: 0.8em;
}
navigation-bar nav .link.overview {
  font-weight: bold;
}
navigation-bar nav .link svg,
navigation-bar nav .button svg {
  pointer-events: none;
}
navigation-bar nav main-menu {
  --font-size: 0.95em;
  order: 2;
  align-self: flex-end;
  position: relative;
}
navigation-bar nav main-menu .top-level-links {
  display: flex;
  align-items: center;
}
navigation-bar nav main-menu .top-level-links li {
  position: relative;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a {
  font-weight: bold;
  text-transform: uppercase;
  color: var(--top-level-link-colour);
  padding: calc(var(--gap) * 0.5) var(--top-level-link-gutters);
  height: 100%;
  white-space: nowrap;
  display: flex;
  place-items: center;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a::after {
  content: "";
  height: 3px;
  width: calc(100% - var(--top-level-link-gutters) * 2);
  background-color: var(--top-level-link-colour, #DF3035);
  position: absolute;
  bottom: 0;
  left: var(--top-level-link-gutters);
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
navigation-bar nav main-menu .top-level-links li.top-level-link a.active::after {
  opacity: 1 !important;
}
navigation-bar nav main-menu .top-level-links li.top-level-link a.current::after {
  opacity: 1;
}
navigation-bar nav main-menu .top-level-links li.top-level-link[data-nav=menu] {
  order: 1;
}
navigation-bar nav main-menu .top-level-links li.top-level-link[data-nav=submenu] {
  order: 2;
  display: none;
}
navigation-bar nav main-menu .top-level-links li.search {
  white-space: nowrap;
}
navigation-bar nav main-menu .top-level-links li.search a {
  text-decoration: none;
}
navigation-bar nav main-menu .top-level-links li.search svg {
  margin-left: 0;
}
navigation-bar nav main-menu .top-level-links li.search span {
  margin-right: calc(var(--gap) * 0.5);
  pointer-events: none;
}
navigation-bar nav main-menu .top-level-links li.search, navigation-bar nav main-menu .top-level-links li.menu {
  order: 3;
}
navigation-bar nav main-menu .top-level-links li.cart {
  margin-right: calc(var(--top-level-link-gutters) / 2);
  left: -2px;
}
navigation-bar nav main-menu .top-level-links li.cart a {
  text-decoration: none;
  padding: 8px 10px;
}
navigation-bar nav main-menu .top-level-links li.cart a span {
  display: none;
}
navigation-bar nav main-menu .top-level-links li.cart svg {
  order: 1;
  margin-left: 0;
}
li.cart a[data-total]::after {
  content: attr(data-total);
  min-width: 2ch;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 0.4em;
  margin-left: 0.5em;
  height: 2ch;
  align-self: center;
  background-color: #DF3035;
  color: white;
  line-height: 0.2;
  text-align: center;
  display: flex;
  place-content: center;
  place-items: center;
  font-size: 0.8em;
  border-radius: var(--border-radius, 6px);
  order: 2;
}
@media (hover: hover) {
  li.cart a[data-total]:hover {
    background-color: #131f6b;
    color: #FFFFFF;
  }
  li.cart a[data-total]:hover::after {
    color: #FFFFFF;
  }
  li.cart a[data-total]:hover svg {
    fill: #DF3035;
  }
}
@media (hover: hover) {
  li.cart a:not([data-total]):hover {
    background-color: #131f6b;
  }
  li.cart a:not([data-total]):hover::after {
    color: #FFFFFF;
  }
  li.cart a:not([data-total]):hover svg {
    fill: #DF3035;
  }
}

@media (min-width: 550px) {
  navigation-bar nav main-menu .top-level-links li.cart svg {
    display: none;
  }
  navigation-bar nav main-menu .top-level-links li.cart a {
    padding: 8px 20px;
  }
  navigation-bar nav main-menu .top-level-links li.cart a span {
    display: block;
  }
}
navigation-bar nav main-menu.loading::before {
  --size: 12px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, white);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
@media (hover: hover) {
  navigation-bar nav main-menu.loading:hover::before {
    opacity: 1;
    animation-play-state: running;
    transition-delay: 0s;
  }
}
navigation-bar nav secondary-menu {
  --font-size: 0.8em;
  display: flex;
  order: 1;
  align-self: flex-end;
  z-index: 6;
}
navigation-bar nav secondary-menu > ul {
  display: flex;
  position: relative;
  right: calc(var(--gap) * -1);
}
navigation-bar nav secondary-menu > ul li {
  position: relative;
}
navigation-bar nav secondary-menu > ul li a {
  text-transform: uppercase;
  color: var(--top-level-link-colour);
  padding: calc(var(--gap) * 0.5) var(--gap);
  display: flex;
  place-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  navigation-bar nav secondary-menu > ul li a:hover {
    color: #0095FF;
  }
}
navigation-bar nav secondary-menu > ul li .sub-menu {
  display: grid;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: 50%;
  min-width: calc(100% + calc(var(--gap) * 2));
  width: 200px;
  transform: translate(50%, calc(var(--gap) * -0.5));
  border-radius: var(--border-radius, 6px);
  background-color: var(--primary, #131f6b);
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border: 1px solid rgba(255, 255, 255, 0.1);
}
navigation-bar nav secondary-menu > ul li .sub-menu li:nth-of-type(1) {
  padding-top: calc(var(--gap) * 0.5);
}
navigation-bar nav secondary-menu > ul li .sub-menu li:last-of-type {
  padding-bottom: calc(var(--gap) * 0.5);
}
navigation-bar nav secondary-menu > ul li .sub-menu a {
  padding: calc(calc(var(--gap) * 0.5) / 2) var(--gap);
  text-transform: initial;
  color: white;
}
navigation-bar nav secondary-menu > ul li .sub-menu a.asset {
  display: flex;
}
navigation-bar nav secondary-menu > ul li .sub-menu a.asset svg {
  order: -1;
  margin: 0 0.4em 0 0;
  align-self: flex-start;
  margin-top: 0.4em;
}
navigation-bar nav secondary-menu > ul li .sub-menu[data-level="1"] li:first-of-type {
  order: 100;
}
:root:not([data-browser-feature*=touch]) navigation-bar nav secondary-menu > ul li .sub-menu[data-level="1"] li:first-of-type {
  display: none;
}

@media (hover: hover) {
  navigation-bar nav secondary-menu > ul li:hover > a {
    color: #0095FF;
  }
  navigation-bar nav secondary-menu > ul li:hover .sub-menu {
    opacity: 1;
    transform: translate(50%, 0);
    pointer-events: all;
  }
}
navigation-bar nav secondary-menu > ul li:last-of-type .sub-menu {
  right: calc(100% + var(--gap)) !important;
}
navigation-bar nav secondary-menu > ul > li.has-children::after {
  content: "";
  top: calc(100% + 1px);
  left: 50%;
  width: 10px;
  height: 10px;
  transform: translate(-50%, calc(-50% + calc(var(--gap) * -0.5))) rotate(45deg);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background-color: var(--primary, #131f6b);
  position: absolute;
  -webkit-clip-path: polygon(0 0, 100% 0%, 50% 50%, 0 100%);
          clip-path: polygon(0 0, 100% 0%, 50% 50%, 0 100%);
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  pointer-events: none;
}
@media (hover: hover) {
  navigation-bar nav secondary-menu > ul > li.has-children:hover::after {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(45deg);
  }
}
@media (max-width: 1400px) {
  navigation-bar {
    --top-level-link-gutters: var(--gap);
  }
  navigation-bar nav main-menu > ul li.search span {
    display: none;
  }
}
@media (max-width: 980px) {
  navigation-bar nav main-menu {
    --font-size: 0.9em;
  }
}
navigation-bar li.menu {
  display: none;
  margin-left: var(--top-level-link-gutters);
}
navigation-bar button.menu {
  width: 40px;
  height: 40px;
}
navigation-bar button.menu svg {
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
navigation-bar button.menu svg line {
  stroke-width: 3px;
  stroke: var(--top-level-link-colour);
}
navigation-bar button.menu svg line:nth-child(1) {
  transform-origin: 15% 30%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
navigation-bar button.menu svg line:nth-child(2) {
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
navigation-bar button.menu svg line:nth-child(3) {
  transform-origin: 15% 70%;
  transition: transform 0.3s cubic-bezier(0.86, 0, 0.07, 1);
}
navigation-bar button.menu.active svg line:nth-child(1) {
  transform: rotate(45deg);
}
navigation-bar button.menu.active svg line:nth-child(2) {
  opacity: 0;
}
navigation-bar button.menu.active svg line:nth-child(3) {
  transform: rotate(-45deg);
}
body.mobile navigation-bar {
  padding: var(--gutter1) 0;
}
body.mobile navigation-bar li.menu {
  display: block;
  height: 40px;
}
@media (min-width: 980px) and (max-width: 1200px) {
  body.mobile navigation-bar .button.search {
    --font-size: 0.8em;
    --padding: 4px 10px;
  }
  body.mobile navigation-bar li.menu {
    display: flex;
    align-items: center;
  }
  body.mobile navigation-bar li.menu button.menu {
    height: 30px;
    width: 30px;
  }
}
body.mobile navigation-bar a.logo {
  max-width: initial;
  width: 200px;
  min-width: initial;
}
body.mobile navigation-bar nav main-menu .top-level-link,
body.mobile navigation-bar nav secondary-menu {
  display: none;
}
body.mobile navigation-bar nav main-menu > ul li.search span,
body.mobile navigation-bar nav main-menu > ul li[data-nav=submenu] {
  display: block;
}
@media (max-width: 980px) {
  body.mobile navigation-bar nav main-menu > ul li.search span {
    display: none;
  }
}

dropdown-menu {
  --min-height: 430px;
  --max-height: 600px;
  --dropdown-group-nav-width: 270px;
  --dropdown-image-width: 300px;
  --dropdown-image-height: 80px;
  --dropdown-open-offset: 6px;
  position: absolute;
  top: calc(100% - var(--marker-line-thickness) - 1px);
  background-color: white;
  border-radius: var(--border-radius, 6px);
  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
  display: grid;
  grid-template-columns: var(--dropdown-group-nav-width) 1fr;
  pointer-events: none;
  opacity: 0;
  margin-top: 0px;
  overscroll-behavior: contain;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), margin-top 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  font-size: 16px;
}
navigation-bar nav main-menu.active .top-level-links .top-level-link .link.current::after {
  opacity: 0;
}
navigation-bar nav main-menu.active dropdown-menu {
  margin-top: var(--dropdown-open-offset);
  opacity: 1;
  pointer-events: all;
}

dropdown-menu::after {
  content: "";
  width: 100%;
  height: calc(var(--marker-line-thickness));
  position: absolute;
  left: 0;
  top: 0px;
  z-index: 5;
  background-color: #DF3035;
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
}
body.mobile navigation-bar dropdown-menu {
  --dropdown-open-offset: var(--gap);
  width: var(--dropdown-group-nav-width) !important;
  right: 0;
}
@media (max-width: 480px) {
  body.mobile navigation-bar dropdown-menu {
    --dropdown-group-nav-width: calc(100vw - var(--gutter3)) !important;
  }
}

dropdown-group {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  overflow-x: hidden;
  background-color: white;
  opacity: 0;
  height: inherit;
  pointer-events: none;
  will-change: transform;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);
}
dropdown-group[data-level="0"] {
  z-index: 5;
}
dropdown-group[data-level="1"] {
  z-index: 4;
}
dropdown-group[data-level="2"] {
  z-index: 3;
}
dropdown-group[data-level="3"] {
  z-index: 2;
}
dropdown-group[data-level="4"] {
  z-index: 1;
}
dropdown-group::-webkit-scrollbar {
  width: 0.9em;
  height: 0.9em;
}
dropdown-group::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}
dropdown-group::-webkit-scrollbar-thumb {
  background-color: #969695;
  border-radius: 10px;
  border: 4px solid rgba(0, 0, 0, 0);
  background-clip: padding-box;
  background-color: rgba(0, 0, 0, 0.15);
}
dropdown-group::-webkit-scrollbar-track {
  background-color: transparent;
}
dropdown-group::-webkit-scrollbar-corner {
  background-color: transparent;
}
dropdown-group::-webkit-scrollbar-track {
  border-radius: 10px;
}
dropdown-group .link {
  --font-size: 0.9em;
  display: flex;
  position: relative;
  align-items: center;
  text-align: left;
  line-height: 1.4;
  padding: 4px calc(var(--gap) * 2);
  width: 100%;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  justify-content: space-between;
}
dropdown-group .link.current {
  color: #DF3035;
}
dropdown-group .link.active {
  color: white;
  background-color: #131f6b;
  z-index: 1;
}
:root:not([data-browser-feature*=touch]) dropdown-group .link.active::after {
  content: "";
  display: block;
  position: absolute;
  transform: translateY(-50%) rotate(-45deg);
  left: calc(100% - 50px);
  top: 50%;
  width: 100px;
  height: 100px;
}

:not([data-browser-feature*=touch]) dropdown-group .last .link.active::after {
  transform: translateY(-100%) rotate(0deg) skew(-45deg, 0);
}

dropdown-group .link.has-children svg {
  margin-left: calc(var(--gap) * 0.5);
}
@media (hover: hover) {
  dropdown-group .link:hover {
    color: white;
    background-color: #131f6b;
  }
}
dropdown-group ul {
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
}
dropdown-group ul li.first {
  padding-top: var(--gap);
}
dropdown-group ul li.last {
  padding-bottom: var(--gap);
}
dropdown-group ul li.overview {
  margin-top: var(--gap);
}
@media (max-width: 768px) {
  dropdown-group ul li.overview ~ .first {
    padding-top: 0;
  }
}
dropdown-group ul li.overview .link {
  color: #131f6b;
  font-weight: bold;
}
@media (hover: hover) {
  dropdown-group ul li.overview .link:hover {
    color: white;
  }
}
dropdown-group ul li.overview .link.active {
  color: white;
}
:root:not([data-browser-feature*=touch]) dropdown-group ul li.overview {
  display: none;
}

dropdown-group ul li.back {
  padding-top: var(--gap);
}
:root:not([data-browser-feature*=touch]) dropdown-group ul li.back {
  display: none;
}

dropdown-group ul li.back .link svg {
  margin-right: 0.4em;
  margin-left: 0;
}
dropdown-group[data-level="1"] {
  border-top-left-radius: var(--border-radius, 6px);
  border-bottom-left-radius: var(--border-radius, 6px);
}
dropdown-group[data-level="1"] li.back {
  display: none;
}
dropdown-group[data-level="2"] {
  width: 95%;
  left: 100%;
  opacity: 0;
  transform: translateX(-5%);
  background-color: #F4F4F4;
}
dropdown-group[data-level="3"] {
  width: calc(95% + 2px);
  opacity: 0;
  left: calc(195% - 1px);
  border-top-right-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
  transform: translateX(-5%);
  background-color: #fafafa;
  transition-delay: 0.3s, 0.3s;
}
dropdown-group.allow-scroll {
  overflow-y: auto;
}
dropdown-group.active {
  opacity: 1;
  pointer-events: all;
}
dropdown-group.active[data-level="2"], dropdown-group.active[data-level="3"] {
  transform: translateX(0%);
}
dropdown-group:not(.active)[data-level="1"], dropdown-group:not(.active)[data-level="2"], dropdown-group:not(.active)[data-level="3"] {
  left: 0%;
  transform: translateX(0%);
}
body:not(.mobile) navigation-bar dropdown-group:not([data-level="1"]) .link {
  padding-top: 6px;
  padding-bottom: 6px;
}

body.mobile navigation-bar dropdown-group {
  border-radius: var(--border-radius, 6px) var(--border-radius, 6px) 0 0 !important;
  left: 0 !important;
  width: inherit !important;
  transition-duration: 0.5s, 0.5s;
  transform: initial !important;
}
body.mobile navigation-bar dropdown-group[data-level="0"] {
  z-index: 1;
}
body.mobile navigation-bar dropdown-group[data-level="1"] {
  z-index: 2;
}
body.mobile navigation-bar dropdown-group[data-level="2"] {
  z-index: 3;
}
body.mobile navigation-bar dropdown-group[data-level="3"] {
  z-index: 4;
}
body.mobile navigation-bar dropdown-group[data-level="4"] {
  z-index: 5;
}
body.mobile navigation-bar dropdown-group .link {
  --font-size: 1em;
  padding-top: calc(var(--gap) * 0.5);
  padding-bottom: calc(var(--gap) * 0.5);
}
body.mobile navigation-bar dropdown-group ul li.overview, body.mobile navigation-bar dropdown-group ul li.back {
  display: block !important;
}

dropdown-image {
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
  height: 100%;
  grid-column: 2;
  background-color: #F4F4F4;
  border-bottom-right-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  display: grid;
  justify-items: flex-end;
}
dropdown-image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
dropdown-image .image {
  width: clamp(var(--dropdown-image-width) / 2, 30vw, var(--dropdown-image-width));
  grid-row: 1;
  grid-column: 1;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);
  opacity: 0;
}
dropdown-image .image.active {
  opacity: 1;
  pointer-events: all;
}
dropdown-image .image.active img {
  opacity: 1;
}
body.mobile navigation-bar dropdown-image {
  grid-column: 1;
  z-index: 10;
  width: inherit;
  height: var(--dropdown-image-height);
  border-top-right-radius: initial;
  border-bottom-left-radius: var(--border-radius, 6px);
}
body.mobile navigation-bar dropdown-image .image {
  width: inherit;
  height: inherit;
}

.header {
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
}
.header > h1 sup {
  font-size: 0.6em;
}
.header > h1 span {
  display: block;
  font-size: 0.375em;
  color: #969695;
}
.header > h1 + *, .header > h2 + * {
  margin-top: var(--gutter1);
}
.header > h1 + h2 {
  margin-top: var(--gutter0);
}
.header > h2 {
  color: var(--sub-heading-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.header > h2 a {
  --font-colour: var(--sub-heading-colour);
  text-decoration: underline;
}
@media (hover: hover) {
  .header > h2 a:hover {
    --font-colour: var(--primary, #131f6b);
  }
}
.header time {
  border-radius: var(--border-radius, 6px);
  margin: var(--gutter1) 0;
  padding: 4px 8px;
  background-color: #F4F4F4;
  border: 1px solid #dcdcdc;
  font-size: 0.75em;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  border-radius: 4px;
  border-left: 4px solid var(--tag-colour, #DF3035);
}
.header button-container {
  margin-bottom: calc(var(--gap) * -1);
  margin-top: var(--spacer0);
}
@media (max-width: 480px) {
  .header button-container .button span {
    white-space: normal;
  }
}
.header notice-messages {
  margin-top: var(--spacer0);
}
.header.dark {
  --heading-colour:white;
  --sub-heading-colour:white;
}
.header.dark .button.brochure {
  --font-colour:white;
}
.header.dark .button.brochure svg {
  fill: white;
}
.header.no-devider-line ~ main {
  --border-top-colour: rgba(255, 255, 255, 0.2);
}
.header.no-devider-line ~ main > .content-block:first-of-type {
  padding-top: 0;
  box-shadow: initial;
}

footer#footer {
  --font-colour: white;
  font-size: 0.875em;
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer1);
  background-color: var(--primary, #131f6b);
  grid-gap: var(--gutter1);
  display: grid;
  position: relative;
  align-items: flex-start;
  grid-template-columns: 1fr 300px;
}
footer#footer a {
  text-decoration: none;
  position: relative;
  display: block;
  color: var(--font-colour);
}
@media (hover: hover) {
  footer#footer a:hover {
    color: #e44f53;
  }
}
footer#footer a.current {
  color: #e44f53;
}
footer#footer a.current {
  pointer-events: none;
}
footer#footer .back-to-top {
  width: -moz-fit-content;
  width: fit-content;
  margin: calc(var(--gap) * -1) auto var(--gap) auto;
}
@media (min-width: 481px) {
  footer#footer .back-to-top {
    display: none;
  }
}
footer#footer .tag-line-sign-off {
  grid-column: 1/-1;
  display: flex;
  justify-content: center;
  margin-bottom: var(--spacer0);
  font-size: 2em;
  line-height: 1.3;
}
@supports (width: clamp(1px, 5vw, 10px)) {
  footer#footer .tag-line-sign-off tag-line span {
    font-size: clamp(12px, 1.5vw, 0.4em);
  }
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  @media (max-width: 950px) {
    footer#footer .tag-line-sign-off tag-line span {
      font-size: 12px;
    }
  }
  @media (min-width: 1601px) {
    footer#footer .tag-line-sign-off tag-line span {
      font-size: 0.4em;
    }
  }
}
@media (max-width: 900px) {
  footer#footer .tag-line-sign-off tag-line {
    flex-direction: row;
    margin: 0;
  }
}
@media (max-width: 900px) and (max-width: 600px) {
  footer#footer .tag-line-sign-off tag-line {
    flex-direction: column;
    gap: calc(var(--gap) * 0.5);
  }
  footer#footer .tag-line-sign-off tag-line span {
    font-size: 16px;
  }
}
footer#footer > nav {
  display: grid;
  flex-grow: 1;
  grid-gap: var(--gutter1);
  align-items: flex-start;
  grid-template-columns: 1fr;
}
footer#footer > nav ul {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}
footer#footer > nav ul li + li {
  margin-bottom: calc(var(--gap) * 0.5);
}
footer#footer > nav ul:last-of-type {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(333px, 1fr));
  grid-gap: 0 var(--gap);
}
footer#footer > nav ul:last-of-type li:first-of-type {
  grid-column: 1/-1;
}
footer#footer .heading {
  margin-bottom: var(--gap);
  color: var(--secondary, #DF3035);
  font-weight: bold;
  font-size: 1.0625em;
  line-height: 1.6;
}
footer#footer .heading::before, footer#footer .heading::after {
  display: none;
}
footer#footer .heading a {
  color: var(--secondary, #DF3035);
}
footer#footer company-details {
  display: flex;
  flex-direction: colunm;
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: calc(var(--gap) * 0.5) var(--gap);
}
footer#footer company-details small,
footer#footer company-details .small {
  font-size: 0.625em;
  color: rgba(255, 255, 255, 0.7);
}
footer#footer company-details small br,
footer#footer company-details .small br {
  display: none;
}
footer#footer .base {
  margin-top: var(--spacer1);
  grid-column: 1/-1;
  position: relative;
  display: flex;
  justify-content: space-between;
}
footer#footer .base a.logo {
  width: 100%;
  max-width: 240px;
  position: initial;
}
footer#footer .base a.logo img {
  display: block;
}
@media (min-width: 981px) {
  footer#footer .base a.logo::after {
    content: "";
    background-color: #DF3035;
    height: 3px;
    width: 100%;
    position: absolute;
    bottom: -1.5px;
    left: 0;
  }
}
footer#footer .base a.yello {
  display: flex;
  position: absolute;
  top: calc(100% + var(--gap));
  font-size: 0.875em;
  right: 0;
  color: rgba(255, 255, 255, 0.5);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
footer#footer .base a.yello span {
  margin-left: 0.3em;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  footer#footer .base a.yello:hover {
    color: white;
  }
  footer#footer .base a.yello:hover span {
    color: #FFCB08;
  }
}
footer#footer .base admin-links {
  display: flex;
  position: absolute;
  top: calc(100% + var(--gap));
  left: 0;
}
footer#footer .base admin-links a {
  font-size: 12px;
  margin-right: calc(var(--gap) * 0.5);
}
footer#footer .base:has(.cep-logo) {
  --logo-spacer: 200px;
}
footer#footer .base:has(.cep-logo) .cep-logo {
  filter: grayscale(1) invert(1);
}
@media (min-width: 981px) {
  footer#footer .base:has(.cep-logo) {
    margin-right: var(--logo-spacer);
  }
  footer#footer .base:has(.cep-logo) .cep-logo {
    position: absolute;
    height: calc(100% + calc(var(--gap) * 2));
    top: 0;
    right: calc(var(--logo-spacer) * -1);
  }
}
@media (max-width: 980px) {
  footer#footer .base:has(.cep-logo) .cep-logo {
    margin-bottom: var(--gutter2);
  }
}
@media (max-width: 1400px) {
  footer#footer > nav ul:not(:last-of-type) {
    display: none;
  }
  footer#footer company-details small br {
    display: none;
  }
}
@media (max-width: 980px) {
  footer#footer {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  footer#footer > * {
    width: 100%;
  }
  footer#footer > nav {
    align-items: center;
  }
  footer#footer > nav ul:last-of-type {
    grid-template-columns: unset;
  }
  footer#footer .base {
    flex-direction: column;
    align-items: center;
  }
  footer#footer .base a.logo {
    order: 1;
    width: 160px;
  }
  footer#footer .base a.logo img {
    max-width: 100%;
  }
  footer#footer .base social-media {
    margin-top: var(--spacer0-);
    margin-bottom: var(--spacer0);
  }
  footer#footer .base admin-links {
    order: 3;
    position: initial;
    margin-top: var(--gap);
  }
}

.cl-consent-settings {
  left: unset !important;
  right: var(--gutter1);
  width: 42px;
  height: 42px;
  box-shadow: unset !important;
  bottom: calc(var(--gutter3) * 2.75) !important;
  padding: 0;
}
@media (max-width: 980px) {
  .cl-consent-settings {
    bottom: var(--gutter5) !important;
  }
}

body > background-image {
  pointer-events: none;
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
  --background-theme-one: #131f6b;
  --background-theme-two: #292B68;
}
body > background-image img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.7;
  background: linear-gradient(to bottom, var(--background-theme-one), var(--background-theme-two));
}
body > background-image.none::after {
  content: initial;
}
body > background-image.red {
  --background-theme-one: #DF3035;
  --background-theme-two: #DF3035;
}
body > background-image.black {
  --background-theme-one: #1E1A1A;
  --background-theme-two: #1E1A1A;
}
body > background-image.tile {
  background-repeat: repeat;
  background-size: auto;
}
body > background-image.tile img {
  display: none;
}
body > background-image:not(.tile) {
  max-height: 100vh;
}
body > background-image.behind-header::after {
  opacity: 1;
  background: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-mask-image: linear-gradient(to right, black 20%, transparent 100%);
          mask-image: linear-gradient(to right, black 20%, transparent 100%);
}

body.mobile > background-image, body.mobile > background-video {
  max-height: initial;
}

body > background-video {
  pointer-events: none;
  display: block;
  background-position: var(--position, center 33%);
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}
body > background-video img {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-video video {
  display: block;
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--image-position, center 33.33%);
     object-position: var(--image-position, center 33.33%);
  width: var(--image-size, var(--image-width-size, 100%));
  height: var(--image-size, var(--image-height-size, 100%));
  max-width: var(--image-size, var(--image-width-size, 100%));
  max-height: var(--image-size, var(--image-height-size, 100%));
  top: 0;
  left: 0;
}
body > background-video::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, var(--background-theme-one, transparent), var(--background-theme-two, black));
}

#breadcrumbs-bar {
  background-color: var(--primary, #131f6b);
  display: flex;
  align-items: center;
  transition: height var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), top var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
#breadcrumbs-bar ul {
  display: flex;
  position: relative;
  left: calc(var(--gap) * -1);
  width: 100%;
}
#breadcrumbs-bar ul li {
  align-self: stretch;
  align-items: center;
  position: relative;
}
#breadcrumbs-bar ul li + li {
  margin-left: calc(var(--gap) * -1);
}
#breadcrumbs-bar .link {
  display: flex;
  place-items: center;
  height: 100%;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 1.125em;
  padding: var(--gap);
  text-decoration: none;
  color: white;
}
#breadcrumbs-bar .link svg {
  color: rgba(255, 255, 255, 0.8);
  width: 0.7em;
  height: 0.7em;
  margin-left: var(--gap);
}
@media (hover: hover) {
  #breadcrumbs-bar .link:hover {
    color: var(--secondary, #DF3035);
  }
}
#breadcrumbs-bar .link.current {
  color: var(--secondary, #DF3035);
}
#breadcrumbs-bar .link.current::after {
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: var(--secondary, #DF3035);
  position: absolute;
}

body.mobile > #breadcrumbs-bar {
  max-height: initial;
  display: none;
}

#anchors-bar {
  background-color: #F4F4F4;
  transition: height var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), top var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  display: flex;
  align-items: center;
  max-width: 100vw;
}
#anchors-bar .container {
  display: flex;
  align-items: center;
  overflow: hidden;
  height: 100%;
}
@media (max-width: 1680px) {
  :root:not([data-browser-feature*=touch]) #anchors-bar {
    width: 100vw;
    margin-left: var(--gutter2-);
  }
  :root:not([data-browser-feature*=touch]) #anchors-bar .container {
    overflow-x: auto;
    scroll-behavior: smooth;
    padding-left: var(--gutter1);
    padding-right: var(--gutter1);
  }
}

:root[data-browser-feature*=touch] #anchors-bar {
  width: calc(100% + var(--gutter2) + calc(var(--gap) * 0.5));
  margin-left: var(--gutter1-);
}
:root[data-browser-feature*=touch] #anchors-bar::before {
  content: initial;
}
:root[data-browser-feature*=touch] #anchors-bar .container {
  overflow-x: auto;
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
}

#anchors-bar::before {
  border-bottom: 1px solid #dcdcdc;
}
#anchors-bar a {
  grid-row: 1;
  font-size: 0.875em;
  text-transform: uppercase;
  font-weight: bold;
  white-space: nowrap;
  display: flex;
  place-items: center;
  position: relative;
  height: 100%;
  color: #131f6b;
}
#anchors-bar a + a {
  margin-left: var(--gutter1);
}
@media (hover: hover) {
  #anchors-bar a:hover {
    color: var(--secondary, #DF3035);
  }
}
#anchors-bar a::after {
  content: "";
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: var(--secondary, #DF3035);
  position: absolute;
  transform: scaleY(0);
  transition: transform 0.2s cubic-bezier(0.42, 0, 0.58, 1) 0.2s;
}
#anchors-bar a.current {
  color: var(--secondary, #DF3035);
}
#anchors-bar a.current::after {
  transform: scaleY(1);
}

side-bar > div > * {
  --background-colour: var(--primary, #131f6b);
  order: 3;
  border-radius: var(--border-radius, 6px);
  padding: var(--gutter2);
  background-color: var(--background-colour);
  border: 1px solid var(--border-colour, rgba(255, 255, 255, 0.2));
}
side-bar > div > *:not(.white) {
  --font-colour: white;
  --heading-colour: white;
}
side-bar > div service-centre-finder {
  order: 1;
}
side-bar > div service-centre-finder ~ #grades-sidebar-list {
  order: 2;
}
side-bar > div .heading {
  margin-bottom: var(--gutter0);
  font-size: 1.5625em;
  line-height: 1.6;
}
side-bar > div > div.sidebar-logos {
  --background-colour: transparent;
  padding: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
  justify-content: center;
}
side-bar > div > div.sidebar-logos img {
  max-width: 50%;
  -o-object-fit: contain;
     object-fit: contain;
}
side-bar > div > div.sidebar-logos svg {
  max-width: 150px;
  max-height: 100px;
}
side-bar #powder-tubs,
side-bar #greener-future,
side-bar #liberty-powder {
  position: relative;
  overflow: hidden;
}
side-bar #powder-tubs h3 span,
side-bar #greener-future h3 span,
side-bar #liberty-powder h3 span {
  display: block;
}
side-bar #powder-tubs div,
side-bar #greener-future div,
side-bar #liberty-powder div {
  z-index: 1;
  position: relative;
}
side-bar #powder-tubs .background,
side-bar #greener-future .background,
side-bar #liberty-powder .background {
  opacity: 0.2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 100% 0%;
     object-position: 100% 0%;
}
side-bar #powder-tubs .image img,
side-bar #greener-future .image img,
side-bar #liberty-powder .image img {
  -o-object-fit: contain;
     object-fit: contain;
}
side-bar #liberty-powder {
  background: transparent;
  border: 1px solid #dcdcdc;
}
side-bar #liberty-powder .image {
  height: 60px;
  margin-bottom: calc(var(--gap) * 2);
}
side-bar #liberty-powder .image img {
  width: auto;
}
side-bar #powder-tubs {
  background: #333236;
}
side-bar #powder-tubs h3 {
  padding-bottom: 225px;
  font-size: 22px;
}
side-bar #powder-tubs h3 span {
  color: #DF3035;
}
side-bar #powder-tubs .background {
  opacity: 1;
}
side-bar #powder-tubs .image {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 250px;
  width: 100%;
}
side-bar #powder-tubs .image img {
  width: 100%;
}
@media (min-width: 1120px) {
  side-bar #powder-tubs h3 {
    padding-bottom: 300px;
  }
  side-bar #powder-tubs .image {
    height: 350px;
  }
}
side-bar #greener-future {
  --greener-green: #4ecb3d;
}
side-bar #greener-future h3 {
  margin-bottom: calc(var(--gap) * 2);
}
side-bar #greener-future h3 span {
  color: var(--greener-green);
  line-height: 1;
}
side-bar #greener-future .image {
  height: 90px;
}
side-bar #greener-future .image img {
  width: auto;
}
side-bar #greener-future ul {
  margin-bottom: var(--gap);
}
side-bar #greener-future ul li {
  color: white;
  padding-left: calc(var(--gap) * 2);
  position: relative;
  margin-bottom: var(--gap);
}
side-bar #greener-future ul li:before {
  background: var(--greener-green);
  border-radius: 50%;
  height: 20px;
  width: 20px;
  position: absolute;
  top: 4px;
  left: 0;
  content: "";
}
side-bar #greener-future ul li:after {
  height: 12px;
  width: 6px;
  content: "";
  border-bottom: 2px solid white;
  border-right: 2px solid white;
  position: absolute;
  left: 7px;
  top: 6px;
  transform: rotate(45deg);
}
@media (min-width: 1120px) {
  side-bar #greener-future ul {
    -moz-column-count: 2;
         column-count: 2;
  }
}

.sidebar-block\:local-cta {
  background-color: #676767;
  color: white;
  background-repeat: no-repeat;
  background-position: -1rem bottom;
  background-size: auto 220px;
  display: flex;
  flex-direction: column;
  gap: var(--gutter0);
}
.sidebar-block\:local-cta p {
  font-size: 2rem;
  text-wrap: pretty;
}
@media (width > 1400px) {
  .sidebar-block\:local-cta {
    background-image: url("/assets/uploads/images/20mph-sign.png");
    padding-inline-start: 160px;
  }
}

.sidebar-block\:iso {
  background-color: #74bf03;
  border: initial;
  padding: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  border-radius: var(--border-radius, 6px);
  overflow: hidden;
}
.sidebar-block\:iso img {
  display: block;
  width: 100%;
}

social-media {
  --icon-colour: #FFFFFF;
  --icon-size: 20px;
  display: flex;
  align-items: center;
}
social-media a {
  margin-left: var(--gap);
  display: flex !important;
}
social-media a svg {
  width: var(--icon-size);
  height: var(--icon-size);
  fill: var(--icon-colour);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  social-media a:hover.facebook {
    --icon-colour: #1877f2;
  }
  social-media a:hover.twitter {
    --icon-colour: #1da1f2;
  }
  social-media a:hover.google {
    --icon-colour: #4285f4;
  }
  social-media a:hover.youtube {
    --icon-colour: #ff0000;
  }
  social-media a:hover.linkedin {
    --icon-colour: #007bb5;
  }
  social-media a:hover.instagram {
    --icon-colour: #c32aa3;
  }
  social-media a:hover.pinterest {
    --icon-colour: #bd081c;
  }
  social-media a:hover.dailymotion {
    --icon-colour: #0066DC;
  }
  social-media a:hover.snapchat {
    --icon-colour: #fffc00;
  }
  social-media a:hover.flickr {
    --icon-colour: #f40083;
  }
  social-media a:hover.vimeo {
    --icon-colour: #1ab7ea;
  }
  social-media a:hover.thumbler {
    --icon-colour: #35465d;
  }
  social-media a:hover.reddit {
    --icon-colour: #ff4500;
  }
  social-media a:hover.whatsapp {
    --icon-colour: #25d366;
  }
  social-media a:hover.skype {
    --icon-colour: #00aff0;
  }
  social-media a:hover.discord {
    --icon-colour: #7289da;
  }
}
social-media a span {
  display: none;
}

.article {
  display: flex;
}
.article .container {
  display: flex;
  flex-direction: column;
  padding: var(--gutter1);
  background-color: white;
  border: 1px solid #F4F4F4;
  border-radius: var(--border-radius, 6px);
  overflow: hidden;
  align-content: flex-start;
  width: 100%;
}
.article .container > * {
  order: 2;
  margin-bottom: var(--gap);
}
.article .container .heading {
  font-size: 1.5625em;
  line-height: 1.6;
  line-height: 1.2;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
.article .container .subheading {
  font-size: 1.0625em;
  line-height: 1.6;
  color: #6A6A6A;
  max-width: 75ch;
  margin-bottom: auto;
}
.article .container .subheading + .timestamp {
  margin-top: var(--gap);
}
.article .container .introduction {
  font-size: 0.875em;
  max-width: 75ch;
}
.article .container .button {
  justify-self: flex-start;
  margin-bottom: 0;
  margin-top: auto;
}
.article .container time {
  font-weight: bold;
  font-size: 0.875em;
}
.article .container .author {
  --photo-size: 40px;
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: center;
}
.article .container .author .name {
  font-weight: bold;
  white-space: nowrap;
  color: #131f6b;
  font-size: 0.875em;
  line-height: 1.4;
  order: 1;
  min-height: var(--photo-size);
  display: flex;
  align-items: center;
}
.article .container .author .name em {
  font-size: 0.75em;
  margin-right: 5px;
}
.article .container .author .timestamp {
  white-space: nowrap;
  font-size: 0.875em;
  line-height: 1.4;
  order: 2;
}
.article .container .author .timestamp, .article .container .author .timestamp ~ .name {
  min-height: calc(var(--photo-size) / 2);
}
.article .container .author .image {
  width: var(--photo-size);
  height: var(--photo-size);
  top: calc(50% - var(--photo-size) / 2);
  border-radius: 50%;
  left: 0;
  position: absolute;
  border: 1px solid #dcdcdc;
}
.article .container .author .image ~ * {
  padding-left: calc(var(--photo-size) + var(--gap));
}
.article .container > .image {
  order: 1;
  margin-bottom: var(--gutter1);
  height: var(--image-height, 180px);
  width: calc(100% + var(--gutter3));
  left: var(--gutter1-);
  margin-top: var(--gutter1-);
}
.article a {
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  .article a:hover {
    border-color: var(--primary, #131f6b);
  }
}
.article[data-contains*=title][data-contains*=timestamp][data-contains*=author][data-contains*=button][data-contains*=image]:not([data-contains*=subheading]):not([data-contains*=introduction]) .container .timestamp {
  margin-top: auto;
}

.article[data-contains*=title][data-contains*=image]:not([data-contains*=timestamp]):not([data-contains*=author]):not([data-contains*=button]):not([data-contains*=subheading]):not([data-contains*=introduction]) .container .heading {
  margin-bottom: auto;
  font-size: 1.5625em;
  line-height: 1.6;
  line-height: 1.2;
}
.article[data-contains*=title][data-contains*=image]:not([data-contains*=timestamp]):not([data-contains*=author]):not([data-contains*=button]):not([data-contains*=subheading]):not([data-contains*=introduction]) .container > .image {
  --image-height: 130px;
}

.article[data-contains*=serviceCentres] .container div {
  margin-bottom: var(--gap);
}
.article[data-contains*=serviceCentres] .container h4 {
  margin-bottom: 0;
}

tag-line {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  gap: var(--gap);
  font-weight: 400;
  letter-spacing: 5px;
  font-size: 1.5625em;
  line-height: 1.6;
}
tag-line span {
  display: flex;
  align-items: center;
  font-size: 0.5em;
  color: white;
  grid-row: 1;
  line-height: 2;
}
tag-line svg {
  color: #DF3035;
  display: block;
  width: 24px;
  height: 24px;
  margin-right: var(--gap);
}
@media (max-width: 800px) {
  tag-line {
    gap: calc(var(--gap) * 0.5);
    margin: var(--spacer0) 0;
  }
  tag-line span {
    letter-spacing: 1px;
  }
  tag-line svg {
    margin-right: calc(var(--gap) * 0.5);
  }
}

side-bar form .freeform-form-success {
  background-color: #50BC08;
  color: white;
  width: calc(100% + 30px);
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin: 0 -15px var(--gap);
}
side-bar form .submit-row {
  margin-top: var(--gap);
}

form select {
  --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;
  -webkit-appearance: none;
  background-repeat: no-repeat;
  background-position: calc(100% - var(--gap)) center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17.4' height='10.1'%3E%3Cpath d='M16.7.7l-8 8-8-8' fill='none' stroke='%231E1A1A' stroke-width='2' stroke-miterlimit='10'/%3E%3C/svg%3E");
}
form select::-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, );
}
form select::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form select:focus {
  outline-color: #131f6b;
}
form select:focus::-moz-placeholder {
  color: transparent;
}
form select:focus::placeholder {
  color: transparent;
}
form select.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:not([type=checkbox]):not([type=radio]) {
  --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;
}
form input:not([type=checkbox]):not([type=radio])::-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, );
}
form input:not([type=checkbox]):not([type=radio])::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form input:not([type=checkbox]):not([type=radio]):focus {
  outline-color: #131f6b;
}
form input:not([type=checkbox]):not([type=radio]):focus::-moz-placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]):focus::placeholder {
  color: transparent;
}
form input:not([type=checkbox]):not([type=radio]).autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form textarea {
  --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;
}
form textarea::-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, );
}
form textarea::placeholder {
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
form textarea:focus {
  outline-color: #131f6b;
}
form textarea:focus::-moz-placeholder {
  color: transparent;
}
form textarea:focus::placeholder {
  color: transparent;
}
form textarea.autocomplete:not([value=""]):focus {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
form input:-webkit-autofill,
form input:-webkit-autofill:hover,
form input:-webkit-autofill:focus,
form textarea:-webkit-autofill,
form textarea:-webkit-autofill:hover,
form textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--font-colour, inherit);
  -webkit-box-shadow: 0 0 0px 1000px var(--background-colour, white) inset;
}
form[data-freeform] label + div {
  font-size: 0.75em;
  margin-bottom: calc(var(--gap) * 0.5);
}
form[data-freeform] .freeform-row + .freeform-row > div {
  margin-top: var(--gap);
}
form[data-freeform] .freeform-column {
  margin: 0;
  padding: 0;
}
side-bar form label {
  color: white;
}
side-bar form label ~ div {
  color: white;
}

form#login {
  display: flex;
  flex-direction: column;
}
form#login > label ~ label {
  margin-top: var(--gap);
}
form#login div {
  display: flex;
  justify-content: space-between;
  margin-top: var(--gap);
  font-size: 0.75em;
}
@media (hover: hover) {
  form#login div a:hover {
    color: #DF3035;
  }
}
form#login button {
  margin-top: var(--gap);
}

form#reset-password {
  background-color: #131f6b;
  border-radius: var(--border-radius, 6px);
  color: white;
  padding: var(--gutter1);
  display: flex;
  flex-direction: column;
}
form#reset-password button {
  margin-top: var(--gap);
}

required-notice {
  display: block;
  width: 5px;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
  background: var(--notice-colour, #50BC08);
  border-top-right-radius: 6px;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  border-bottom-right-radius: 6px;
}
required-notice span {
  pointer-events: none;
  white-space: nowrap;
  font-size: 0.75em;
  top: 50%;
  right: calc(100% + calc(var(--gap) * 0.5));
  border: 1px solid #dcdcdc;
  border-radius: 4px;
  background-color: white;
  padding: 4px calc(var(--gap) * 0.5);
  position: absolute;
  opacity: 0;
  transform: translate(10px, -50%);
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
@media (hover: hover) {
  required-notice:hover span {
    transform: translate(0px, -50%);
    opacity: 1;
  }
}

form[data-handle=contactUs] .freeform-form-success,
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-success,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #50BC08;
  color: white;
  grid-column: 1/-1;
  width: 100%;
  padding: calc(var(--gap) * 0.5) var(--gap);
  border-radius: var(--border-radius, 6px);
  margin-bottom: var(--gutter1);
}
form[data-handle=contactUs] .freeform-form-errors,
form[data-handle=powderContact] .freeform-form-errors {
  background-color: #DF3035;
}
form[data-handle=contactUs] .form-fields,
form[data-handle=powderContact] .form-fields {
  display: grid;
  grid-gap: var(--gutter1) var(--gutter1);
}
@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields,
  form[data-handle=powderContact] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child,
  form[data-handle=powderContact] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d,
  form[data-handle=powderContact] .form-fields .freeform-row.first-name,
  form[data-handle=powderContact] .form-fields .freeform-row.last-name,
  form[data-handle=powderContact] .form-fields .freeform-row.email,
  form[data-handle=powderContact] .form-fields .freeform-row.company-name,
  form[data-handle=powderContact] .form-fields .freeform-row.contact-no,
  form[data-handle=powderContact] .form-fields .freeform-row.y-rqg181k-d {
    grid-column: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry,
  form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2;
    grid-row: 2/span 5;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.submit-row,
  form[data-handle=powderContact] .form-fields .freeform-row.submit-row {
    grid-column: 2;
  }
  form[data-handle=contactUs] .form-fields button[type=submit],
  form[data-handle=powderContact] .form-fields button[type=submit] {
    align-self: flex-end;
  }
}
form[data-handle=contactUs] .form-fields h2,
form[data-handle=powderContact] .form-fields h2 {
  display: flex;
  align-items: center;
}
form[data-handle=contactUs] .form-fields h2 svg.email,
form[data-handle=powderContact] .form-fields h2 svg.email {
  width: 1em;
  margin-right: 0.5em;
  height: 1em;
  fill: #DF3035;
}
form[data-handle=contactUs] .form-fields .freeform-row,
form[data-handle=powderContact] .form-fields .freeform-row {
  display: flex;
  flex-direction: column;
  position: relative;
  grid-column: 1/span 2;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-instructions,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-instructions {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry textarea,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry textarea {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row.detailsofenquiry .freeform-column {
  height: 100%;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column,
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column {
  margin: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
form[data-handle=contactUs] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label),
form[data-handle=powderContact] .form-fields .freeform-row .freeform-column label:not(.freeform-input-only-label) {
  display: none;
}
form[data-handle=contactUs] .form-fields .freeform-row.service-centre-contact, form[data-handle=contactUs] .form-fields .freeform-row.lead-status, form[data-handle=contactUs] .form-fields .freeform-row.internal-notes, form[data-handle=contactUs] .form-fields .freeform-row.order-value,
form[data-handle=powderContact] .form-fields .freeform-row.service-centre-contact,
form[data-handle=powderContact] .form-fields .freeform-row.lead-status,
form[data-handle=powderContact] .form-fields .freeform-row.internal-notes,
form[data-handle=powderContact] .form-fields .freeform-row.order-value {
  display: none;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label {
  font-size: 0.875em;
  grid-column: 1;
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input {
  width: 20px;
  height: 20px;
  margin-right: calc(var(--gap) * 0.5);
}
form[data-handle=contactUs] .form-fields label.freeform-input-only-label input:checked,
form[data-handle=powderContact] .form-fields label.freeform-input-only-label input:checked {
  background-color: #50BC08;
}
form[data-handle=contactUs] .form-fields select,
form[data-handle=contactUs] .form-fields textarea,
form[data-handle=contactUs] .form-fields input:not([type=submit]),
form[data-handle=powderContact] .form-fields select,
form[data-handle=powderContact] .form-fields textarea,
form[data-handle=powderContact] .form-fields input:not([type=submit]) {
  --border-colour: none;
  --background-colour: white;
}
form[data-handle=contactUs] .freeform-errors,
form[data-handle=powderContact] .freeform-errors {
  color: #DF3035;
  font-weight: bold;
  font-size: 0.625em;
  padding: 2px var(--gap);
  position: absolute;
  top: calc(100% - 4px);
  background-color: #DF3035;
  color: white;
  width: 100%;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}
@media (max-width: 400px) {
  form[data-handle=contactUs] button[type=submit],
  form[data-handle=powderContact] button[type=submit] {
    width: 100%;
  }
}
form[data-handle=contactUs] .freeform-input[required]:not(:valid) ~ required-notice,
form[data-handle=powderContact] .freeform-input[required]:not(:valid) ~ required-notice {
  --notice-colour: #DF3035;
}
form[data-handle=contactUs]:not(:valid) button[type=submit],
form[data-handle=powderContact]:not(:valid) button[type=submit] {
  pointer-events: none;
  --background-colour: transparent;
  --font-colour: #969695;
  --border-colour: #969695;
  --hover-background-colour: #969695;
  --hover-font-colour: #969695;
  --hover-border-colour: transparent;
}
form[data-handle=contactUs] .service-centre,
form[data-handle=powderContact] .service-centre {
  display: none !important;
}

@media (min-width: 601px) {
  form[data-handle=contactUs] .form-fields {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  }
  form[data-handle=contactUs] .form-fields .freeform-row:first-child {
    grid-row: 1;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.first-name, form[data-handle=contactUs] .form-fields .freeform-row.last-name, form[data-handle=contactUs] .form-fields .freeform-row.email, form[data-handle=contactUs] .form-fields .freeform-row.company-name, form[data-handle=contactUs] .form-fields .freeform-row.contact-no, form[data-handle=contactUs] .form-fields .freeform-row.y-rqg181k-d, form[data-handle=contactUs] .form-fields .freeform-row.product {
    grid-column: 1/2;
  }
  form[data-handle=contactUs] .form-fields .freeform-row.detailsofenquiry {
    grid-column: 2/-1;
    grid-row: 2/span 6;
  }
}

body#edit form textarea,
body#edit form select,
body#edit form input {
  border: 1px solid black;
}
body#edit form .submit-row {
  order: 20;
}
body#edit form .freeform-row {
  display: none;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .detailsofenquiry,
body#edit form .service-centre-contact,
body#edit form .lead-status,
body#edit form .internal-notes,
body#edit form .order-value,
body#edit form .submit-row {
  display: block;
}
body#edit form .first-name .freeform-column select,
body#edit form .first-name .freeform-column textarea,
body#edit form .first-name .freeform-column input,
body#edit form .last-name .freeform-column select,
body#edit form .last-name .freeform-column textarea,
body#edit form .last-name .freeform-column input,
body#edit form .email .freeform-column select,
body#edit form .email .freeform-column textarea,
body#edit form .email .freeform-column input,
body#edit form .product .freeform-column select,
body#edit form .product .freeform-column textarea,
body#edit form .product .freeform-column input,
body#edit form .detailsofenquiry .freeform-column select,
body#edit form .detailsofenquiry .freeform-column textarea,
body#edit form .detailsofenquiry .freeform-column input,
body#edit form .service-centre-contact .freeform-column select,
body#edit form .service-centre-contact .freeform-column textarea,
body#edit form .service-centre-contact .freeform-column input,
body#edit form .lead-status .freeform-column select,
body#edit form .lead-status .freeform-column textarea,
body#edit form .lead-status .freeform-column input,
body#edit form .internal-notes .freeform-column select,
body#edit form .internal-notes .freeform-column textarea,
body#edit form .internal-notes .freeform-column input,
body#edit form .order-value .freeform-column select,
body#edit form .order-value .freeform-column textarea,
body#edit form .order-value .freeform-column input,
body#edit form .submit-row .freeform-column select,
body#edit form .submit-row .freeform-column textarea,
body#edit form .submit-row .freeform-column input {
  display: block !important;
  visibility: visible !important;
}
body#edit form .detailsofenquiry {
  grid-row: 1/span 6;
}
body#edit form .first-name,
body#edit form .last-name,
body#edit form .email,
body#edit form .product,
body#edit form .service-centre-contact {
  pointer-events: none;
}
body#edit form .first-name select,
body#edit form .first-name textarea,
body#edit form .first-name input,
body#edit form .last-name select,
body#edit form .last-name textarea,
body#edit form .last-name input,
body#edit form .email select,
body#edit form .email textarea,
body#edit form .email input,
body#edit form .product select,
body#edit form .product textarea,
body#edit form .product input,
body#edit form .service-centre-contact select,
body#edit form .service-centre-contact textarea,
body#edit form .service-centre-contact input {
  background-color: #eee;
}
body#edit form .detailsofenquiry {
  pointer-events: all;
}
body#edit form .detailsofenquiry textarea {
  background-color: #eee;
}
body#edit form .service-centre-contact .freeform-column label,
body#edit form .lead-status .freeform-column label,
body#edit form .internal-notes .freeform-column label,
body#edit form .order-value .freeform-column label {
  display: block !important;
  visibility: visible !important;
}

modal-wrapper {
  --wrapper-background-colour: rgba(255, 255, 255, 0.95);
  --container-background-colour: white;
  --min-width:300px;
  --max-width:1120px;
  --width:clamp(var(--min-width), 90vw, fit-content);
  --min-height:600px;
  --max-height:calc(100vh - var(--gutter2));
  --height:clamp(var(--min-height), 90vw, fit-content);
  --close-button-size: 30px;
  --nav-button-size: 40px;
  position: fixed;
  inset: 0;
  height: 100%;
  width: 100%;
  background-color: var(--wrapper-background-colour);
  z-index: 10;
  display: flex;
  place-items: center;
  place-content: center;
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1);
  overscroll-behavior: contain;
}
@supports (--v:-webkit-fill-available ) {
  modal-wrapper {
    --max-height:-webkit-fill-available;
  }
}
modal-wrapper.loading {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1) 0.3s;
}
modal-wrapper.loading modal-container {
  opacity: 0;
  transform: translateY(2vh);
  transition: opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1), transform 0.3s cubic-bezier(0.895, 0.03, 0.685, 0.22);
}
modal-wrapper button.close {
  position: absolute;
  top: var(--gutter1);
  right: var(--gutter1);
  width: var(--close-button-size);
  height: var(--close-button-size);
}
modal-wrapper button.close svg {
  border: 2px solid var(--secondary, #DF3035);
  border-radius: 50%;
  --fill:var(--secondary, #DF3035);
}
modal-wrapper button.close svg circle, modal-wrapper button.close svg path {
  transition: 0.3s cubic-bezier(0.42, 0, 0.58, 1);
}
@media (hover: hover) {
  modal-wrapper button.close:hover svg {
    --fill:white;
    --stroke:var(--secondary, #DF3035);
  }
}
modal-wrapper button.navigation {
  position: absolute;
  width: var(--nav-button-size);
  height: var(--nav-button-size);
  top: calc(50% - var(--nav-button-size) / 2);
  background-color: var(--secondary, #DF3035);
  border-radius: 50%;
  border: 2px solid var(--secondary, #DF3035);
  color: white;
  display: flex;
  place-content: center;
  place-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
modal-wrapper button.navigation.previous {
  left: var(--gutter1);
}
modal-wrapper button.navigation.next {
  right: var(--gutter1);
}
modal-wrapper button.navigation svg {
  width: 50%;
  height: 50%;
}
@media (hover: hover) {
  modal-wrapper button.navigation:hover {
    transform: scale(1.1);
    color: var(--secondary, #DF3035);
    background-color: white;
  }
}

modal-container {
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1) 0.3s, transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
  width: var(--width);
  height: var(--height);
  max-height: var(--max-height);
  max-width: var(--max-width);
  border: 1px solid #dcdcdc;
  border-radius: var(--border-radius, 6px);
  background-color: var(--container-background-colour);
  position: relative;
  display: flex;
  flex-direction: column;
  margin: var(--gutter1);
  overscroll-behavior: contain;
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  modal-container {
    --width: 60vw;
    max-width: var(--max-width);
    min-width: var(--min-width);
    --height: 80vw;
    max-height: var(--max-height);
    min-height: var(--min-height);
  }
}
modal-container:empty {
  width: calc(var(--max-width) / 2);
  height: calc(var(--max-height) / 2);
}
modal-container:empty:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, #969695);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
  opacity: 1;
  animation-play-state: running;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
modal-container > button.close {
  position: relative;
  order: -1;
  align-self: flex-end;
  top: initial;
  right: initial;
  margin-top: calc(-1 * var(--close-button-size) / 2);
  margin-bottom: calc(-1 * var(--close-button-size) / 2);
  margin-right: calc(-1 * var(--close-button-size) / 2);
}

modal-content {
  display: block;
  position: sticky;
  overscroll-behavior: contain;
  width: inherit;
  height: inherit;
  max-height: inherit;
  max-width: inherit;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--gutter1);
}
modal-content > * {
  max-width: 100%;
}

modal-wrapper[data-type=image] .image {
  max-height: calc(var(--max-height) - var(--gutter6));
  border: none;
}
modal-wrapper[data-type=image] .image img {
  max-height: calc(100vh - var(--gutter3) - var(--gutter4));
  width: auto;
  height: auto;
  margin: auto;
}

modal-wrapper[data-type=default] modal-content > img[src*=".svg"] {
  width: 100%;
  height: auto;
}

modal-wrapper[data-type=video] {
  --wrapper-background-colour: rgba(0, 0, 0, 0.95);
}
modal-wrapper[data-type=video] modal-container {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  display: block;
  position: relative;
  width: 100%;
  background-color: black;
  background-color: white;
  padding: var(--gap);
}
@supports not (aspect-ratio: 16/9) {
  modal-wrapper[data-type=video] modal-container {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  modal-wrapper[data-type=video] modal-container > * {
    position: absolute;
  }
}
modal-wrapper[data-type=video] modal-container iframe, modal-wrapper[data-type=video] modal-container canvas {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  height: 100% !important;
  width: 100% !important;
}
modal-wrapper[data-type=video] modal-container modal-content {
  height: 100%;
  border-radius: var(--border-radius, 6px);
}

.open-in-modal {
  cursor: pointer;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
.open-in-modal:after {
  --size: 20px;
  content: "";
  position: absolute;
  top: calc(50% - var(--size) / 2);
  left: calc(50% - var(--size) / 2);
  opacity: 0;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 2px solid var(--loader-colour, white);
  border-top-color: transparent;
  border-bottom-color: transparent;
  animation-name: loader-rotate;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
  transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
  animation-play-state: paused;
}
@keyframes loader-rotate {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}
.open-in-modal.loading {
  pointer-events: none;
}
.open-in-modal.loading:after {
  opacity: 1;
  animation-play-state: running;
}

img.open-in-modal, .open-in-modal img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
}

:root {
  --dialog-translate-offset: 1rem;
  --dialog-translate-enter: 0 var(--dialog-translate-offset);
  --dialog-translate-leave: 0 calc(-1 * var(--dialog-translate-offset));
  --dialog-translate-duration: 0.4s;
  --dialog-gap: var(--gutter2);
  --dialog-content-max-width: 1080px;
  --dialog-content-background-colour: white;
  --dialog-backdrop-colour: rgba(0, 0, 0, 0.5);
}

dialog.modal {
  border: none;
  overflow: initial;
  flex-direction: column;
  opacity: 0;
  translate: var(--dialog-translate-enter);
  background-color: transparent;
  transition-property: overlay, display, translate, opacity;
  transition-duration: var(--dialog-translate-duration);
  transition-timing-function: ease-in-out;
  transition-behavior: allow-discrete;
  margin: 0;
  z-index: 999;
  min-width: 100%;
  min-height: 100dvh;
  place-items: center;
  place-content: center;
}
dialog.modal *,
dialog.modal *::before,
dialog.modal *::after, dialog.modal {
  box-sizing: border-box;
}
dialog.modal::backdrop {
  transition-property: overlay, display, opacity;
  transition-duration: var(--dialog-translate-duration);
  transition-behavior: allow-discrete;
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  background-color: var(--dialog-backdrop-colour);
  opacity: 0;
}
dialog.modal .dialog\:contents {
  overflow: auto;
  direction: ltr;
  border-radius: 0.6em;
  max-height: 100dvh;
  padding: var(--dialog-gap);
  background-color: var(--dialog-content-background-colour);
  width: min(100%, var(--dialog-content-max-width));
  overscroll-behavior: contain;
}
dialog.modal[open] {
  opacity: 1;
  translate: 0 0;
  display: flex;
}
@starting-style {
  dialog.modal[open] {
    opacity: 0;
    translate: var(--dialog-translate-leave);
  }
}
dialog.modal[open]::backdrop {
  opacity: 1;
}
@starting-style {
  dialog.modal[open]::backdrop {
    opacity: 0;
  }
}
dialog.modal button.dialog\:close {
  all: unset;
  cursor: pointer;
  margin-block-start: calc(0.5 * var(--dialog-gap));
  place-content: center;
  place-items: center;
  color: white;
  margin-inline: auto;
}
dialog.modal button.dialog\:close span {
  transition: color 0.3s ease-in-out;
}
dialog.modal button.dialog\:close:hover::before {
  opacity: 0.4;
}
dialog.modal button.dialog\:close span:hover {
  color: #7fcff3;
}
dialog.modal button.dialog\:close::before {
  content: "";
  position: fixed;
  top: 50%;
  left: 50%;
  border-radius: 0;
  height: calc(100dvh + var(--dialog-translate-offset));
  width: calc(100dvw + var(--dialog-translate-offset));
  translate: -50% -50%;
  z-index: -1;
  opacity: 0;
  transition: opacity var(--dialog-translate-duration) ease-in-out;
  background-color: var(--dialog-backdrop-colour);
}
:root:has(dialog.modal[open]) [data-modal] {
  pointer-events: none;
}

.content-block {
  display: grid;
  grid-gap: var(--gutter1);
  grid-template-columns: repeat(var(--column-count), 1fr);
}
.content-block:empty {
  display: none;
}
.content-block.blowout.themed ~ .content-block:not(.blowout).themed {
  margin-top: var(--spacer0);
}
.content-block:not(.blowout).themed {
  border-radius: var(--border-radius, 6px);
}
.content-block:not(.blowout).themed:not(:last-of-type) {
  margin-bottom: var(--spacer0);
}
.content-block + .content-block {
  box-shadow: 0px -1px var(--border-top-colour, #dcdcdc);
}
.content-block h2, .content-block h3, .content-block h4, .content-block h5, .content-block h6 {
  margin-bottom: var(--gap);
}
.content-block.grey {
  background: #F4F4F4;
}
.content-block.red {
  background: #DF3035;
}
.content-block.blue {
  background: #131f6b;
}

.text a {
  --font-colour: var(--primary, #131f6b);
}
@media (hover: hover) {
  .text a:hover {
    --font-colour: var(--secondary, #DF3035);
  }
}
.text a a.button {
  text-decoration: none !important;
}
.text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23DF3035' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}
.text ul > li {
  position: relative;
  padding-left: calc(var(--list-style-size, 1em) * 1.8);
}
.text ul > li + li {
  margin-top: var(--line-style-spacing, var(--gap));
}
.text ul > li::before {
  display: inline-block;
  top: 0.1em;
  left: 0;
  position: absolute;
  width: var(--list-style-size, 1em);
  height: var(--list-style-size, 1em);
}
.text ol {
  counter-reset: counter;
}
.text ol > li {
  position: relative;
  display: block;
  padding-left: 22px;
  margin-left: var(--list-style-offset, 0);
}
.text ol > li + li {
  margin-top: calc(var(--gap) * 0.5);
}
.text ol > li::before {
  content: counter(counter) ".";
  counter-increment: counter;
  color: var(--list-style-colour, var(--primary));
  position: relative;
  margin-right: 0.5em;
}
.text p:empty, .text p > br {
  display: none;
}
.text > *:not(:last-child) {
  margin-bottom: var(--gap);
}
.text > * ul, .text > * ol {
  margin-top: var(--gap);
}
.text h2, .text h3, .text h4, .text h5, .text h6 {
  margin-bottom: var(--gap);
}
.text .heading-h3 {
  color: var(--secondary, #DF3035);
}
.text [style*="text-align: center"] {
  width: 100%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}
.text .quotes {
  border-left: 5px solid #dcdcdc;
  padding-left: var(--gap);
  font-style: italic;
}
.text figure {
  display: block;
  border-radius: var(--border-radius, 6px);
  background-color: white;
  padding: var(--gap);
}
.text figure img {
  max-width: 100%;
}
.text hr {
  margin-top: var(--spacer0) !important;
  margin-bottom: var(--spacer0) !important;
}
.text .note {
  margin: calc(var(--gap) * 2) 0;
}

.dark {
  --hr-colour: rgba(255, 255, 255, 0.3);
  --list-style-colour: white;
}
.dark .text {
  color: white;
  --heading-colour:white;
}
.dark .text a.button {
  --font-colour: white;
}
.dark .text a:not(.button) {
  --font-colour: rgba(255, 255, 255, 0.7);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (hover: hover) {
  .dark .text a:not(.button):hover {
    --font-colour: white;
  }
}
.dark.red .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23FFFFFF' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='%23DF3035' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}
.dark.blue .text ul > li::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle fill='%23FFFFFF' cx='8' cy='8' r='8'/%3E%3Cpath fill='none' stroke='%23131F6B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' d='M3.5 8.4l2.7 2.7 6.3-6.3'/%3E%3C/svg%3E");
}

.contains-svgs .text figure {
  display: block;
  margin: 0 auto;
  padding: 0 var(--gap);
}
.contains-svgs .text figure img {
  height: 120px;
}

table-container {
  display: grid;
  grid-gap: var(--gap);
}
table-container > div {
  overflow: auto;
  border-radius: var(--border-radius, 6px);
  display: grid;
}
table-container > div:not(:hover) {
  scroll-behavior: smooth;
}
table-container > div::-webkit-scrollbar {
  width: 0.9em;
  height: 0.9em;
}
table-container > div::-webkit-scrollbar-button {
  width: 0;
  height: 0;
  display: none;
}
table-container > div::-webkit-scrollbar-thumb {
  background-color: #969695;
  border-radius: 10px;
  border: 4px solid rgba(0, 0, 0, 0);
  background-clip: padding-box;
  background-color: rgba(0, 0, 0, 0.15);
}
table-container > div::-webkit-scrollbar-track {
  background-color: transparent;
}
table-container > div::-webkit-scrollbar-corner {
  background-color: transparent;
}
table-container h3 {
  margin-bottom: 0 !important;
}
table-container table.table {
  width: auto;
  grid-row: 1;
  grid-column: 1;
}
table-container table.table.fake {
  pointer-events: none;
  will-change: transform;
  transform: translateX(var(--x));
  width: calc(100% - var(--x));
  overflow: hidden;
  background-color: initial;
}
table-container table.table.fake tbody tr td {
  background: white;
  border-right: 1px #dcdcdc dashed;
}
table-container table.table.fake tbody tr:nth-of-type(odd) td {
  background: #F4F4F4;
}
table-container table.table.fake thead tr th:first-of-type {
  border-right: 1px rgba(255, 255, 255, 0.1) dashed;
}
table-container table.table.fake thead tr th:not(:first-of-type), table-container table.table.fake tbody tr td:not(:first-of-type) {
  visibility: hidden;
}
@supports (writing-mode: vertical-lr) {
  table-container.enable-vertical-headings table.table thead tr th:not(:first-of-type) span {
    display: inline-block;
    writing-mode: vertical-lr;
    max-width: 50px;
    text-align: right;
    transform: rotate(180deg);
  }
}
table-container nav {
  align-items: flex-end;
  justify-content: flex-end;
  grid-row: 1;
  grid-column: 2;
  display: none;
}
table-container nav button.navigation {
  align-self: flex-end;
}
table-container nav button.navigation + button {
  margin-left: calc(var(--gap) * 0.5);
}
table-container nav + div {
  grid-column: 1/span 2;
}
table-container.scrolled-right button.next, table-container.scrolled-left button.previous {
  pointer-events: none;
}
table-container.enable-scroll-buttons nav {
  display: flex;
}
table-container button.navigation {
  --button-size: 40px;
  background-color: white;
  border: 1px solid #dcdcdc;
  border-radius: 50%;
  z-index: 1;
  width: var(--button-size);
  height: var(--button-size);
  position: relative;
  display: flex;
  place-items: center;
  place-content: center;
  align-self: center;
  color: #6A6A6A;
  transition: background-color 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, ), 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.175, 0.885, 0.32, 1.275);
}
table-container button.navigation.previous svg {
  margin-left: -2px;
}
table-container button.navigation.next svg {
  margin-left: 2px;
}
table-container button.navigation svg {
  width: calc(var(--button-size) / 2.5);
  height: calc(var(--button-size) / 2.5);
}
@media (hover: hover) {
  table-container button.navigation:hover {
    transform: scale(1.1);
    background-color: #131f6b;
    color: white;
    opacity: 1 !important;
    border-color: transparent;
  }
}

table.table {
  width: 100%;
  background-color: white;
  border-collapse: collapse;
  border-radius: var(--border-radius, 6px);
  text-align: left;
  position: relative;
  border-collapse: collapse;
}
table.table thead tr th {
  background-color: var(--primary, #131f6b);
  padding: var(--gap);
  color: white;
  white-space: nowrap;
}
table.table thead tr th:first-of-type {
  border-top-left-radius: var(--border-radius, 6px);
  overflow: hidden;
}
table.table thead tr th:last-of-type {
  border-top-right-radius: var(--border-radius, 6px);
  overflow: hidden;
}
table.table tbody tr td {
  padding: calc(var(--gap) * 0.5) var(--gap);
  position: relative;
}
table.table tbody tr td:first-of-type {
  min-width: 200px;
}
table.table tbody tr td strong {
  font-weight: 700;
  color: #6A6A6A;
}
table.table tbody tr td a {
  color: #131f6b;
  text-decoration: underline;
}
@media (hover: hover) {
  table.table tbody tr td a:hover {
    color: #DF3035;
  }
}
table.table tbody tr td svg {
  --fill: var(--primary, #131f6b);
  width: 1em;
  height: 1em;
}
table.table tbody tr td svg.cross {
  --fill: #DF3035;
}
table.table tbody tr td svg.tick {
  --fill: #50BC08;
}
table.table tr {
  position: relative;
}
table.table tr:not(:last-of-type) {
  border-bottom: 1px solid #dcdcdc;
}
table.table tr:nth-of-type(odd) {
  background-color: #F4F4F4;
}
table.table.alternating-row-colours tbody tr:nth-child(odd) {
  background-color: rgba(0, 0, 0, 0.1);
}
table.table.last-column-is-green tbody tr td:last-of-type {
  background-color: #131f6b;
  color: white;
}

.dark table-container > h3, .dark.content-block .tab-content > h3 {
  color: white;
}
.dark table-container > div, .dark.content-block .tab-content > div {
  border-radius: initial;
}
.dark table-container table.table, .dark.content-block .tab-content table.table {
  color: white;
  background-color: initial;
}
.dark table-container table.table tr th, .dark.content-block .tab-content table.table tr th {
  background-color: rgba(255, 255, 255, 0.15);
}
.dark table-container table.table tr, .dark.content-block .tab-content table.table tr {
  border: none !important;
}
.dark table-container table.table tr:nth-of-type(odd), .dark.content-block .tab-content table.table tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.15);
}

figure.image.static {
  border-radius: var(--border-radius, 6px);
  background-color: white;
  border: 1px solid #F4F4F4;
  height: -moz-fit-content;
  height: fit-content;
}
figure.image.static img {
  --image-height-size: auto;
  position: relative;
}
figure.image.static figcaption {
  font-size: 0.75em;
  font-style: italic;
  padding: calc(var(--gap) * 0.5) var(--gap);
}
figure.image.static.no-caption {
  border: none;
}
figure.image.static.crop-image {
  --aspect-ratio: 16/9;
  aspect-ratio: var(--aspect-ratio);
  --aspect-ratio: inherit;
}
figure.image.static.crop-image figcaption {
  bottom: 0;
  position: absolute;
  left: 0;
  width: 100%;
  background-color: white;
}
@supports not (aspect-ratio: 16/9) {
  figure.image.static.crop-image {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  figure.image.static.crop-image > * {
    position: absolute;
  }
}
figure.image.static.crop-image img {
  --image-height-size: 100%;
}

.image.load-in-view img {
  transition: opacity 0.5s cubic-bezier(0.42, 0, 0.58, 1);
}
.image.load-in-view img:not([src]) {
  opacity: 0;
}

images-container {
  width: 100%;
  display: grid;
  grid-gap: var(--gutter0);
  grid-template-columns: repeat(auto-fill, minmax(calc(var(--main-max-width) / (var(--images-per-row) + 1)), 1fr));
}
images-container.crop-images .image {
  --aspect-ratio: 4/3;
  aspect-ratio: var(--aspect-ratio);
  --aspect-ratio: inherit;
}
@supports not (aspect-ratio: 4/3) {
  images-container.crop-images .image {
    aspect-ratio: initial;
    padding-bottom: calc(100% / (var(--aspect-ratio)));
    height: 0;
  }
  images-container.crop-images .image > * {
    position: absolute;
  }
}
images-container.crop-images .image img {
  --image-height-size: 100%;
}
@supports not (aspect-ratio: 1/1) {
  images-container.crop-images .image img {
    position: absolute;
  }
}
images-container.crop-images .image figcaption {
  bottom: 0;
  position: absolute;
  left: 0;
  width: 100%;
  background-color: white;
}

tabbed-content {
  display: flex;
  flex-direction: column;
  width: 100%;
}
tabbed-content > nav button {
  transition: var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content > nav button[aria-selected=true] {
  pointer-events: none;
}
tabbed-content > nav button svg {
  width: 10px;
  height: 10px;
}
tabbed-content summary {
  display: none;
  --font-colour: white;
  --background-colour: var(--primary, #131f6b);
  background-color: var(--background-colour);
  position: relative;
  cursor: pointer;
  padding-top: var(--gap);
  padding-bottom: var(--gap);
  padding-left: var(--gutter1);
  padding-right: var(--gutter1);
  border-radius: var(--border-radius, 6px);
  align-items: center;
  transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), border-radius var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  outline: none;
  justify-content: space-between;
}
tabbed-content summary::marker {
  display: none;
}
tabbed-content summary, tabbed-content summary .heading {
  color: var(--font-colour);
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 1.0625em;
  line-height: 1.6;
}
tabbed-content summary .heading {
  margin-bottom: 0;
}
tabbed-content summary svg {
  height: 8px;
  transition: transform var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  position: absolute;
  right: var(--gutter1);
  top: calc(50% - 4px);
}
tabbed-content summary:hover, tabbed-content details[open] summary:hover {
  --background-colour:#1c2d9c;
}
tabbed-content .tab-content {
  grid-gap: var(--spacer0) 0;
  outline: none;
  position: relative;
  grid-auto-rows: min-content;
}
tabbed-content .tab-content:not([hidden]) {
  display: grid;
}
tabbed-content .tab-content .heading-h4 {
  font-size: 1.5625em;
  line-height: 1.6;
  color: #DF3035;
}
tabbed-content .tab-content .heading-h5 {
  font-size: 1.0625em;
  line-height: 1.6;
}
tabbed-content .tab-content .table-container {
  display: inline-flex;
  flex-direction: column;
}
tabbed-content .tab-content .table-container.halves {
  max-width: 40%;
  margin: 0 5% 0 0;
}
tabbed-content .tab-content .table-container.halves:nth-of-type(2n) {
  margin: 0 0 0 5%;
}
tabbed-content .tab-content .table-container.thirds {
  max-width: 30%;
}
tabbed-content .tab-content .table-container.thirds:nth-of-type(3n - 1) {
  margin: 0 5%;
}
tabbed-content table-container {
  width: 100%;
}
tabbed-content:not([data-style="3"]).in-view > nav button[aria-selected=true] {
  color: var(--secondary, #DF3035);
}
@media (min-width: 980px) and (max-width: 1300px), (max-width: 700px) {
  tabbed-content:not(.markets).allow-breakpoint-restyling {
    grid-gap: var(--gap) !important;
    display: grid;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling > nav {
    display: none !important;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details {
    grid-column: 1/-1;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[hidden] {
    display: block;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details summary {
    display: flex;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content {
    padding: var(--spacer0) var(--gutter1) !important;
    border-bottom: 1px solid #dcdcdc;
    border-left: 1px solid #dcdcdc;
    border-right: 1px solid #dcdcdc;
    overflow: hidden;
    background-color: white;
    border-bottom-left-radius: var(--border-radius, 6px);
    border-bottom-right-radius: var(--border-radius, 6px);
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content > * {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
    opacity: 0;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details .tab-content figure.image {
    flex-direction: column;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] summary {
    --background-colour:#0f1956;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] summary svg {
    transform: rotate(180deg);
  }
  tabbed-content:not(.markets).allow-breakpoint-restyling details[open] .tab-content > * {
    opacity: 1;
  }
}
tabbed-content[data-style="4"].allow-breakpoint-restyling {
  grid-gap: var(--gap) !important;
  display: grid;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling > nav {
  display: none !important;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details {
  grid-column: 1/-1;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[hidden] {
  display: block;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details summary {
  display: flex;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content {
  padding: var(--spacer0) var(--gutter1) !important;
  border-bottom: 1px solid #dcdcdc;
  border-left: 1px solid #dcdcdc;
  border-right: 1px solid #dcdcdc;
  overflow: hidden;
  background-color: white;
  border-bottom-left-radius: var(--border-radius, 6px);
  border-bottom-right-radius: var(--border-radius, 6px);
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content > * {
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  opacity: 0;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details .tab-content figure.image {
  flex-direction: column;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] summary {
  --background-colour:#0f1956;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] summary svg {
  transform: rotate(180deg);
}
tabbed-content[data-style="4"].allow-breakpoint-restyling details[open] .tab-content > * {
  opacity: 1;
}
@media (max-width: 1000px) {
  tabbed-content.markets.allow-breakpoint-restyling {
    grid-gap: var(--gap) !important;
    display: grid;
  }
  tabbed-content.markets.allow-breakpoint-restyling > nav {
    display: none !important;
  }
  tabbed-content.markets.allow-breakpoint-restyling details {
    grid-column: 1/-1;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[hidden] {
    display: block;
  }
  tabbed-content.markets.allow-breakpoint-restyling details summary {
    display: flex;
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content {
    padding: var(--spacer0) var(--gutter1) !important;
    border-bottom: 1px solid #dcdcdc;
    border-left: 1px solid #dcdcdc;
    border-right: 1px solid #dcdcdc;
    overflow: hidden;
    background-color: white;
    border-bottom-left-radius: var(--border-radius, 6px);
    border-bottom-right-radius: var(--border-radius, 6px);
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content > * {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
    opacity: 0;
  }
  tabbed-content.markets.allow-breakpoint-restyling details .tab-content figure.image {
    flex-direction: column;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] summary {
    --background-colour:#0f1956;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] summary svg {
    transform: rotate(180deg);
  }
  tabbed-content.markets.allow-breakpoint-restyling details[open] .tab-content > * {
    opacity: 1;
  }
}

tabbed-content[data-style="1"] {
  --side-nav-width: 200px;
  display: grid;
  grid-template-columns: var(--side-nav-width) 1fr;
  grid-gap: var(--gutter1);
}
tabbed-content[data-style="1"] > nav {
  display: flex;
  flex-direction: column;
  position: sticky;
  height: -moz-fit-content;
  height: fit-content;
  top: calc(var(--breadcrumb-height) + var(--anchors-height) - var(--gutter1));
}
tabbed-content[data-style="1"] > nav button {
  padding: var(--gap) 0;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
tabbed-content[data-style="1"] > nav button svg {
  margin-left: var(--gap);
}
tabbed-content[data-style="1"] > nav button + button {
  border-top: 1px solid #dcdcdc;
}

tabbed-content[data-style="2"] > nav {
  display: flex;
  justify-content: center;
}
tabbed-content[data-style="2"] > nav button {
  padding: calc(var(--gap) * 2) var(--gutter2);
  text-align: center;
  border: 1px solid #dcdcdc;
  border-bottom: none;
  border-top-left-radius: var(--border-radius, 6px);
  border-top-right-radius: var(--border-radius, 6px);
  margin-left: calc(var(--gap) * 0.5);
  margin-right: calc(var(--gap) * 0.5);
  font-size: 0.875em;
  background-color: white;
  color: var(--primary, #131f6b);
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content[data-style="2"] > nav button svg {
  display: none;
}
@media (hover: hover) {
  tabbed-content[data-style="2"] > nav button:hover {
    color: var(--secondary, #DF3035);
  }
}
tabbed-content[data-style="2"] > nav button[aria-selected=true] {
  background-color: #F4F4F4;
  border-color: transparent;
}
tabbed-content[data-style="2"] .tab-content {
  padding: var(--spacer1) var(--gutter1);
  background: linear-gradient(#F4F4F4, white);
}
tabbed-content[data-style="2"].inview nav button[aria-selected=true] {
  background-color: #F4F4F4;
  color: var(--secondary, #DF3035);
}
@media (max-width: 480px) {
  tabbed-content[data-style="2"]:not(.allow-breakpoint-restyling)[data-count="2"] [role=tab] {
    width: 50%;
    padding: var(--gap);
  }
}

tabbed-content[data-style="3"] > nav {
  display: flex;
  justify-content: center;
  margin-bottom: var(--gap);
  border-radius: 50px;
  border: 1px solid #dcdcdc;
  align-self: center;
  background-color: white;
  position: relative;
}
tabbed-content[data-style="3"] > nav button {
  position: relative;
  text-align: center;
  border: none !important;
  text-transform: uppercase;
  font-size: 0.875em;
  border-radius: inherit;
  z-index: 1;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  padding: var(--gap) var(--gutter1);
}
tabbed-content[data-style="3"] > nav button svg {
  display: none;
}
tabbed-content[data-style="3"] > nav button[aria-selected=true] {
  color: white;
}
@media (hover: hover) {
  tabbed-content[data-style="3"] > nav button:not([aria-selected=true]):hover {
    color: #DF3035;
  }
}
tabbed-content[data-style="3"] > nav:not(.has-marker) button[aria-selected=true] {
  background-color: #131f6b;
}
tabbed-content[data-style="3"] > nav mark {
  background-color: initial;
  color: inherit;
  border-radius: initial;
  padding: initial;
  transition: initial;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background-color: #131f6b;
  width: 50%;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
tabbed-content[data-style="3"] > nav mark.active {
  opacity: 1;
}
tabbed-content[data-style="3"] .tab-content {
  padding: var(--gutter1) 0;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC5jc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9ub3JtYWxpc2Vycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJlYWsuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL19pbmRleC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faW1hZ2Uuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL3N0eWxpbmcvX2FzcGVjdC1yYXRpby5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL3ZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvbWFyay5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvYnV0dG9uLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2NvcmUvY3VzdG9tLXByb3BlcnRpZXMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL3R5cG9ncmFwaHkuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvZm9udHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX3Jlc3BvbnNpdmUtZm9udHNpemUuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdW5pdHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL2xheW91dC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19icmVha3BvaW50cy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYmFja2dyb3VuZC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fcG9zaXRpb24uc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9jb21wb25lbnQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvbmF2aWdhdGlvbi1iYXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fcGFsZXR0ZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL2xvYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9kcm9wZG93bi1tZW51LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvc2Nyb2xsLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2hlYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9mb290ZXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX2Nyb3Auc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9iYWNrZ3JvdW5kLXZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2JyZWFkY3J1bWJzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9hbmNob3JzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9zaWRlLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9zb2NpYWwtbWVkaWEuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9hcnRpY2xlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3BhcnRpYWxzL3RhZy1saW5lLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2Zvcm1zLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvZm9ybS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9tb2RhbC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9kaWFsb2cuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvY29udGVudC1ibG9ja3MvX2luZGV4LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RleHQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9saXN0LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RhYmxlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2ltYWdlcy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQzJCZDs7Ozs7OztFQU9DLFNBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLHdCQUFBO0FEekJIOztBQzRCRTtFQUNDLHNCQUFBO0VBQ0EsOEJBQUE7QUR6Qkg7O0FDNEJFO0VBRUMsbUJBQUE7QUQxQkg7QUN5Qkc7RUFBVSxVQUFBO0FEdEJiOztBQzBCRTtFQUNDLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUR2Qkg7O0FDMEJFO0VBQ0Msb0JBQUE7RUFDQSxxQkFBQTtBRHZCSDs7QUMwQkU7RUFDQyxnQkFBQTtBRHZCSDs7QUMyQkc7RUFBVSxhQUFBO0FEdkJiOztBQzBCRTtFQUNDLGNBQUE7QUR2Qkg7O0FDMEJFO0VBQWMsaUJBQUE7QUR0QmhCOztBQ3dCRTtFQUFVLGNBQUE7QURwQlo7O0FDc0JFO0VBQ0Msa0JBQUE7RUFDQSx3QkFBQTtBRG5CSDtBQ29CRztFQUF1QyxhQUFBO0FEakIxQzs7QUNvQkU7RUFBVyxhQUFBO0FEaEJiOztBQ2tCRTtFQUFXLGFBQUE7QURkYjs7QUN3QkU7RUFDQyxrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsV0FBQTtBRHJCSDs7QUN3QkU7RUFDQyxrQkFBQTtBRHJCSDs7QUNnQ0U7RUFDQywwQkFBQTtFQUNBLHlCQUFBO0VBQ0EseUJBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0FEN0JIOztBQ3dDRTtFQUNDLFlBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxpQkFBQTtBRHJDSDs7QUN3Q0U7RUFDQyxZQUFBO0FEckNIO0FDc0NHO0VBQ0MsV0FBQTtFQUNBLGFBQUE7QURwQ0o7O0FDd0NFO0VBQ0MsaUNBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFD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UztJSjJYUCx5QkFBQTtFbEIrK0JGO0VrQjkrQkU7OztJQUdFLGlEQUFBO0VsQmcvQko7QUFDRjs7QXNCaDNDVztFSnFZVCxtQkFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7QWxCKytCRjtBa0I3K0JFOztFQUVFLDRCQUFBO0FsQisrQko7QWtCNytCRTs7RUFFRSxtQkFBQTtBbEIrK0JKO0FFejVDRTtFb0IwQlM7SUp5WlAseUJBQUE7RWxCMCtCRjtFa0IvK0JFOzs7SUFHRSxtQlJsVEs7RVZteUNUO0FBQ0Y7O0FFNzVDRTtFZ0JtYkU7SUFDRSxjQUFBO0VsQjgrQko7QUFDRjs7QWtCditCRTtFQUVFLGFBQUE7RUFDQSx3QlJ0VU87RVF1VVAsMEJBQUE7QWxCeStCSjtBa0J4K0JJOzs7RUFFRSxpQkFBQTtFQUNBLGVBQUE7QWxCMitCTjtBa0J2K0JNO0VBRUUsc0VBQUE7QWxCdytCUjs7QUV4N0NFO0VnQjJkTTtJQUNFLGNBQUE7RWxCaStCUjtFa0IvOUJNO0lBQ0UsZ0JBQUE7RWxCaStCUjtFa0I1OUJNO0lBQ0UsZ0JBQUE7SUFDQSxnQ0FBQTtFbEI4OUJSO0VrQjU5Qk07SUFDRSxjQUFBO0lBQ0EsNEJSM1dDO0lRNFdELDZCUjVXQztFVjAwQ1Q7RWtCMzlCSTtJQUVFLHdGQUFBO0VsQjQ5Qk47QUFDRjtBRTc4Q0U7RWdCMmRNO0lBQ0UsY0FBQTtFbEJxL0JSO0VrQm4vQk07SUFDRSxnQkFBQTtFbEJxL0JSO0VrQmgvQk07SUFDRSxnQkFBQTtJQUNBLGdDQUFBO0VsQmsvQlI7RWtCaC9CTTtJQUNFLGNBQUE7SUFDQSw0QlIzV0M7SVE0V0QsNkJSNVdDO0VWODFDVDtFa0IvK0JJO0lBRUUsd0ZBQUE7RWxCZy9CTjtBQUNGOztBa0IvOUJFO0VBQ0UsaUJBQUE7QWxCaytCSjtBRXIrQ0U7RWdCaWdCRjtJQU1JLGlCQUFBO0VsQmsrQkY7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCeDlCRTtJQUNFLHFCQUFBO0VsQjA5Qko7RWtCdDlCRTtJQUNFLHFCQUFBO0VsQnc5Qko7RWtCdDlCRTtJQUNFLHFCQUFBO0VsQnc5Qko7RWtCdDlCRTtJQUNFLHFCQUFBO0VsQnc5Qko7RWtCdDlCRTtJQUNFLHFCQUFBO0VsQnc5Qko7RWtCdDlCRTtJQUNFLHFCQUFBO0VsQnc5Qko7RWtCcDlCRTtJQUNFLHFCQUFBO0VsQnM5Qko7RWtCcDlCRTtJQUNFLHFCQUFBO0VsQnM5Qko7RWtCcDlCRTtJQUNFLHFCQUFBO0VsQnM5Qko7RWtCcDlCRTtJQUNFLHFCQUFBO0VsQnM5Qko7RWtCbDlCRTtJQUNFLHFCQUFBO0VsQm85Qko7RWtCbDlCRTtJQUNFLHFCQUFBO0VsQm85Qko7RWtCbDlCRTtJQUNFLHFCQUFBO0VsQm85Qko7RWtCaDlCRTtJQUNFLHFCQUFBO0VsQms5Qko7RWtCaDlCRTtJQUNFLHFCQUFBO0VsQms5Qko7RWtCOThCRTtJQUNFLHFCQUFBO0VsQmc5Qko7QUFDRjtBRTdoREU7RWdCcWZGO0lBNEZJLGlCQUFBO0VsQmc5QkY7RWtCNzhCRTtJQUNFLHFCQUFBO0VsQis4Qko7RWtCNzhCRTtJQUNFLHFCQUFBO0VsQis4Qko7RWtCNzhCRTtJQUNFLHFCQUFBO0VsQis4Qko7RWtCNzhCRTtJQUNFLGlCQUFBO0VsQis4Qko7RWtCMzhCRTtJQUNFLGlCQUFBO0VsQjY4Qko7RWtCMzhCRTs7O0lBR0UsaUJBQUE7RWxCNjhCSjtFa0IzOEJFOzs7SUFHRSxpQkFBQTtFbEI2OEJKO0VrQjM4QkU7Ozs7SUFJRSxpQkFBQTtFbEI2OEJKO0VrQjM4QkU7SUFDRSxpQkFBQTtFbEI2OEJKO0FBQ0Y7QUVwa0RFO0VnQnFmRjtJQXNJSSxpQkFBQTtFbEI2OEJGO0VrQjM4QkU7OztJQUdFLGNBQUE7RWxCNjhCSjtFa0IzOEJFOzs7SUFHRSxjQUFBO0VsQjY4Qko7QUFDRjtBRXpsREU7RWdCK29CSTtJQUNFLGlCQUFBO0Vs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STtFM0NsUUYseUJBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0UyQ2dRSSxrQkFBQTtFQUNBLE1BQUE7RUFBTyxPQUFBO0VBQ1AsWUFBQTtFQUNBLHlCMUNoUUk7RTBDaVFKLFVBQUE7RUFDQSxzQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLHFJQUFBO0FsRDAySk47QWtEejJKTTtFQUNFLFVBQUE7QWxEMjJKUjtBa0R2MkpFO0VBQ0UseUJBQUE7QWxEeTJKSiIsImZpbGUiOiJnbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLFxuYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSxcbmltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksXG5jZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSxcbmNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsXG5lbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSxcbnNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbjpyb290IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG4qLCAqOmFmdGVyLCAqOmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4qOmZvY3VzLCAqOmFmdGVyOmZvY3VzLCAqOmJlZm9yZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGJsb2NrLXNpemU6IDEwMCU7XG4gIGlubGluZS1zaXplOiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWluLWJsb2NrLXNpemU6IDEwMCU7XG4gIG1pbi1pbmxpbmUtc2l6ZTogMTAwJTtcbn1cblxuaHRtbCwgYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbnA6ZW1wdHksIHByZTplbXB0eSwgYmxvY2txdW90ZTplbXB0eSwgb2w6ZW1wdHksIHVsOmVtcHR5LCBsaTplbXB0eSwgbGVnZW5kOmVtcHR5LCBmaWdjYXB0aW9uOmVtcHR5LCBib2R5OmVtcHR5LCBhcnRpY2xlOmVtcHR5LCBuYXY6ZW1wdHksIGFzaWRlOmVtcHR5LCBzZWN0aW9uOmVtcHR5LCBoZWFkZXI6ZW1wdHksIGZvb3RlcjplbXB0eSwgYWRkcmVzczplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3ZnLCBzeW1ib2wge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyLCBzdW1tYXJ5OjptYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keSB7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMGVtO1xuICAtd2Via2l0LW1hcmdpbi1hZnRlcjogMGVtO1xuICAtd2Via2l0LW1hcmdpbi1zdGFydDogMHB4O1xuICAtd2Via2l0LW1hcmdpbi1lbmQ6IDBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaHIge1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogMXB4O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IG5vbmU7XG59XG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciwgcTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lO1xufVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrO1xuICBwYWRkaW5nOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmJ1dHRvbiB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5idXR0b24sIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDA7XG59XG5cbmJ1dHRvbiwgaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLCBzZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmJ1dHRvbjpmb2N1cyxcblt0eXBlPWJ1dHRvbl06Zm9jdXMsXG5bdHlwZT1yZXNldF06Zm9jdXMsXG5bdHlwZT1zdWJtaXRdOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG5bZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmNvZGUsIGtiZCwgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1Yiwgc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5wcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuYm9keS5kZXZtb2RlIGltZzpub3QoW2FsdF0pIHtcbiAgYm9yZGVyOiAycHggcmVkIGRhc2hlZDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMyMXB4KSB7XG4gIGJvZHkge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxufVxuXG46d2hlcmUoKikge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDJyZW0pO1xufVxuXG4uYXN5bmMtaGlkZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxubWFpbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZpZ3VyZS5pbWFnZSxcbnBpY3R1cmUuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5maWd1cmUuaW1hZ2UgaW1nLFxucGljdHVyZS5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxudmlkZW8tY29udGFpbmVyIHtcbiAgLS1hc3BlY3QtcmF0aW86IDE2Lzk7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIHZpZGVvLWNvbnRhaW5lciB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICB2aWRlby1jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbnZpZGVvLWNvbnRhaW5lciBpZnJhbWUsIHZpZGVvLWNvbnRhaW5lciBjYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTVGRjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgLyAyKTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuXG5kZXRhaWxzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbnN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsIHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSk7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gIC0tZm9udC1zaXplOiAxNnB4O1xuICAtLWJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnkpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiBpbml0aWFsO1xuICAtLWhvdmVyLXBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICAtLWhvdmVyLWZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgLS1ob3Zlci1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgLS1pY29uLXNpemU6IDEuMWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGJvcmRlciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpO1xufVxuLmJ1dHRvbiBzdmcge1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICBvcmRlcjogMztcbiAgZmlsbDogdmFyKC0tZmlsbCwgY3VycmVudENvbG9yKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpO1xufVxuLmJ1dHRvbiBzdmdbY2xhc3MqPWFycm93XSB7XG4gIC0taWNvbi1zaXplOiAwLjllbTtcbn1cbi5idXR0b24gc3ZnLmFycm93LWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBvcmRlcjogMTtcbn1cbi5idXR0b24gPiBzcGFuIHtcbiAgb3JkZXI6IDI7XG59XG4uYnV0dG9uLnNtYWxsIHtcbiAgLS1wYWRkaW5nOiA2cHggMThweDtcbiAgLS1mb250LXNpemU6IDEycHg7XG59XG4uYnV0dG9uLnNtYWxsIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLmJ1dHRvbi5zbWFsbCBzdmcuYXJyb3ctbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbi5idXR0b24ubGFyZ2Uge1xuICAtLXBhZGRpbmc6IDEycHggMjRweDtcbiAgLS1mb250LXNpemU6IDI0cHg7XG59XG4uYnV0dG9uLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5ibHVlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2YjtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xufVxuLmJ1dHRvbi5ibHVlLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzEzMWY2YjtcbiAgLS1ib3JkZXItY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjREYzMDM1O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNERjMwMzU7XG59XG4uYnV0dG9uLnJlZC5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICNERjMwMzU7XG4gIC0tYm9yZGVyLWNvbG91cjogI0RGMzAzNTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI0RGMzAzNTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbi5idXR0b24uZ3JlZW4ge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICM3NmJiMjg7XG59XG4uYnV0dG9uLmdyZWVuLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogIzc2YmIyODtcbiAgLS1ib3JkZXItY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi53aGl0ZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI0ZGRkZGRjtcbn1cbi5idXR0b24ud2hpdGUub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkY2RjZGM7XG59XG4uYnV0dG9uLmRpc2FibGVkLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI2RjZGNkYztcbiAgLS1ib3JkZXItY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWhvdmVyLWZvbnQtY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ob3Zlci1ib3JkZXItY29sb3VyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ob3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ob3Zlci1wYWRkaW5nKTtcbiAgICBmb250LXNpemU6IHZhcigtLWhvdmVyLWZvbnQtc2l6ZSk7XG4gIH1cbn1cbi5idXR0b24uYnJvY2h1cmUge1xuICAtLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA1cHggMHB4O1xuICAtLWljb24tc2l6ZTogMzJweDtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ib3JkZXItcmFkaXVzOiAwO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjREYzMDM1O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmJ1dHRvbi5icm9jaHVyZSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBmaWxsOiAjREYzMDM1O1xufVxuLmJ1dHRvbi5yZWQgc3ZnLnRpY2ssIC5idXR0b24ucmVkIHN2Zy5kb3dubG9hZCB7XG4gIC0tc3Ryb2tlOiAjREYzMDM1O1xufVxuLmJ1dHRvbi5ibHVlIHN2Zy50aWNrLCAuYnV0dG9uLmJsdWUgc3ZnLmRvd25sb2FkIHtcbiAgLS1zdHJva2U6ICMxMzFmNmI7XG59XG4uYnV0dG9uLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b24ub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAtLXN0cm9rZTogI0ZGRkZGRjtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5idXR0b246aG92ZXIucmVkIHN2Zy50aWNrLFxuICAuYnV0dG9uOmhvdmVyLnJlZCBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogI0RGMzAzNTtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLmJsdWUgc3ZnLnRpY2ssXG4gIC5idXR0b246aG92ZXIuYmx1ZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIuYmx1ZS5vdXRsaW5lIHN2Zy50aWNrLCAuYnV0dG9uOmhvdmVyLmJsdWUub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjMTMxZjZiO1xuICB9XG4gIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogIzEzMWY2YjtcbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuI2hvbGRpbmctcGFnZSBoZWFkZXIgc3ZnIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAjaG9sZGluZy1wYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuYm9keSNlcnJvci00MDQgaGVhZGVyIGgyIHtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzEzMWY2Yjtcbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEtKTtcbiAgei1pbmRleDogMjtcbiAgLyogU3RhcnQgaGlkZGVuIGJlbG93IHZpZXdwb3J0ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLyogQW5pbWF0aW9uIHdpdGggZGVsYXllZCBzdGFydCAqL1xuICBhbmltYXRpb246IHNsaWRlLWluLWlkbGUtZGlhbG9nIGJvdGg7XG4gIGFuaW1hdGlvbi10aW1lbGluZTogc2Nyb2xsKCk7XG4gIGFuaW1hdGlvbi1yYW5nZTogY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSkgY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSArIGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKTtcbn1cbmJvZHkgPiAuaWRsZS1kaWFsb2cgLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG5Aa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTtcbiAgfVxufVxuI2NvbnRhY3QtbW9kYWwge1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiAjRjRGNEY0O1xufVxuI2NvbnRhY3QtbW9kYWwgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuXG5ib2R5ID4gLmJhY2stdG8tdG9wIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIGJhY2tncm91bmQ6ICMyOTJCNjg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBib3R0b20gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cbmJvZHkgPiAuYmFjay10by10b3Agc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogd2hpdGU7XG4gIHdpZHRoOiA1MCU7XG4gIHRvcDogLTQlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgYm9keSA+IC5iYWNrLXRvLXRvcDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RGMzAzNTtcbiAgfVxufVxuXG5mb290ZXIjZm9vdGVyLmluLXZpZXcgfiAuYmFjay10by10b3Age1xuICBib3R0b206IDEyMHB4O1xufVxuXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gLmJhY2stdG8tdG9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuOnJvb3Qge1xuICAtLXByaW1hcnk6ICMxMzFmNmI7XG4gIC0tc2Vjb25kYXJ5OiAjREYzMDM1O1xuICAtLWJyZWFrcG9pbnQtbWluOiAzMjBweDtcbiAgLS1icmVha3BvaW50LXNtYWxsOiA0ODBweDtcbiAgLS1icmVha3BvaW50LXNtYWxsLW1lZGl1bTogOTgwcHg7XG4gIC0tYnJlYWtwb2ludC1tZWRpdW06IDExMjBweDtcbiAgLS1icmVha3BvaW50LWxhcmdlOiAxNDAwcHg7XG4gIC0tYnJlYWtwb2ludC1tYXg6IDE2ODBweDtcbiAgLS1mb250LWNvbG91cjogIzZBNkE2QTtcbiAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIC0tc3ViLWhlYWRpbmctY29sb3VyOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xuICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIC0tdHJhbnNpdGlvbi1lYXNlOiBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIC0tdHJhbnNpdGlvbi1kZWxheTogO1xuICAtLWJyZWFkY3J1bWItaGVpZ2h0OiA5MHB4O1xuICAtLWFuY2hvcnMtaGVpZ2h0OiA2MHB4O1xuICAtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0OiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aDogOTAwcHg7XG4gIC0tbmF2aWdhdGlvbi1oZWlnaHQ6IDE0M3B4O1xuICAtLXNpZGViYXItd2lkdGg6IGNsYW1wKDMwMHB4LCAzMHZ3LCA1MDBweCk7XG4gIC0tZ2FwOiAxNnB4O1xuICAtLWd1dHRlcjogM3Z3O1xuICAtLXNwYWNlcjogNHZoO1xuICAtLWd1dHRlcjA6IGNsYW1wKDhweCwgdmFyKC0tZ3V0dGVyKSAqIDAuNSwgMTJweCk7XG4gIC0tZ3V0dGVyMC06IGNhbGMoLTEgKiBjbGFtcCg4cHgsIHZhcigtLWd1dHRlcikgKiAwLjUsIDEycHgpKTtcbiAgLS1zcGFjZXIwOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpLCAzMnB4KTtcbiAgLS1zcGFjZXIwLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlciksIDMycHgpKTtcbiAgLS1ndXR0ZXIxOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpLCAzMnB4KTtcbiAgLS1ndXR0ZXIxLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlciksIDMycHgpKTtcbiAgLS1zcGFjZXIxOiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMywgNjRweCk7XG4gIC0tc3BhY2VyMS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMywgNjRweCkpO1xuICAtLWd1dHRlcjI6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAyLCA0OHB4KTtcbiAgLS1ndXR0ZXIyLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAyLCA0OHB4KSk7XG4gIC0tc3BhY2VyMjogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDYsIDExMnB4KTtcbiAgLS1zcGFjZXIyLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA2LCAxMTJweCkpO1xuICAtLWd1dHRlcjM6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAzLCA2NHB4KTtcbiAgLS1ndXR0ZXIzLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiAzLCA2NHB4KSk7XG4gIC0tc3BhY2VyMzogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDksIDE2MHB4KTtcbiAgLS1zcGFjZXIzLTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA5LCAxNjBweCkpO1xuICAtLWd1dHRlcjQ6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA0LCA4MHB4KTtcbiAgLS1ndXR0ZXI0LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA0LCA4MHB4KSk7XG4gIC0tc3BhY2VyNDogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDEyLCAyMDhweCk7XG4gIC0tc3BhY2VyNC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTIsIDIwOHB4KSk7XG4gIC0tZ3V0dGVyNTogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDUsIDk2cHgpO1xuICAtLWd1dHRlcjUtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDUsIDk2cHgpKTtcbiAgLS1zcGFjZXI1OiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTUsIDI1NnB4KTtcbiAgLS1zcGFjZXI1LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxNSwgMjU2cHgpKTtcbiAgLS1ndXR0ZXI2OiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNiwgMTEycHgpO1xuICAtLWd1dHRlcjYtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDYsIDExMnB4KSk7XG4gIC0tc3BhY2VyNjogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE4LCAzMDRweCk7XG4gIC0tc3BhY2VyNi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTgsIDMwNHB4KSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyOiBjYWxjKCgoMTAwdncgLSB2YXIoLS1icmVha3BvaW50LW1heCkpIC8gMikpO1xufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICA6cm9vdCB7XG4gICAgLS1zaWRlYmFyLXdpZHRoOiA1MDBweDtcbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gICAgOnJvb3Qge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoOiAzMDBweDtcbiAgICB9XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgOnJvb3Qge1xuICAgIC0tZ3V0dGVyMDogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDAuNSkgKyA4cHgpO1xuICAgIC0tZ3V0dGVyMC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMC41KSArIDhweCkpO1xuICAgIC0tc3BhY2VyMDogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIpICsgMTZweCk7XG4gICAgLS1zcGFjZXIwLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAyKSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjE6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAxKSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyMS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMSkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXIxOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogNCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjEtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDQpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyMjogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDIpICsgMTZweCk7XG4gICAgLS1ndXR0ZXIyLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAyKSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjI6IGNhbGMoKHZhcigtLXNwYWNlcikgKiA4KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogOCkgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXIzOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMykgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjMtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDMpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyMzogY2FsYygodmFyKC0tc3BhY2VyKSAqIDEyKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMy06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTIpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyNDogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDQpICsgMTZweCk7XG4gICAgLS1ndXR0ZXI0LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiA0KSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjQ6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAxNikgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjQtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDE2KSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjU6IGNhbGMoKHZhcigtLWd1dHRlcikgKiA1KSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyNS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNSkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXI1OiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjApICsgMTZweCk7XG4gICAgLS1zcGFjZXI1LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAyMCkgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXI2OiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNikgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjYtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDYpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyNjogY2FsYygodmFyKC0tc3BhY2VyKSAqIDI0KSArIDE2cHgpO1xuICAgIC0tc3BhY2VyNi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjQpICsgMTZweCkpO1xuICB9XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tc2VtaWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJsYXRvXCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCI7XG4gIHNyYzogdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQub3RmXCIpIGZvcm1hdChcIm9wZW50eXBlXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogbW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsICM2QTZBNkEpO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cbkBzdXBwb3J0cyAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBib2R5IHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNHJlbSwgMS41dncsIDEuNnJlbSk7XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgYm9keSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAgIGJvZHkge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgfVxuICB9XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAzLjgxMjVlbTtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjVlbSwgNXZ3LCAzLjgxMjVlbSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cbmgxLnN1Yi1oZWFkaW5nLFxuaDIuc3ViLWhlYWRpbmcsXG5oMy5zdWItaGVhZGluZyxcbmg0LnN1Yi1oZWFkaW5nLFxuaDUuc3ViLWhlYWRpbmcsXG5oNi5zdWItaGVhZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpO1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuaDEgc3BhbixcbmgxIHN0cm9uZyxcbmgxIHAsXG5oMiBzcGFuLFxuaDIgc3Ryb25nLFxuaDIgcCxcbmgzIHNwYW4sXG5oMyBzdHJvbmcsXG5oMyBwLFxuaDQgc3Bhbixcbmg0IHN0cm9uZyxcbmg0IHAsXG5oNSBzcGFuLFxuaDUgc3Ryb25nLFxuaDUgcCxcbmg2IHNwYW4sXG5oNiBzdHJvbmcsXG5oNiBwIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6IFwi4oCcXCIgXCLigJ1cIiBcIuKAmFwiIFwi4oCZXCI7XG59XG5xOjpiZWZvcmUsXG5ibG9ja3F1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBvcGVuLXF1b3RlO1xufVxucTo6YWZ0ZXIsXG5ibG9ja3F1b3RlOjphZnRlciB7XG4gIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xufVxuXG5hIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xufVxuYS5leHRlcm5hbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuYS5leHRlcm5hbCBzdmcuZXh0ZXJuYWwtbGluayB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgd2lkdGg6IDAuOGVtO1xuICBoZWlnaHQ6IDAuOGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG59XG5cbmxpIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBsaW5lLWhlaWdodDogMS44O1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhyLWNvbG91ciwgI2RjZGNkYyk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbi5ub3RlIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICM5NzgwMDI7XG59XG4ubm90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJQbGVhc2UgTm90ZVwiO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjOTc4MDAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cblxuYm9keSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1hbmNob3JzOiAzO1xuICAtLXJvdy1oZWFkZXI6IDQ7XG4gIC0tcm93LW1haW46IDU7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG4gIC0tcm93LXNpZGViYXI6IDQgLyBzcGFuIDM7XG4gIC0tcm93LWZvb3RlcjogMTAwO1xuICAtLXJvd3M6IGF1dG87XG4gIC0tY29sdW1uLWxlZnQ6IDI7XG4gIC0tY29sdW1uLW1haW46IDIgLyBzcGFuIDI7XG4gIC0tY29sdW1uLXJpZ2h0OiA0O1xuICAtLWNvbHVtbi1mdWxsOiAyIC8gLTI7XG4gIC0tY29sdW1uLWd1dHRlcjogbWlubWF4KDAsIDFmcik7XG4gIC0tY29sdW1uLWNvbnRlbnQ6IG1pbm1heCgwLCBjYWxjKDE2ODBweCAtICh2YXIoLS1zaWRlYmFyLXdpZHRoKSAqIDIpIC0gdmFyKC0tZ3V0dGVyNCkpKTtcbiAgLS1jb2x1bW4tc2lkZWJhcjogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWd1dHRlcik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIGdyaWQtZ2FwOiAwIHZhcigtLWd1dHRlcjEpO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHZhcigtLXJvd3MpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbnMpO1xufVxuYm9keSA+ICoge1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xufVxuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHotaW5kZXg6IDk5OTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1uYXZpZ2F0aW9uKTtcbn1cbm5hdmlnYXRpb24tYmFyOm5vdCguaW4tdmlldykgfiAjYnJlYWRjcnVtYnMtYmFyLFxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+ICNhbmNob3JzLWJhciB7XG4gIC0tYW5jaG9ycy1oZWlnaHQ6IDUwcHg7XG59XG5cbiNicmVhZGNydW1icy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWJyZWFkY3J1bWJzKTtcbiAgaGVpZ2h0OiB2YXIoLS1icmVhZGNydW1iLWhlaWdodCk7XG59XG4jYnJlYWRjcnVtYnMtYmFyLnN0aWNreSB7XG4gIHRvcDogdmFyKC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQpO1xufVxuXG4jYW5jaG9ycy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWFuY2hvcnMpO1xuICBoZWlnaHQ6IHZhcigtLWFuY2hvcnMtaGVpZ2h0KTtcbn1cbiNhbmNob3JzLWJhci5zdGlja3kge1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpIC0gMXB4ICsgdmFyKC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQpICogMik7XG59XG5cbi5oZWFkZXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LWhlYWRlcik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tbWFpbik7XG4gIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xufVxuXG4jZm9vdGVyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1mb290ZXIpO1xufVxuXG5tYWluIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1tYWluKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1tYWluKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5tYWluID4gKixcbm1haW4gfiBzZWN0aW9uLFxubWFpbiB+IGFzaWRlLFxubWFpbiB+IGRpdixcbm1haW4gfiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIsXG5tYWluIH4gbWFya2V0cy1zdW1tYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbiAgZmxleC1ncm93OiAxO1xufVxubWFpbiB+IGRpdjpoYXMoZGl2I3RydWVuZG9fY29udGFpbmVyKSB7XG4gIHBhZGRpbmc6IDA7XG59XG5tYWluIHNlcnZpY2UtY2VudHJlLWZpbmRlciBwaWN0dXJlIHtcbiAgLS10cmFuc2xhdGVYOiAwO1xuICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODFweCkge1xuICBtYWluIHNlcnZpY2UtY2VudHJlLWZpbmRlciBwaWN0dXJlIHtcbiAgICBsZWZ0OiBjYWxjKCgtMSAqIHZhcigtLWNvbXB1dGVkLWd1dHRlcikpIC0gdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5cbnNpZGUtYmFyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1zaWRlYmFyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1yaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG5zaWRlLWJhciA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KHZhcigtLXNpZGViYXItd2lkdGgpLCAxZnIpKTtcbn1cbnNpZGUtYmFyID4gZGl2LnN0aWNreSB7XG4gIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG59XG5zaWRlLWJhciA+IGRpdiA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5zaWRlLWJhciA+IGRpdiA+ICoucmVkIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0RGMzAzNTtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi5ibHVlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogIzEzMWY2Yjtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi5ncmV5IHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0Y0RjRGNDtcbiAgLS1ib3JkZXItY29sb3VyOiAjZGNkY2RjO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqLndoaXRlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItY29sb3VyOiAjRjRGNEY0O1xufVxuXG5hc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGJvZHkge1xuICAgIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICAgIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1sZWZ0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tcmlnaHQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLXJvdy1zaWRlYmFyOiBhdXRvO1xuICB9XG4gIGJvZHkgPiAqIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBib2R5IHNpZGUtYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIH1cbiAgYm9keSBzaWRlLWJhciA+IGRpdiB7XG4gICAgZ3JpZC1nYXA6IHZhcigtLXNwYWNlcjEpIHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIGJvZHkgc2lkZS1iYXIgPiBkaXYuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiBpbml0aWFsO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMzUycHgpIHtcbiAgYm9keSB7XG4gICAgLS1zaWRlYmFyLXdpZHRoOiAxMDAlO1xuICB9XG59XG4udGhlbWVkLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNERjMwMzU7XG59XG4udGhlbWVkLnJlZC5ibG93b3V0ICsgLnRoZW1lZC5yZWQge1xuICBib3gtc2hhZG93OiAwcHggMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyKTtcbn1cbi50aGVtZWQucmVkLmJsb3dvdXQgKyAudGhlbWVkLnJlZC5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLnJlZC5ibG93b3V0ICsgLnRoZW1lZC5yZWQuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQuYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMxMzFmNmI7XG59XG4udGhlbWVkLmJsdWUuYmxvd291dCArIC50aGVtZWQuYmx1ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC5ibHVlLmJsb3dvdXQgKyAudGhlbWVkLmJsdWUubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC5ibHVlLmJsb3dvdXQgKyAudGhlbWVkLmJsdWUuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQuZ3JleSB7XG4gIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG59XG4udGhlbWVkLmdyZXkuYmxvd291dCArIC50aGVtZWQuZ3JleSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC5ncmV5LmJsb3dvdXQgKyAudGhlbWVkLmdyZXkubGlnaHQge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiAjZGNkY2RjO1xufVxuLnRoZW1lZC5ncmV5LmJsb3dvdXQgKyAudGhlbWVkLmdyZXkuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQud2hpdGUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnRoZW1lZC53aGl0ZS5ibG93b3V0ICsgLnRoZW1lZC53aGl0ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC53aGl0ZS5ibG93b3V0ICsgLnRoZW1lZC53aGl0ZS5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLndoaXRlLmJsb3dvdXQgKyAudGhlbWVkLndoaXRlLmRhcmsge1xuICAtLWJvcmRlci10b3AtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG4udGhlbWVkOm5vdCguYmxvd291dCkge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuLnRoZW1lZDpub3QoLmJsb3dvdXQpLndoaXRlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Y0RjRGNDtcbn1cbi50aGVtZWQ6bm90KC5ibG93b3V0KS53aGl0ZSArIC5ibG93b3V0LndoaXRlLFxuLnRoZW1lZDpub3QoLmJsb3dvdXQpLndoaXRlICsgOm5vdCgudGhlbWVkKSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEtKTtcbn1cblxuLmJsb3dvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDMzNnB4KSB7XG4gIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAuYmxvd291dDpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keTpub3QobW9iaWxlKSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgLS10cmFuc2xhdGVYOiAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tZ3V0dGVyMSkpO1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKG1pbi13aWR0aDogMTY4MXB4KSB7XG4gIGJvZHk6bm90KG1vYmlsZSkgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYm9keS5tb2JpbGUgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAtLXRyYW5zbGF0ZVg6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tZ3V0dGVyMSkpO1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tZ3V0dGVyMSkpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODFweCkge1xuICBib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygoLTEgKiB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpKSAtIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5iYWNrZ3JvdW5kLWltYWdlLFxuYmFja2dyb3VuZC12aWRlbyB7XG4gIHotaW5kZXg6IC0xO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWJhY2tncm91bmQpO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbmJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbmJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDQ7XG59XG5cbmltZ1tkYXRhLXNyY10sXG52aWRlb1tkYXRhLXNyY10ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgb3BhY2l0eTogMDtcbn1cbmltZ1tkYXRhLXNyY10ubG9hZGVkLFxudmlkZW9bZGF0YS1zcmNdLmxvYWRlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbm1haW4gfiAqOm5vdCgudGhlbWVkKSArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpOm5vdChzaWRlLWJhcikge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI2RjZGNkYyk7XG59XG5cbm1haW4gPiAqLnRoZW1lZC5jb250ZW50LWJsb2NrIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxubWFpbiA+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcikge1xuICBtYXJnaW4tdG9wOiAwO1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG5tYWluIH4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKSxcbmJvZHkuYmFja2dyb3VuZC1wb3NpdGlvbmVkLWJlaGluZC1oZWFkZXIgbWFpbiA+ICo6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG5tYWluID4gKjpmaXJzdC1jaGlsZDpub3QoLnRoZW1lZCksXG5tYWluID4gKjpmaXJzdC1jaGlsZC53aGl0ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjZGNkY2RjKTtcbn1cblxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpLFxubWFpbiA+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmhlYWRlciB+IG1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cblxubWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG5cbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkgKyAuYmxvd291dCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xufVxuXG4uaGVhZGVyIH4gbWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbm1haW4gfiBkaXY6aGFzKCNDb29raWVib3RXaWRnZXQpIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIHtcbiAgLS1tYWluLW1heC13aWR0aDogYXV0bztcbiAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWFuY2hvcnM6IDI7XG4gIC0tcm93LWhlYWRlcjogMztcbiAgLS1yb3ctbWFpbjogNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgI2FuY2hvcnMtYmFyLnN0aWNreSB7XG4gIHRvcDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMyAvIHNwYW4gMztcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNDtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSAjYnJlYWRjcnVtYnMtYmFyLnN0aWNreSB7XG4gIHRvcDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWhlYWRlcjogMjtcbiAgLS1yb3ctbWFpbjogMztcbiAgLS1yb3ctYmFja2dyb3VuZDogMTtcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDU7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAyIC8gc3BhbiAzO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pOm5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiB7XG4gICAgdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgYm9keS5ydWxlLWxhc3QtbWFpbi1zZWN0aW9uLWlzLXRoZW1lZCBzaWRlLWJhciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxlZnQsXG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAucmlnaHQsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxlZnQsXG4ubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5yaWdodCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoMTY4MHB4IC0gKHZhcigtLXNpZGViYXItd2lkdGgpICogMikpKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuICBib2R5ID4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAyLzQ7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sZWZ0IHtcbiAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICB9XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAucmlnaHQge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCBib2R5ID4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMjFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMi80O1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvMztcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMztcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcik7XG4gIH1cbn1cblxuLmNvbnRlbnQtYmxvY2sgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzAxcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiA2O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTIge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS00IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gNTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiA2O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0xIHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTIge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMyB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi00IHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDQ7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTUge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gNTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0yIHtcbiAgICBncmlkLWNvbHVtbjogMy9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTMge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0xIHtcbiAgICBncmlkLWNvbHVtbjogNC9zcGFuIDE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTIge1xuICAgIGdyaWQtY29sdW1uOiA0L3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDQvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0xIHtcbiAgICBncmlkLWNvbHVtbjogNS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTIge1xuICAgIGdyaWQtY29sdW1uOiA1L3NwYW4gMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTYtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDYvc3BhbiAxO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzAwcHgpIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0zIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTQge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAzO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0zIHtcbiAgICBncmlkLWNvbHVtbjogMy8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTMsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi00LFxuICAuY29udGVudC1ibG9jayAuY29sLTItNSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTIsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0zLFxuICAuY29udGVudC1ibG9jayAuY29sLTMtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDMvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0yLFxuICAuY29udGVudC1ibG9jayAuY29sLTUtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiA0Ly0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0yIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjk5cHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIC0tY29sdW1uLWNvdW50OiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTMtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTEge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTQtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA2OTlweCkgYW5kIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0xIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNSArIC5jb2wtNi0xIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjk5cHgpIGFuZCAobWluLXdpZHRoOiA1MDFweCkge1xuICAuY29udGVudC1ibG9jayAuY29sLTItNSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG59XG5cbm5hdmlnYXRpb24tYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlcjApICsgdmFyKC0tZ2FwKSkgMDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDEyNGQ7XG4gIHotaW5kZXg6IDU7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogdmFyKC0tZ2FwKTtcbiAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6IHdoaXRlO1xuICAtLW1hcmtlci1saW5lLXRoaWNrbmVzczogM3B4O1xuICAtLXNwYWNlci1saW5lLXRoaWNrbmVzczogMXB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG5uYXZpZ2F0aW9uLWJhciA+ICo6bm90KC5pbWFnZSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5ib2R5W2RhdGEtY29tcG9uZW50cyo9YmFja2dyb3VuZC1pbWFnZV0gbmF2aWdhdGlvbi1iYXIuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbn1cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLWltYWdlXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLXZpZGVvXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xufVxuYm9keVtkYXRhLWNvbXBvbmVudHMqPWJhY2tncm91bmQtdmlkZW9dIG5hdmlnYXRpb24tYmFyLmhpZGUtYmFja2dyb3VuZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxubmF2aWdhdGlvbi1iYXIuaW52ZXJ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6ICMxMzFmNmI7XG59XG5uYXZpZ2F0aW9uLWJhci5pbnZlcnQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhci5pbnZlcnQgYS5sb2dvIGltZ1tzcmMqPVwidGFnbGluZS5zdmdcIl0ge1xuICBmaWx0ZXI6IGludmVydCgwLjkpO1xufVxubmF2aWdhdGlvbi1iYXIgYS5sb2dvIHtcbiAgbWF4LXdpZHRoOiAzMjBweDtcbiAgbWF4LXdpZHRoOiAyODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG5uYXZpZ2F0aW9uLWJhciBhLmxvZ28gaW1nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbm5hdmlnYXRpb24tYmFyIGEubG9nbyBpbWdbc3JjKj1cImxvZ28uc3ZnXCJdIHtcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDkwJSwgMCA5MCUpO1xufVxubmF2aWdhdGlvbi1iYXIgYS5sb2dvIGltZ1tzcmMqPVwidGFnbGluZS5zdmdcIl0ge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxubmF2aWdhdGlvbi1iYXIgYS5sb2dvOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDNweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS1sb2dvLXRhZ2xpbmUtaGVpZ2h0LCBjYWxjKHZhcigtLWdhcCkgKiAtMC41KSkgKyBjYWxjKHZhcigtLWdhcCkgKiAwLjUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGMzAzNTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiA4cHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluazpub3QoOm50aC1sYXN0LWNoaWxkKDIpKTpub3QoOm50aC1sYXN0LWNoaWxkKDMpKTpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSxcbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsID4gbGk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogdmFyKC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzKTtcbiAgaGVpZ2h0OiA0MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1zcGFjZXItbGluZS10aGlja25lc3MpIC8gMik7XG4gIHRvcDogMzAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zcGFjZXItbGluZS1jb2xvdXIsICNERjMwMzUpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgLS1wYWRkaW5nOiA0cHggMTBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgLS1mb250LXNpemU6IDE2cHg7XG4gICAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgICAtLWljb24tc2l6ZTogMjBweDtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCBwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICAtLWljb24tc2l6ZTogMS4xZW07XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgKyBzZWNvbmRhcnktbWVudSB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCB7XG4gICAgdG9wOiB1bnNldDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCAuYnV0dG9uLFxuICBuYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgLS1wYWRkaW5nOiA4cHg7XG4gICAgLS1pY29uLXNpemU6IDAuOGVtO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluayArIC5zZWFyY2gge1xuICBtYXJnaW4tbGVmdDogLTJweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgZmlsbDogI0ZGRkZGRjtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayBzdmc6bm90KC5hcnJvdy1yaWdodCk6bm90KC5hcnJvdy1sZWZ0KSB7XG4gIGhlaWdodDogMC44ZW07XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsub3ZlcnZpZXcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluayBzdmcsXG5uYXZpZ2F0aW9uLWJhciBuYXYgLmJ1dHRvbiBzdmcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUge1xuICAtLWZvbnQtc2l6ZTogMC45NWVtO1xuICBvcmRlcjogMjtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAzcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKSAqIDIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIsICNERjMwMzUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYS5hY3RpdmU6OmFmdGVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rIGEuY3VycmVudDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnRvcC1sZXZlbC1saW5rW2RhdGEtbmF2PW1lbnVdIHtcbiAgb3JkZXI6IDE7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmtbZGF0YS1uYXY9c3VibWVudV0ge1xuICBvcmRlcjogMjtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2gge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCBzdmcge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2ggc3BhbiB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoLCBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkubWVudSB7XG4gIG9yZGVyOiAzO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgLyAyKTtcbiAgbGVmdDogLTJweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IHN2ZyB7XG4gIG9yZGVyOiAxO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbmxpLmNhcnQgYVtkYXRhLXRvdGFsXTo6YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG90YWwpO1xuICBtaW4td2lkdGg6IDJjaDtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBwYWRkaW5nOiAwIDAuNGVtO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGhlaWdodDogMmNoO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERjMwMzU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbGluZS1oZWlnaHQ6IDAuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG9yZGVyOiAyO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbGkuY2FydCBhW2RhdGEtdG90YWxdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG4gIGxpLmNhcnQgYVtkYXRhLXRvdGFsXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG4gIGxpLmNhcnQgYVtkYXRhLXRvdGFsXTpob3ZlciBzdmcge1xuICAgIGZpbGw6ICNERjMwMzU7XG4gIH1cbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGxpLmNhcnQgYTpub3QoW2RhdGEtdG90YWxdKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgfVxuICBsaS5jYXJ0IGE6bm90KFtkYXRhLXRvdGFsXSk6aG92ZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgfVxuICBsaS5jYXJ0IGE6bm90KFtkYXRhLXRvdGFsXSk6aG92ZXIgc3ZnIHtcbiAgICBmaWxsOiAjREYzMDM1O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NTBweCkge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBzdmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSB7XG4gICAgcGFkZGluZzogOHB4IDIwcHg7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5sb2FkaW5nOjpiZWZvcmUge1xuICAtLXNpemU6IDEycHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWxvYWRlci1jb2xvdXIsIHdoaXRlKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbkBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmxvYWRpbmc6aG92ZXI6OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51IHtcbiAgLS1mb250LXNpemU6IDAuOGVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvcmRlcjogMTtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIHotaW5kZXg6IDY7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgYTpob3ZlciB7XG4gICAgY29sb3I6ICMwMDk1RkY7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1MCU7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMikpO1xuICB3aWR0aDogMjAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgY2FsYyh2YXIoLS1nYXApICogLTAuNSkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnUgbGk6bnRoLW9mLXR5cGUoMSkge1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBsaTpsYXN0LW9mLXR5cGUge1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhIHtcbiAgcGFkZGluZzogY2FsYyhjYWxjKHZhcigtLWdhcCkgKiAwLjUpIC8gMikgdmFyKC0tZ2FwKTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhLmFzc2V0IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBhLmFzc2V0IHN2ZyB7XG4gIG9yZGVyOiAtMTtcbiAgbWFyZ2luOiAwIDAuNGVtIDAgMDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMC40ZW07XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSAuc3ViLW1lbnVbZGF0YS1sZXZlbD1cIjFcIl0gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gIG9yZGVyOiAxMDA7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudVtkYXRhLWxldmVsPVwiMVwiXSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGk6aG92ZXIgPiBhIHtcbiAgICBjb2xvcjogIzAwOTVGRjtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaTpob3ZlciAuc3ViLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaTpsYXN0LW9mLXR5cGUgLnN1Yi1tZW51IHtcbiAgcmlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpICFpbXBvcnRhbnQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpLmhhcy1jaGlsZHJlbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IGNhbGMoMTAwJSArIDFweCk7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtNTAlICsgY2FsYyh2YXIoLS1nYXApICogLTAuNSkpKSByb3RhdGUoNDVkZWcpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCUsIDUwJSA1MCUsIDAgMTAwJSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpLmhhcy1jaGlsZHJlbjpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICBuYXZpZ2F0aW9uLWJhciB7XG4gICAgLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzOiB2YXIoLS1nYXApO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUge1xuICAgIC0tZm9udC1zaXplOiAwLjllbTtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbGkubWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gIHN0cm9rZTogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lOm50aC1jaGlsZCgxKSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE1JSAzMCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lOm50aC1jaGlsZCgyKSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudSBzdmcgbGluZTpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgNzAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudS5hY3RpdmUgc3ZnIGxpbmU6bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUuYWN0aXZlIHN2ZyBsaW5lOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudS5hY3RpdmUgc3ZnIGxpbmU6bnRoLWNoaWxkKDMpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgMDtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGxpLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA0MHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIC5idXR0b24uc2VhcmNoIHtcbiAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgLS1wYWRkaW5nOiA0cHggMTBweDtcbiAgfVxuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBsaS5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbGkubWVudSBidXR0b24ubWVudSB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICB9XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBhLmxvZ28ge1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIHdpZHRoOiAyMDBweDtcbiAgbWluLXdpZHRoOiBpbml0aWFsO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmssXG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuLFxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpW2RhdGEtbmF2PXN1Ym1lbnVdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmRyb3Bkb3duLW1lbnUge1xuICAtLW1pbi1oZWlnaHQ6IDQzMHB4O1xuICAtLW1heC1oZWlnaHQ6IDYwMHB4O1xuICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogMjcwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2Utd2lkdGg6IDMwMHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLWhlaWdodDogODBweDtcbiAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gdmFyKC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzKSAtIDFweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAxZnI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLCBtYXJnaW4tdG9wIDAuM3MgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUgLnRvcC1sZXZlbC1saW5rcyAudG9wLWxldmVsLWxpbmsgLmxpbmsuY3VycmVudDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUgZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0KTtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuZHJvcGRvd24tbWVudTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLW1hcmtlci1saW5lLXRoaWNrbmVzcykpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiA1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLW1lbnUge1xuICAtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0OiB2YXIoLS1nYXApO1xuICB3aWR0aDogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAhaW1wb3J0YW50O1xuICByaWdodDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1tZW51IHtcbiAgICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLWd1dHRlcjMpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbmRyb3Bkb3duLWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWNvbHVtbjogMTtcbiAgZ3JpZC1yb3c6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIwXCJdIHtcbiAgei1pbmRleDogNTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIxXCJdIHtcbiAgei1pbmRleDogNDtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIyXCJdIHtcbiAgei1pbmRleDogMztcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgei1pbmRleDogMjtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCI0XCJdIHtcbiAgei1pbmRleDogMTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjllbTtcbiAgaGVpZ2h0OiAwLjllbTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk2OTY5NTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbmRyb3Bkb3duLWdyb3VwOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbmRyb3Bkb3duLWdyb3VwIC5saW5rIHtcbiAgLS1mb250LXNpemU6IDAuOWVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBhZGRpbmc6IDRweCBjYWxjKHZhcigtLWdhcCkgKiAyKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5kcm9wZG93bi1ncm91cCAubGluay5jdXJyZW50IHtcbiAgY29sb3I6ICNERjMwMzU7XG59XG5kcm9wZG93bi1ncm91cCAubGluay5hY3RpdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHotaW5kZXg6IDE7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIC5saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gIGxlZnQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuXG46bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkcm9wZG93bi1ncm91cCAubGFzdCAubGluay5hY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoMGRlZykgc2tldygtNDVkZWcsIDApO1xufVxuXG5kcm9wZG93bi1ncm91cCAubGluay5oYXMtY2hpbGRyZW4gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBkcm9wZG93bi1ncm91cCAubGluazpob3ZlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIH1cbn1cbmRyb3Bkb3duLWdyb3VwIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLmZpcnN0IHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5sYXN0IHtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWdhcCk7XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcgfiAuZmlyc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5kcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyAubGluayB7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IC5saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IC5saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbjpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG59XG46cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIHVsIGxpLmJhY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5kcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIC5saW5rIHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogMC40ZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0gbGkuYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMlwiXSB7XG4gIHdpZHRoOiA5NSU7XG4gIGxlZnQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB3aWR0aDogY2FsYyg5NSUgKyAycHgpO1xuICBvcGFjaXR5OiAwO1xuICBsZWZ0OiBjYWxjKDE5NSUgLSAxcHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzLCAwLjNzO1xufVxuZHJvcGRvd24tZ3JvdXAuYWxsb3ctc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbmRyb3Bkb3duLWdyb3VwLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5kcm9wZG93bi1ncm91cC5hY3RpdmVbZGF0YS1sZXZlbD1cIjJcIl0sIGRyb3Bkb3duLWdyb3VwLmFjdGl2ZVtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5kcm9wZG93bi1ncm91cDpub3QoLmFjdGl2ZSlbZGF0YS1sZXZlbD1cIjFcIl0sIGRyb3Bkb3duLWdyb3VwOm5vdCguYWN0aXZlKVtkYXRhLWxldmVsPVwiMlwiXSwgZHJvcGRvd24tZ3JvdXA6bm90KC5hY3RpdmUpW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgbGVmdDogMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG59XG5ib2R5Om5vdCgubW9iaWxlKSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cDpub3QoW2RhdGEtbGV2ZWw9XCIxXCJdKSAubGluayB7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG5cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIDAgMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMsIDAuNXM7XG4gIHRyYW5zZm9ybTogaW5pdGlhbCAhaW1wb3J0YW50O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjBcIl0ge1xuICB6LWluZGV4OiAxO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0ge1xuICB6LWluZGV4OiAyO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjJcIl0ge1xuICB6LWluZGV4OiAzO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB6LWluZGV4OiA0O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjRcIl0ge1xuICB6LWluZGV4OiA1O1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAgLmxpbmsge1xuICAtLWZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldywgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAgdWwgbGkuYmFjayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbmRyb3Bkb3duLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGp1c3RpZnktaXRlbXM6IGZsZXgtZW5kO1xufVxuZHJvcGRvd24taW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5kcm9wZG93bi1pbWFnZSAuaW1hZ2Uge1xuICB3aWR0aDogY2xhbXAodmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpIC8gMiwgMzB2dywgdmFyKC0tZHJvcGRvd24taW1hZ2Utd2lkdGgpKTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuZHJvcGRvd24taW1hZ2UgLmltYWdlLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5kcm9wZG93bi1pbWFnZSAuaW1hZ2UuYWN0aXZlIGltZyB7XG4gIG9wYWNpdHk6IDE7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1pbWFnZSB7XG4gIGdyaWQtY29sdW1uOiAxO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogdmFyKC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaXRpYWw7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1pbWFnZSAuaW1hZ2Uge1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uaGVhZGVyIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG59XG4uaGVhZGVyID4gaDEgc3VwIHtcbiAgZm9udC1zaXplOiAwLjZlbTtcbn1cbi5oZWFkZXIgPiBoMSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC4zNzVlbTtcbiAgY29sb3I6ICM5Njk2OTU7XG59XG4uaGVhZGVyID4gaDEgKyAqLCAuaGVhZGVyID4gaDIgKyAqIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG59XG4uaGVhZGVyID4gaDEgKyBoMiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjApO1xufVxuLmhlYWRlciA+IGgyIHtcbiAgY29sb3I6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7XG4gIGZvbnQtZmFtaWx5OiBsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaGVhZGVyID4gaDIgYSB7XG4gIC0tZm9udC1jb2xvdXI6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmhlYWRlciA+IGgyIGE6aG92ZXIge1xuICAgIC0tZm9udC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB9XG59XG4uaGVhZGVyIHRpbWUge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW46IHZhcigtLWd1dHRlcjEpIDA7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRhZy1jb2xvdXIsICNERjMwMzUpO1xufVxuLmhlYWRlciBidXR0b24tY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuaGVhZGVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbiBzcGFuIHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4uaGVhZGVyIG5vdGljZS1tZXNzYWdlcyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xufVxuLmhlYWRlci5kYXJrIHtcbiAgLS1oZWFkaW5nLWNvbG91cjp3aGl0ZTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXI6d2hpdGU7XG59XG4uaGVhZGVyLmRhcmsgLmJ1dHRvbi5icm9jaHVyZSB7XG4gIC0tZm9udC1jb2xvdXI6d2hpdGU7XG59XG4uaGVhZGVyLmRhcmsgLmJ1dHRvbi5icm9jaHVyZSBzdmcge1xuICBmaWxsOiB3aGl0ZTtcbn1cbi5oZWFkZXIubm8tZGV2aWRlci1saW5lIH4gbWFpbiB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi5oZWFkZXIubm8tZGV2aWRlci1saW5lIH4gbWFpbiA+IC5jb250ZW50LWJsb2NrOmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxuZm9vdGVyI2Zvb3RlciB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMDBweDtcbn1cbmZvb3RlciNmb290ZXIgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGZvb3RlciNmb290ZXIgYTpob3ZlciB7XG4gICAgY29sb3I6ICNlNDRmNTM7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgYS5jdXJyZW50IHtcbiAgY29sb3I6ICNlNDRmNTM7XG59XG5mb290ZXIjZm9vdGVyIGEuY3VycmVudCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFjay10by10b3Age1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1nYXApICogLTEpIGF1dG8gdmFyKC0tZ2FwKSBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhY2stdG8tdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuQHN1cHBvcnRzICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMTJweCwgMS41dncsIDAuNGVtKTtcbiAgfVxufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBAbWVkaWEgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE2MDFweCkge1xuICAgIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAwLjRlbTtcbiAgICB9XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkgYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC50YWctbGluZS1zaWduLW9mZiB0YWctbGluZSBzcGFuIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgPiBuYXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBmbGV4LWdyb3c6IDE7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bCBsaSArIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvb3RlciNmb290ZXIgPiBuYXYgdWw6bGFzdC1vZi10eXBlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMzNweCwgMWZyKSk7XG4gIGdyaWQtZ2FwOiAwIHZhcigtLWdhcCk7XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHVsOmxhc3Qtb2YtdHlwZSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5mb290ZXIjZm9vdGVyIC5oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuZm9vdGVyI2Zvb3RlciAuaGVhZGluZzo6YmVmb3JlLCBmb290ZXIjZm9vdGVyIC5oZWFkaW5nOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb290ZXIjZm9vdGVyIC5oZWFkaW5nIGEge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbn1cbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVubTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ3JpZC1nYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbn1cbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIHNtYWxsLFxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgLnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjYyNWVtO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgc21hbGwgYnIsXG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyAuc21hbGwgYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI0MHB4O1xuICBwb3NpdGlvbjogaW5pdGlhbDtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xuICAgIGhlaWdodDogM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xLjVweDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEueWVsbG8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgdmFyKC0tZ2FwKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvOmhvdmVyIHNwYW4ge1xuICAgIGNvbG9yOiAjRkZDQjA4O1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGFkbWluLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpO1xuICBsZWZ0OiAwO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhZG1pbi1saW5rcyBhIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIHtcbiAgLS1sb2dvLXNwYWNlcjogMjAwcHg7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEpIGludmVydCgxKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWxvZ28tc3BhY2VyKTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMikpO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogY2FsYyh2YXIoLS1sb2dvLXNwYWNlcikgKiAtMSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciA+IG5hdiB1bDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgc21hbGwgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBmb290ZXIjZm9vdGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBmb290ZXIjZm9vdGVyID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciA+IG5hdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBmb290ZXIjZm9vdGVyID4gbmF2IHVsOmxhc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ28ge1xuICAgIG9yZGVyOiAxO1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIHNvY2lhbC1tZWRpYSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMC0pO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYWRtaW4tbGlua3Mge1xuICAgIG9yZGVyOiAzO1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG4gIH1cbn1cblxuLmNsLWNvbnNlbnQtc2V0dGluZ3Mge1xuICBsZWZ0OiB1bnNldCAhaW1wb3J0YW50O1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS1ndXR0ZXIzKSAqIDIuNzUpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgLmNsLWNvbnNlbnQtc2V0dGluZ3Mge1xuICAgIGJvdHRvbTogdmFyKC0tZ3V0dGVyNSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxMzFmNmI7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICMyOTJCNjg7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwLjc7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pKTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLm5vbmU6OmFmdGVyIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLnJlZCB7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICNERjMwMzU7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICNERjMwMzU7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS5ibGFjayB7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxRTFBMUE7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICMxRTFBMUE7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS50aWxlIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UudGlsZSBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2U6bm90KC50aWxlKSB7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBibGFjayAyMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xufVxuXG5ib2R5Lm1vYmlsZSA+IGJhY2tncm91bmQtaW1hZ2UsIGJvZHkubW9iaWxlID4gYmFja2dyb3VuZC12aWRlbyB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG59XG5cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8gdmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSwgdHJhbnNwYXJlbnQpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bywgYmxhY2spKTtcbn1cblxuI2JyZWFkY3J1bWJzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRvcCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbiNicmVhZGNydW1icy1iYXIgdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgd2lkdGg6IDEwMCU7XG59XG4jYnJlYWRjcnVtYnMtYmFyIHVsIGxpIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2JyZWFkY3J1bWJzLWJhciB1bCBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMTI1ZW07XG4gIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2JyZWFkY3J1bWJzLWJhciAubGluayBzdmcge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMC43ZW07XG4gIGhlaWdodDogMC43ZW07XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgI2JyZWFkY3J1bWJzLWJhciAubGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIH1cbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsuY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xufVxuI2JyZWFkY3J1bWJzLWJhciAubGluay5jdXJyZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbmJvZHkubW9iaWxlID4gI2JyZWFkY3J1bWJzLWJhciB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNhbmNob3JzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdG9wIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuI2FuY2hvcnMtYmFyIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTY4MHB4KSB7XG4gIDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgI2FuY2hvcnMtYmFyIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjItKTtcbiAgfVxuICA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pICNhbmNob3JzLWJhciAuY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSAjYW5jaG9ycy1iYXIge1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tZ3V0dGVyMikgKyBjYWxjKHZhcigtLWdhcCkgKiAwLjUpKTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbn1cbjpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0gI2FuY2hvcnMtYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiBpbml0aWFsO1xufVxuOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSAjYW5jaG9ycy1iYXIgLmNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xufVxuXG4jYW5jaG9ycy1iYXI6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xufVxuI2FuY2hvcnMtYmFyIGEge1xuICBncmlkLXJvdzogMTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiAjMTMxZjZiO1xufVxuI2FuY2hvcnMtYmFyIGEgKyBhIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgI2FuY2hvcnMtYmFyIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xuICB9XG59XG4jYW5jaG9ycy1iYXIgYTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpIDAuMnM7XG59XG4jYW5jaG9ycy1iYXIgYS5jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG59XG4jYW5jaG9ycy1iYXIgYS5jdXJyZW50OjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xufVxuXG5zaWRlLWJhciA+IGRpdiA+ICoge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgb3JkZXI6IDM7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSk7XG59XG5zaWRlLWJhciA+IGRpdiA+ICo6bm90KC53aGl0ZSkge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG59XG5zaWRlLWJhciA+IGRpdiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIge1xuICBvcmRlcjogMTtcbn1cbnNpZGUtYmFyID4gZGl2IHNlcnZpY2UtY2VudHJlLWZpbmRlciB+ICNncmFkZXMtc2lkZWJhci1saXN0IHtcbiAgb3JkZXI6IDI7XG59XG5zaWRlLWJhciA+IGRpdiAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjApO1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuc2lkZS1iYXIgPiBkaXYgPiBkaXYuc2lkZWJhci1sb2dvcyB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5zaWRlLWJhciA+IGRpdiA+IGRpdi5zaWRlYmFyLWxvZ29zIGltZyB7XG4gIG1heC13aWR0aDogNTAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuc2lkZS1iYXIgPiBkaXYgPiBkaXYuc2lkZWJhci1sb2dvcyBzdmcge1xuICBtYXgtd2lkdGg6IDE1MHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyxcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSxcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBoMyBzcGFuLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGgzIHNwYW4sXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgaDMgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGRpdixcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBkaXYsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgZGl2IHtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5iYWNrZ3JvdW5kLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5iYWNrZ3JvdW5kLFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5iYWNrZ3JvdW5kIHtcbiAgb3BhY2l0eTogMC4yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogMTAwJSAwJTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2UgaW1nLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5pbWFnZSBpbWcsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgLmltYWdlIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbn1cbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciAuaW1hZ2Uge1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xufVxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5pbWFnZSBpbWcge1xuICB3aWR0aDogYXV0bztcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyB7XG4gIGJhY2tncm91bmQ6ICMzMzMyMzY7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogMjI1cHg7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBoMyBzcGFuIHtcbiAgY29sb3I6ICNERjMwMzU7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmJhY2tncm91bmQge1xuICBvcGFjaXR5OiAxO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gIHNpZGUtYmFyICNwb3dkZXItdHVicyBoMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDMwMHB4O1xuICB9XG4gIHNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2Uge1xuICAgIGhlaWdodDogMzUwcHg7XG4gIH1cbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB7XG4gIC0tZ3JlZW5lci1ncmVlbjogIzRlY2IzZDtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBoMyB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGgzIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5pbWFnZSB7XG4gIGhlaWdodDogOTBweDtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IGF1dG87XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIGxpIHtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwgbGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogMDtcbiAgY29udGVudDogXCJcIjtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCBsaTphZnRlciB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA3cHg7XG4gIHRvcDogNnB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gIHNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3Njc2NztcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXJlbSBib3R0b207XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIwKTtcbn1cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHAge1xuICBmb250LXNpemU6IDJyZW07XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuQG1lZGlhICh3aWR0aCA+IDE0MDBweCkge1xuICAuc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy91cGxvYWRzL2ltYWdlcy8yMG1waC1zaWduLnBuZ1wiKTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTYwcHg7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2tcXDppc28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzRiZjAzO1xuICBib3JkZXI6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2lkZWJhci1ibG9ja1xcOmlzbyBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnNvY2lhbC1tZWRpYSB7XG4gIC0taWNvbi1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taWNvbi1zaXplOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuc29jaWFsLW1lZGlhIGEge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwKTtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuc29jaWFsLW1lZGlhIGEgc3ZnIHtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgZmlsbDogdmFyKC0taWNvbi1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmZhY2Vib29rIHtcbiAgICAtLWljb24tY29sb3VyOiAjMTg3N2YyO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnR3aXR0ZXIge1xuICAgIC0taWNvbi1jb2xvdXI6ICMxZGExZjI7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZ29vZ2xlIHtcbiAgICAtLWljb24tY29sb3VyOiAjNDI4NWY0O1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnlvdXR1YmUge1xuICAgIC0taWNvbi1jb2xvdXI6ICNmZjAwMDA7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIubGlua2VkaW4ge1xuICAgIC0taWNvbi1jb2xvdXI6ICMwMDdiYjU7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuaW5zdGFncmFtIHtcbiAgICAtLWljb24tY29sb3VyOiAjYzMyYWEzO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnBpbnRlcmVzdCB7XG4gICAgLS1pY29uLWNvbG91cjogI2JkMDgxYztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5kYWlseW1vdGlvbiB7XG4gICAgLS1pY29uLWNvbG91cjogIzAwNjZEQztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5zbmFwY2hhdCB7XG4gICAgLS1pY29uLWNvbG91cjogI2ZmZmMwMDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5mbGlja3Ige1xuICAgIC0taWNvbi1jb2xvdXI6ICNmNDAwODM7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIudmltZW8ge1xuICAgIC0taWNvbi1jb2xvdXI6ICMxYWI3ZWE7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIudGh1bWJsZXIge1xuICAgIC0taWNvbi1jb2xvdXI6ICMzNTQ2NWQ7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIucmVkZGl0IHtcbiAgICAtLWljb24tY29sb3VyOiAjZmY0NTAwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLndoYXRzYXBwIHtcbiAgICAtLWljb24tY29sb3VyOiAjMjVkMzY2O1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnNreXBlIHtcbiAgICAtLWljb24tY29sb3VyOiAjMDBhZmYwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmRpc2NvcmQge1xuICAgIC0taWNvbi1jb2xvdXI6ICM3Mjg5ZGE7XG4gIH1cbn1cbnNvY2lhbC1tZWRpYSBhIHNwYW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRjRGNEY0O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgPiAqIHtcbiAgb3JkZXI6IDI7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5zdWJoZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICM2QTZBNkE7XG4gIG1heC13aWR0aDogNzVjaDtcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLnN1YmhlYWRpbmcgKyAudGltZXN0YW1wIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmludHJvZHVjdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbWF4LXdpZHRoOiA3NWNoO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuYnV0dG9uIHtcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciB0aW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciB7XG4gIC0tcGhvdG8tc2l6ZTogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAubmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzEzMWY2YjtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBvcmRlcjogMTtcbiAgbWluLWhlaWdodDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLm5hbWUgZW0ge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLnRpbWVzdGFtcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3JkZXI6IDI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLnRpbWVzdGFtcCwgLmFydGljbGUgLmNvbnRhaW5lciAuYXV0aG9yIC50aW1lc3RhbXAgfiAubmFtZSB7XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcGhvdG8tc2l6ZSkgLyAyKTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAuaW1hZ2Uge1xuICB3aWR0aDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1waG90by1zaXplKSAvIDIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAuaW1hZ2UgfiAqIHtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpICsgdmFyKC0tZ2FwKSk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyID4gLmltYWdlIHtcbiAgb3JkZXI6IDE7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCwgMTgwcHgpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tZ3V0dGVyMykpO1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEtKTtcbn1cbi5hcnRpY2xlIGEge1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuYXJ0aWNsZSBhOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB9XG59XG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj10aXRsZV1bZGF0YS1jb250YWlucyo9dGltZXN0YW1wXVtkYXRhLWNvbnRhaW5zKj1hdXRob3JdW2RhdGEtY29udGFpbnMqPWJ1dHRvbl1bZGF0YS1jb250YWlucyo9aW1hZ2VdOm5vdChbZGF0YS1jb250YWlucyo9c3ViaGVhZGluZ10pOm5vdChbZGF0YS1jb250YWlucyo9aW50cm9kdWN0aW9uXSkgLmNvbnRhaW5lciAudGltZXN0YW1wIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuLmFydGljbGVbZGF0YS1jb250YWlucyo9dGl0bGVdW2RhdGEtY29udGFpbnMqPWltYWdlXTpub3QoW2RhdGEtY29udGFpbnMqPXRpbWVzdGFtcF0pOm5vdChbZGF0YS1jb250YWlucyo9YXV0aG9yXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1idXR0b25dKTpub3QoW2RhdGEtY29udGFpbnMqPXN1YmhlYWRpbmddKTpub3QoW2RhdGEtY29udGFpbnMqPWludHJvZHVjdGlvbl0pIC5jb250YWluZXIgLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmFydGljbGVbZGF0YS1jb250YWlucyo9dGl0bGVdW2RhdGEtY29udGFpbnMqPWltYWdlXTpub3QoW2RhdGEtY29udGFpbnMqPXRpbWVzdGFtcF0pOm5vdChbZGF0YS1jb250YWlucyo9YXV0aG9yXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1idXR0b25dKTpub3QoW2RhdGEtY29udGFpbnMqPXN1YmhlYWRpbmddKTpub3QoW2RhdGEtY29udGFpbnMqPWludHJvZHVjdGlvbl0pIC5jb250YWluZXIgPiAuaW1hZ2Uge1xuICAtLWltYWdlLWhlaWdodDogMTMwcHg7XG59XG5cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXNlcnZpY2VDZW50cmVzXSAuY29udGFpbmVyIGRpdiB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj1zZXJ2aWNlQ2VudHJlc10gLmNvbnRhaW5lciBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbnRhZy1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZ2FwOiB2YXIoLS1nYXApO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxudGFnLWxpbmUgc3BhbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC41ZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxudGFnLWxpbmUgc3ZnIHtcbiAgY29sb3I6ICNERjMwMzU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWdhcCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgdGFnLWxpbmUge1xuICAgIGdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNlcjApIDA7XG4gIH1cbiAgdGFnLWxpbmUgc3BhbiB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgfVxuICB0YWctbGluZSBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgfVxufVxuXG5zaWRlLWJhciBmb3JtIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBCQzA4O1xuICBjb2xvcjogd2hpdGU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW46IDAgLTE1cHggdmFyKC0tZ2FwKTtcbn1cbnNpZGUtYmFyIGZvcm0gLnN1Ym1pdC1yb3cge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuXG5mb3JtIHNlbGVjdCB7XG4gIC0tZm9udC1jb2xvdXI6ICM2QTZBNkE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gdmFyKC0tZ2FwKSkgY2VudGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3LjQnIGhlaWdodD0nMTAuMSclM0UlM0NwYXRoIGQ9J00xNi43LjdsLTggOC04LTgnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMUUxQTFBJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbmZvcm0gc2VsZWN0OjpwbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9ybSBzZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjMTMxZjZiO1xufVxuZm9ybSBzZWxlY3Q6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZm9ybSBzZWxlY3QuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pIHtcbiAgLS1mb250LWNvbG91cjogIzZBNkE2QTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSk6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKS5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbmZvcm0gdGV4dGFyZWEge1xuICAtLWZvbnQtY29sb3VyOiAjNkE2QTZBO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuZm9ybSB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lLWNvbG9yOiAjMTMxZjZiO1xufVxuZm9ybSB0ZXh0YXJlYTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtIHRleHRhcmVhLmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuZm9ybSBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuZm9ybSBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuZm9ybSBpbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuZm9ybSB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuZm9ybSB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuZm9ybSB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzIHtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCBpbmhlcml0KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgd2hpdGUpIGluc2V0O1xufVxuZm9ybVtkYXRhLWZyZWVmb3JtXSBsYWJlbCArIGRpdiB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuZm9ybVtkYXRhLWZyZWVmb3JtXSAuZnJlZWZvcm0tcm93ICsgLmZyZWVmb3JtLXJvdyA+IGRpdiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5mb3JtW2RhdGEtZnJlZWZvcm1dIC5mcmVlZm9ybS1jb2x1bW4ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5zaWRlLWJhciBmb3JtIGxhYmVsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuc2lkZS1iYXIgZm9ybSBsYWJlbCB+IGRpdiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuZm9ybSNsb2dpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5mb3JtI2xvZ2luID4gbGFiZWwgfiBsYWJlbCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5mb3JtI2xvZ2luIGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbiAgZm9udC1zaXplOiAwLjc1ZW07XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBmb3JtI2xvZ2luIGRpdiBhOmhvdmVyIHtcbiAgICBjb2xvcjogI0RGMzAzNTtcbiAgfVxufVxuZm9ybSNsb2dpbiBidXR0b24ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuXG5mb3JtI3Jlc2V0LXBhc3N3b3JkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmZvcm0jcmVzZXQtcGFzc3dvcmQgYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cblxucmVxdWlyZWQtbm90aWNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpY2UtY29sb3VyLCAjNTBCQzA4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbn1cbnJlcXVpcmVkLW5vdGljZSBzcGFuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGNhbGMoMTAwJSArIGNhbGModmFyKC0tZ2FwKSAqIDAuNSkpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiA0cHggY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAtNTAlKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICByZXF1aXJlZC1ub3RpY2U6aG92ZXIgc3BhbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzLFxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwQkMwODtcbiAgY29sb3I6IHdoaXRlO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMSk7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWZvcm0tZXJyb3JzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpIHZhcigtLWd1dHRlcjEpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDYwMXB4KSB7XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93OmZpcnN0LWNoaWxkLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93OmZpcnN0LWNoaWxkIHtcbiAgICBncmlkLXJvdzogMTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZmlyc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lmxhc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmVtYWlsLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29tcGFueS1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29udGFjdC1ubywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnktcnFnMTgxay1kLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmZpcnN0LW5hbWUsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGFzdC1uYW1lLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmVtYWlsLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbXBhbnktbmFtZSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb250YWN0LW5vLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnktcnFnMTgxay1kIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBncmlkLXJvdzogMi9zcGFuIDU7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnN1Ym1pdC1yb3csXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc3VibWl0LXJvdyB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBidXR0b25bdHlwZT1zdWJtaXRdLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgfVxufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBoMixcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGgyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgaDIgc3ZnLmVtYWlsLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgaDIgc3ZnLmVtYWlsIHtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIGZpbGw6ICNERjMwMzU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3csXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0taW5zdHJ1Y3Rpb25zLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1pbnN0cnVjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgdGV4dGFyZWEsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgdGV4dGFyZWEge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4ge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cgLmZyZWVmb3JtLWNvbHVtbixcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cgLmZyZWVmb3JtLWNvbHVtbiB7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4gbGFiZWw6bm90KC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsKSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbDpub3QoLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGVhZC1zdGF0dXMsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5pbnRlcm5hbC1ub3RlcywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lm9yZGVyLXZhbHVlLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sZWFkLXN0YXR1cyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuaW50ZXJuYWwtbm90ZXMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lm9yZGVyLXZhbHVlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwge1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGdyaWQtY29sdW1uOiAxO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIGlucHV0LFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCBpbnB1dCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCBpbnB1dDpjaGVja2VkLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCBpbnB1dDpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwQkMwODtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgc2VsZWN0LFxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyB0ZXh0YXJlYSxcbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgc2VsZWN0LFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgdGV4dGFyZWEsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSkge1xuICAtLWJvcmRlci1jb2xvdXI6IG5vbmU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1lcnJvcnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1lcnJvcnMge1xuICBjb2xvcjogI0RGMzAzNTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC42MjVlbTtcbiAgcGFkZGluZzogMnB4IHZhcigtLWdhcCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgLSA0cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xuICBjb2xvcjogd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIGJ1dHRvblt0eXBlPXN1Ym1pdF0sXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0taW5wdXRbcmVxdWlyZWRdOm5vdCg6dmFsaWQpIH4gcmVxdWlyZWQtbm90aWNlLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0taW5wdXRbcmVxdWlyZWRdOm5vdCg6dmFsaWQpIH4gcmVxdWlyZWQtbm90aWNlIHtcbiAgLS1ub3RpY2UtY29sb3VyOiAjREYzMDM1O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdOm5vdCg6dmFsaWQpIGJ1dHRvblt0eXBlPXN1Ym1pdF0sXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdOm5vdCg6dmFsaWQpIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICM5Njk2OTU7XG4gIC0tYm9yZGVyLWNvbG91cjogIzk2OTY5NTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogIzk2OTY5NTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogIzk2OTY5NTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuc2VydmljZS1jZW50cmUsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5zZXJ2aWNlLWNlbnRyZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMXB4KSB7XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3c6Zmlyc3QtY2hpbGQge1xuICAgIGdyaWQtcm93OiAxO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5maXJzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGFzdC1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZW1haWwsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb21wYW55LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb250YWN0LW5vLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cueS1ycWcxODFrLWQsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5wcm9kdWN0IHtcbiAgICBncmlkLWNvbHVtbjogMS8yO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICBncmlkLWNvbHVtbjogMi8tMTtcbiAgICBncmlkLXJvdzogMi9zcGFuIDY7XG4gIH1cbn1cblxuYm9keSNlZGl0IGZvcm0gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSBpbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xufVxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cge1xuICBvcmRlcjogMjA7XG59XG5ib2R5I2VkaXQgZm9ybSAuZnJlZWZvcm0tcm93IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0LFxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnksXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLm9yZGVyLXZhbHVlIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyAuZnJlZWZvcm0tY29sdW1uIGlucHV0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkge1xuICBncmlkLXJvdzogMS9zcGFuIDY7XG59XG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5maXJzdC1uYW1lIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5wcm9kdWN0IGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3Qgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5ib2R5I2VkaXQgZm9ybSAuZGV0YWlsc29mZW5xdWlyeSB0ZXh0YXJlYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIGxhYmVsLFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSAuZnJlZWZvcm0tY29sdW1uIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG5tb2RhbC13cmFwcGVyIHtcbiAgLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAtLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0tbWluLXdpZHRoOjMwMHB4O1xuICAtLW1heC13aWR0aDoxMTIwcHg7XG4gIC0td2lkdGg6Y2xhbXAodmFyKC0tbWluLXdpZHRoKSwgOTB2dywgZml0LWNvbnRlbnQpO1xuICAtLW1pbi1oZWlnaHQ6NjAwcHg7XG4gIC0tbWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gdmFyKC0tZ3V0dGVyMikpO1xuICAtLWhlaWdodDpjbGFtcCh2YXIoLS1taW4taGVpZ2h0KSwgOTB2dywgZml0LWNvbnRlbnQpO1xuICAtLWNsb3NlLWJ1dHRvbi1zaXplOiAzMHB4O1xuICAtLW5hdi1idXR0b24tc2l6ZTogNDBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5Ac3VwcG9ydHMgKC0tdjotd2Via2l0LWZpbGwtYXZhaWxhYmxlICkge1xuICBtb2RhbC13cmFwcGVyIHtcbiAgICAtLW1heC1oZWlnaHQ6LXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbiAgfVxufVxubW9kYWwtd3JhcHBlci5sb2FkaW5nIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkgMC4zcztcbn1cbm1vZGFsLXdyYXBwZXIubG9hZGluZyBtb2RhbC1jb250YWluZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnZoKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzLCAwLjY4NSwgMC4yMik7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB3aWR0aDogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlIHN2ZyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLS1maWxsOnZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZSBzdmcgY2lyY2xlLCBtb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZSBzdmcgcGF0aCB7XG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2U6aG92ZXIgc3ZnIHtcbiAgICAtLWZpbGw6d2hpdGU7XG4gICAgLS1zdHJva2U6dmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgfVxufVxubW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLW5hdi1idXR0b24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tbmF2LWJ1dHRvbi1zaXplKTtcbiAgdG9wOiBjYWxjKDUwJSAtIHZhcigtLW5hdi1idXR0b24tc2l6ZSkgLyAyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMge1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb24ubmV4dCB7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb24gc3ZnIHtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MCU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBtb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbn1cblxubW9kYWwtY29udGFpbmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpIDAuM3MsIHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgMC4zcztcbiAgd2lkdGg6IHZhcigtLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1oZWlnaHQpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogdmFyKC0tZ3V0dGVyMSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIG1vZGFsLWNvbnRhaW5lciB7XG4gICAgLS13aWR0aDogNjB2dztcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgbWluLXdpZHRoOiB2YXIoLS1taW4td2lkdGgpO1xuICAgIC0taGVpZ2h0OiA4MHZ3O1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLW1heC1oZWlnaHQpO1xuICAgIG1pbi1oZWlnaHQ6IHZhcigtLW1pbi1oZWlnaHQpO1xuICB9XG59XG5tb2RhbC1jb250YWluZXI6ZW1wdHkge1xuICB3aWR0aDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpIC8gMik7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAvIDIpO1xufVxubW9kYWwtY29udGFpbmVyOmVtcHR5OmFmdGVyIHtcbiAgLS1zaXplOiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCAjOTY5Njk1KTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG59XG5Aa2V5ZnJhbWVzIGxvYWRlci1yb3RhdGUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxubW9kYWwtY29udGFpbmVyID4gYnV0dG9uLmNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvcmRlcjogLTE7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB0b3A6IGluaXRpYWw7XG4gIHJpZ2h0OiBpbml0aWFsO1xuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkgLyAyKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpIC8gMik7XG59XG5cbm1vZGFsLWNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xufVxubW9kYWwtY29udGVudCA+ICoge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPWltYWdlXSAuaW1hZ2Uge1xuICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLW1heC1oZWlnaHQpIC0gdmFyKC0tZ3V0dGVyNikpO1xuICBib3JkZXI6IG5vbmU7XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1pbWFnZV0gLmltYWdlIGltZyB7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1ndXR0ZXIzKSAtIHZhcigtLWd1dHRlcjQpKTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1kZWZhdWx0XSBtb2RhbC1jb250ZW50ID4gaW1nW3NyYyo9XCIuc3ZnXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIHtcbiAgLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciB7XG4gIC0tYXNwZWN0LXJhdGlvOiAxNi85O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCk7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDE2LzkpIHtcbiAgbW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBtb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyID4gKiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT12aWRlb10gbW9kYWwtY29udGFpbmVyIGlmcmFtZSwgbW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciBjYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciBtb2RhbC1jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuXG4ub3Blbi1pbi1tb2RhbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbi5vcGVuLWluLW1vZGFsOmFmdGVyIHtcbiAgLS1zaXplOiAyMHB4O1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLXNpemUpIC8gMik7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCB3aGl0ZSk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG59XG5Aa2V5ZnJhbWVzIGxvYWRlci1yb3RhdGUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxuLm9wZW4taW4tbW9kYWwubG9hZGluZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm9wZW4taW4tbW9kYWwubG9hZGluZzphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xufVxuXG5pbWcub3Blbi1pbi1tb2RhbCwgLm9wZW4taW4tbW9kYWwgaW1nIHtcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gIC1raHRtbC11c2VyLWRyYWc6IG5vbmU7XG4gIC1tb3otdXNlci1kcmFnOiBub25lO1xuICAtby11c2VyLWRyYWc6IG5vbmU7XG4gIHVzZXItZHJhZzogbm9uZTtcbn1cblxuOnJvb3Qge1xuICAtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0OiAxcmVtO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtZW50ZXI6IDAgdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQpO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtbGVhdmU6IDAgY2FsYygtMSAqIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KSk7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbjogMC40cztcbiAgLS1kaWFsb2ctZ2FwOiB2YXIoLS1ndXR0ZXIyKTtcbiAgLS1kaWFsb2ctY29udGVudC1tYXgtd2lkdGg6IDEwODBweDtcbiAgLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG5kaWFsb2cubW9kYWwge1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiBpbml0aWFsO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2xhdGU6IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZW50ZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3ZlcmxheSwgZGlzcGxheSwgdHJhbnNsYXRlLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiA5OTk7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwZHZoO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG59XG5kaWFsb2cubW9kYWwgKixcbmRpYWxvZy5tb2RhbCAqOjpiZWZvcmUsXG5kaWFsb2cubW9kYWwgKjo6YWZ0ZXIsIGRpYWxvZy5tb2RhbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5kaWFsb2cubW9kYWw6OmJhY2tkcm9wIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3ZlcmxheSwgZGlzcGxheSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cik7XG4gIG9wYWNpdHk6IDA7XG59XG5kaWFsb2cubW9kYWwgLmRpYWxvZ1xcOmNvbnRlbnRzIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpcmVjdGlvbjogbHRyO1xuICBib3JkZXItcmFkaXVzOiAwLjZlbTtcbiAgbWF4LWhlaWdodDogMTAwZHZoO1xuICBwYWRkaW5nOiB2YXIoLS1kaWFsb2ctZ2FwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXIpO1xuICB3aWR0aDogbWluKDEwMCUsIHZhcigtLWRpYWxvZy1jb250ZW50LW1heC13aWR0aCkpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuZGlhbG9nLm1vZGFsW29wZW5dIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNsYXRlOiAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5Ac3RhcnRpbmctc3R5bGUge1xuICBkaWFsb2cubW9kYWxbb3Blbl0ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlKTtcbiAgfVxufVxuZGlhbG9nLm1vZGFsW29wZW5dOjpiYWNrZHJvcCB7XG4gIG9wYWNpdHk6IDE7XG59XG5Ac3RhcnRpbmctc3R5bGUge1xuICBkaWFsb2cubW9kYWxbb3Blbl06OmJhY2tkcm9wIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5kaWFsb2cubW9kYWwgYnV0dG9uLmRpYWxvZ1xcOmNsb3NlIHtcbiAgYWxsOiB1bnNldDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoMC41ICogdmFyKC0tZGlhbG9nLWdhcCkpO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbn1cbmRpYWxvZy5tb2RhbCBidXR0b24uZGlhbG9nXFw6Y2xvc2Ugc3BhbiB7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5kaWFsb2cubW9kYWwgYnV0dG9uLmRpYWxvZ1xcOmNsb3NlOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAwLjQ7XG59XG5kaWFsb2cubW9kYWwgYnV0dG9uLmRpYWxvZ1xcOmNsb3NlIHNwYW46aG92ZXIge1xuICBjb2xvcjogIzdmY2ZmMztcbn1cbmRpYWxvZy5tb2RhbCBidXR0b24uZGlhbG9nXFw6Y2xvc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgaGVpZ2h0OiBjYWxjKDEwMGR2aCArIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KSk7XG4gIHdpZHRoOiBjYWxjKDEwMGR2dyArIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KSk7XG4gIHRyYW5zbGF0ZTogLTUwJSAtNTAlO1xuICB6LWluZGV4OiAtMTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKSBlYXNlLWluLW91dDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cik7XG59XG46cm9vdDpoYXMoZGlhbG9nLm1vZGFsW29wZW5dKSBbZGF0YS1tb2RhbF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNvbnRlbnQtYmxvY2sge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbi1jb3VudCksIDFmcik7XG59XG4uY29udGVudC1ibG9jazplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY29udGVudC1ibG9jay5ibG93b3V0LnRoZW1lZCB+IC5jb250ZW50LWJsb2NrOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4uY29udGVudC1ibG9jazpub3QoLmJsb3dvdXQpLnRoZW1lZDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrICsgLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI2RjZGNkYyk7XG59XG4uY29udGVudC1ibG9jayBoMiwgLmNvbnRlbnQtYmxvY2sgaDMsIC5jb250ZW50LWJsb2NrIGg0LCAuY29udGVudC1ibG9jayBoNSwgLmNvbnRlbnQtYmxvY2sgaDYge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLmNvbnRlbnQtYmxvY2suZ3JleSB7XG4gIGJhY2tncm91bmQ6ICNGNEY0RjQ7XG59XG4uY29udGVudC1ibG9jay5yZWQge1xuICBiYWNrZ3JvdW5kOiAjREYzMDM1O1xufVxuLmNvbnRlbnQtYmxvY2suYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMxMzFmNmI7XG59XG5cbi50ZXh0IGEge1xuICAtLWZvbnQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC50ZXh0IGE6aG92ZXIge1xuICAgIC0tZm9udC1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIH1cbn1cbi50ZXh0IGEgYS5idXR0b24ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0RGMzAzNScgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnRleHQgdWwgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKSAqIDEuOCk7XG59XG4udGV4dCB1bCA+IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1saW5lLXN0eWxlLXNwYWNpbmcsIHZhcigtLWdhcCkpO1xufVxuLnRleHQgdWwgPiBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDAuMWVtO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSk7XG4gIGhlaWdodDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xufVxuLnRleHQgb2wge1xuICBjb3VudGVyLXJlc2V0OiBjb3VudGVyO1xufVxuLnRleHQgb2wgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjJweDtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWxpc3Qtc3R5bGUtb2Zmc2V0LCAwKTtcbn1cbi50ZXh0IG9sID4gbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG4udGV4dCBvbCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKGNvdW50ZXIpIFwiLlwiO1xuICBjb3VudGVyLWluY3JlbWVudDogY291bnRlcjtcbiAgY29sb3I6IHZhcigtLWxpc3Qtc3R5bGUtY29sb3VyLCB2YXIoLS1wcmltYXJ5KSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi50ZXh0IHA6ZW1wdHksIC50ZXh0IHAgPiBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGV4dCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4udGV4dCA+ICogdWwsIC50ZXh0ID4gKiBvbCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG4udGV4dCBoMiwgLnRleHQgaDMsIC50ZXh0IGg0LCAudGV4dCBoNSwgLnRleHQgaDYge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLnRleHQgLmhlYWRpbmctaDMge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjREYzMDM1KTtcbn1cbi50ZXh0IFtzdHlsZSo9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIl0ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi50ZXh0IC5xdW90ZXMge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNkY2RjZGM7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ2FwKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLnRleHQgZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xufVxuLnRleHQgZmlndXJlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi50ZXh0IGhyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCkgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCkgIWltcG9ydGFudDtcbn1cbi50ZXh0IC5ub3RlIHtcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWdhcCkgKiAyKSAwO1xufVxuXG4uZGFyayB7XG4gIC0taHItY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIC0tbGlzdC1zdHlsZS1jb2xvdXI6IHdoaXRlO1xufVxuLmRhcmsgLnRleHQge1xuICBjb2xvcjogd2hpdGU7XG4gIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG59XG4uZGFyayAudGV4dCBhLmJ1dHRvbiB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xufVxuLmRhcmsgLnRleHQgYTpub3QoLmJ1dHRvbikge1xuICAtLWZvbnQtY29sb3VyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5kYXJrIC50ZXh0IGE6bm90KC5idXR0b24pOmhvdmVyIHtcbiAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgfVxufVxuLmRhcmsucmVkIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0ZGRkZGRicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzREYzMDM1JyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi5kYXJrLmJsdWUgLnRleHQgdWwgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nJTIzRkZGRkZGJyBjeD0nOCcgY3k9JzgnIHI9JzgnLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMxMzFGNkInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG4uY29udGFpbnMtc3ZncyAudGV4dCBmaWd1cmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbn1cbi5jb250YWlucy1zdmdzIC50ZXh0IGZpZ3VyZSBpbWcge1xuICBoZWlnaHQ6IDEyMHB4O1xufVxuXG50YWJsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ2FwKTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdiB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBkaXNwbGF5OiBncmlkO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Om5vdCg6aG92ZXIpIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDAuOWVtO1xuICBoZWlnaHQ6IDAuOWVtO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5Njk2OTU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxudGFibGUtY29udGFpbmVyIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHtcbiAgd2lkdGg6IGF1dG87XG4gIGdyaWQtcm93OiAxO1xuICBncmlkLWNvbHVtbjogMTtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS14KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS14KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0ciB0ZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDFweCAjZGNkY2RjIGRhc2hlZDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkgdGQge1xuICBiYWNrZ3JvdW5kOiAjRjRGNEY0O1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGhlYWQgdHIgdGg6Zmlyc3Qtb2YtdHlwZSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSBkYXNoZWQ7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0aGVhZCB0ciB0aDpub3QoOmZpcnN0LW9mLXR5cGUpLCB0YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuQHN1cHBvcnRzICh3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyKSB7XG4gIHRhYmxlLWNvbnRhaW5lci5lbmFibGUtdmVydGljYWwtaGVhZGluZ3MgdGFibGUudGFibGUgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICBtYXgtd2lkdGg6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxufVxudGFibGUtY29udGFpbmVyIG5hdiB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ3JpZC1yb3c6IDE7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBkaXNwbGF5OiBub25lO1xufVxudGFibGUtY29udGFpbmVyIG5hdiBidXR0b24ubmF2aWdhdGlvbiB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxudGFibGUtY29udGFpbmVyIG5hdiBidXR0b24ubmF2aWdhdGlvbiArIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxudGFibGUtY29udGFpbmVyIG5hdiArIGRpdiB7XG4gIGdyaWQtY29sdW1uOiAxL3NwYW4gMjtcbn1cbnRhYmxlLWNvbnRhaW5lci5zY3JvbGxlZC1yaWdodCBidXR0b24ubmV4dCwgdGFibGUtY29udGFpbmVyLnNjcm9sbGVkLWxlZnQgYnV0dG9uLnByZXZpb3VzIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG50YWJsZS1jb250YWluZXIuZW5hYmxlLXNjcm9sbC1idXR0b25zIG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAtLWJ1dHRvbi1zaXplOiA0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgY29sb3I6ICM2QTZBNkE7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG50YWJsZS1jb250YWluZXIgYnV0dG9uLm5hdmlnYXRpb24ubmV4dCBzdmcge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHN2ZyB7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxudGFibGUudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFibGUudGFibGUgdGhlYWQgdHIgdGg6bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogIzZBNkE2QTtcbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkIGEge1xuICBjb2xvcjogIzEzMWY2YjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICB0YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBhOmhvdmVyIHtcbiAgICBjb2xvcjogI0RGMzAzNTtcbiAgfVxufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnIHtcbiAgLS1maWxsOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdmcuY3Jvc3Mge1xuICAtLWZpbGw6ICNERjMwMzU7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBzdmcudGljayB7XG4gIC0tZmlsbDogIzUwQkMwODtcbn1cbnRhYmxlLnRhYmxlIHRyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFibGUudGFibGUgdHI6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG59XG50YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbn1cbnRhYmxlLnRhYmxlLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxudGFibGUudGFibGUubGFzdC1jb2x1bW4taXMtZ3JlZW4gdGJvZHkgdHIgdGQ6bGFzdC1vZi10eXBlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZGFyayB0YWJsZS1jb250YWluZXIgPiBoMywgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgPiBoMyB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciA+IGRpdiwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgPiBkaXYge1xuICBib3JkZXItcmFkaXVzOiBpbml0aWFsO1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0ciB0aCwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUgdHIgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHRyLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB0ciB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLmRhcmsgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlIHRyOm50aC1vZi10eXBlKG9kZCksIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50IHRhYmxlLnRhYmxlIHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuXG5maWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNGNEY0RjQ7XG4gIGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljIGltZyB7XG4gIC0taW1hZ2UtaGVpZ2h0LXNpemU6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMgZmlnY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMubm8tY2FwdGlvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSB7XG4gIC0tYXNwZWN0LXJhdGlvOiAxNi85O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIC0tYXNwZWN0LXJhdGlvOiBpbmhlcml0O1xufVxuZmlndXJlLmltYWdlLnN0YXRpYy5jcm9wLWltYWdlIGZpZ2NhcHRpb24ge1xuICBib3R0b206IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIGZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBmaWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2UgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSBpbWcge1xuICAtLWltYWdlLWhlaWdodC1zaXplOiAxMDAlO1xufVxuXG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG59XG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZzpub3QoW3NyY10pIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuaW1hZ2VzLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KGNhbGModmFyKC0tbWFpbi1tYXgtd2lkdGgpIC8gKHZhcigtLWltYWdlcy1wZXItcm93KSArIDEpKSwgMWZyKSk7XG59XG5pbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSB7XG4gIC0tYXNwZWN0LXJhdGlvOiA0LzM7XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcbiAgLS1hc3BlY3QtcmF0aW86IGluaGVyaXQ7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDQvMykge1xuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiBpbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUgLyAodmFyKC0tYXNwZWN0LXJhdGlvKSkpO1xuICAgIGhlaWdodDogMDtcbiAgfVxuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgaW1nIHtcbiAgLS1pbWFnZS1oZWlnaHQtc2l6ZTogMTAwJTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gIGltYWdlcy1jb250YWluZXIuY3JvcC1pbWFnZXMgLmltYWdlIGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5pbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSBmaWdjYXB0aW9uIHtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxudGFiYmVkLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvbiB7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnQgPiBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvbiBzdmcge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy10b3A6IHZhcigtLWdhcCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1nYXApO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm9yZGVyLXJhZGl1cyB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgb3V0bGluZTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeTo6bWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnksIHRhYmJlZC1jb250ZW50IHN1bW1hcnkgLmhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBmb250LWZhbWlseTogbGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5IHN2ZyB7XG4gIGhlaWdodDogOHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB0b3A6IGNhbGMoNTAlIC0gNHB4KTtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnk6aG92ZXIsIHRhYmJlZC1jb250ZW50IGRldGFpbHNbb3Blbl0gc3VtbWFyeTpob3ZlciB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IzFjMmQ5Yztcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCB7XG4gIGdyaWQtZ2FwOiB2YXIoLS1zcGFjZXIwKSAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudDpub3QoW2hpZGRlbl0pIHtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAuaGVhZGluZy1oNCB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiAjREYzMDM1O1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC5oZWFkaW5nLWg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci5oYWx2ZXMge1xuICBtYXgtd2lkdGg6IDQwJTtcbiAgbWFyZ2luOiAwIDUlIDAgMDtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyLmhhbHZlczpudGgtb2YtdHlwZSgybikge1xuICBtYXJnaW46IDAgMCAwIDUlO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIudGhpcmRzIHtcbiAgbWF4LXdpZHRoOiAzMCU7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci50aGlyZHM6bnRoLW9mLXR5cGUoM24gLSAxKSB7XG4gIG1hcmdpbjogMCA1JTtcbn1cbnRhYmJlZC1jb250ZW50IHRhYmxlLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxudGFiYmVkLWNvbnRlbnQ6bm90KFtkYXRhLXN0eWxlPVwiM1wiXSkuaW4tdmlldyA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTMwMHB4KSwgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG4gICAgZ3JpZC1nYXA6IHZhcigtLWdhcCkgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgPiBuYXYge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1toaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIwKSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50ID4gKiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgZmlndXJlLmltYWdlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiMwZjE5NTY7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSBzdmcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIC50YWItY29udGVudCA+ICoge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIHtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCkgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1toaWRkZW5dIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIwKSB2YXIoLS1ndXR0ZXIxKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBvcGFjaXR5OiAwO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgZmlndXJlLmltYWdlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IzBmMTk1NjtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gLnRhYi1jb250ZW50ID4gKiB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcge1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojMGYxOTU2O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdIHtcbiAgLS1zaWRlLW5hdi13aWR0aDogMjAwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tc2lkZS1uYXYtd2lkdGgpIDFmcjtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpIC0gdmFyKC0tZ3V0dGVyMSkpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uIHtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWdhcCk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSA+IG5hdiBidXR0b24gKyBidXR0b24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbn1cblxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvbiB7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDIpIHZhcigtLWd1dHRlcjIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvbjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI0RGMzAzNSk7XG4gIH1cbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y0RjRGNDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdIC50YWItY29udGVudCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlcjEpIHZhcigtLWd1dHRlcjEpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0Y0RjRGNCwgd2hpdGUpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0uaW52aWV3IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNERjMwMzUpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdOm5vdCguYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcpW2RhdGEtY291bnQ9XCIyXCJdIFtyb2xlPXRhYl0ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbiAgfVxufVxuXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ3V0dGVyMSk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b24gc3ZnIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uOm5vdChbYXJpYS1zZWxlY3RlZD10cnVlXSk6aG92ZXIge1xuICAgIGNvbG9yOiAjREYzMDM1O1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdjpub3QoLmhhcy1tYXJrZXIpIGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2Yjtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgdHJhbnNpdGlvbjogaW5pdGlhbDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBtYXJrLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKSAwO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBOb3JtYWxpc2Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2Vcbi8vLyBAYXV0aG9yIEF1dGhvcnMgbmFtZVxuLy8vIEBzZWUgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcblxuJG5vcm1hbGlzZSAgICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRiYXNlLWVsZW1lbnRzICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kc2VjdGlvbi1lbGVtZW50cyAgOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci1lbGVtZW50cyAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRncm91cGluZy1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGFibGUtZWxlbWVudHMgICAgOiB0cnVlICFkZWZhdWx0O1xuJGZvcm0tZWxlbWVudHMgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRlbWJlZGRlZC1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGV4dC1lbGVtZW50cyAgICAgOiB0cnVlICFkZWZhdWx0O1xuJGRldi1lbGVtZW50cyAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRub3JtYWxpc2Uge1xuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBCYXNlIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkYmFzZS1lbGVtZW50cyB7XG5cblx0XHRodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsXG5cdFx0YmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSxcblx0XHRpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLFxuXHRcdGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLFxuXHRcdGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsXG5cdFx0ZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksXG5cdFx0c2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0OnJvb3Qge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblx0XHR9XG5cblx0XHQqLCAqOmFmdGVyLCAqOmJlZm9yZSB7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9O1xuXHRcdFx0Ym94LXNpemluZzppbmhlcml0O1xuXHRcdH1cblxuXHRcdGh0bWwgeyBcblx0XHRcdGhlaWdodDoxMDAlOyBcblx0XHRcdGZvbnQtc2l6ZTo2Mi41JTsgXG5cdFx0XHRibG9jay1zaXplOiAxMDAlO1xuXHRcdFx0aW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ym9keSB7IFxuXHRcdFx0bWluLWJsb2NrLXNpemU6IDEwMCU7XG5cdFx0XHRtaW4taW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0aHRtbCwgYm9keSB7XG5cdFx0XHRtaW4taGVpZ2h0OjEwMCU7XG5cdFx0fVxuXG5cdFx0cCwgcHJlLCBibG9ja3F1b3RlLCBvbCwgdWwsIGxpLCBsZWdlbmQsIGZpZ2NhcHRpb24sIGJvZHksIGFydGljbGUsIG5hdiwgYXNpZGUsIHNlY3Rpb24sIGhlYWRlciwgZm9vdGVyLCBhZGRyZXNzIHtcblx0XHRcdCY6ZW1wdHkgeyBkaXNwbGF5Om5vbmU7IH1cblx0XHR9XG5cblx0XHRhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdHN2Zywgc3ltYm9sIHsgb3ZlcmZsb3c6dmlzaWJsZTsgfVxuXG5cdFx0ZGV0YWlscyB7IGRpc3BsYXk6IGJsb2NrO1x0fVxuXG5cdFx0c3VtbWFyeSB7XG5cdFx0XHRkaXNwbGF5OiBsaXN0LWl0ZW07XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcblx0XHRcdCY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsICY6Om1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfVxuXHRcdH1cblxuXHRcdHRlbXBsYXRlIHsgZGlzcGxheTogbm9uZTtcdH1cblxuXHRcdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gU2VjdGlvbiBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHNlY3Rpb24tZWxlbWVudHMge1xuXG5cdFx0Ym9keSB7XG5cdFx0XHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblxuXHRcdGFkZHJlc3Mge1xuXHRcdFx0Zm9udC1zdHlsZTpub3JtYWw7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gSGVhZGVyIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkaGVhZGVyLWVsZW1lbnRzIHtcblxuXHRcdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRcdFx0LXdlYmtpdC1tYXJnaW4tYmVmb3JlOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWFmdGVyOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLXN0YXJ0OjBweDtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWVuZDowcHg7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIEdyb3VwaW5nIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZ3JvdXBpbmctZWxlbWVudHMge1xuXG5cdFx0aHIge1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRoZWlnaHQ6MXB4O1xuXHRcdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRibG9ja3F1b3RlLCBxIHtcblx0XHRcdHF1b3Rlczogbm9uZTtcblx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cHJlIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRjb2xvcjogYmxhY2s7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5OTtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBUYWJsZSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRhYmxlLWVsZW1lbnRzIHtcblxuXHRcdHRhYmxlIHtcblx0XHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0XHRib3JkZXItc3BhY2luZzogMDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBGb3JtIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZm9ybS1lbGVtZW50cyB7XG5cblx0XHRidXR0b24ge1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0aW5wdXQsIG9wdGdyb3VwLFx0c2VsZWN0LFx0dGV4dGFyZWEge1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0XHRmb250LXNpemU6IDEwMCU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xNTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRidXR0b24sXHRpbnB1dCB7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRidXR0b24sXHRzZWxlY3Qge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdLFxuXHRcdFt0eXBlPVwicmVzZXRcIl0sXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0XHRib3JkZXI6bm9uZTtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9XG5cdFx0fVxuXG5cdFx0YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHRidXR0b246LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblx0XHRbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG5cdFx0XHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG5cdFx0fVxuXG5cdFx0ZmllbGRzZXQge1xuXHRcdFx0cGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuXHRcdH1cblxuXHRcdGxlZ2VuZCB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdH1cblxuXHRcdHByb2dyZXNzIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHRcdFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdFt0eXBlPVwic2VhcmNoXCJdIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0ycHg7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdH1cblx0XHQ6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRcdFx0Zm9udDogaW5oZXJpdDtcblx0XHR9XG5cblx0XHRbZGlzYWJsZWRdIHtcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBFbWJlZGRlZCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGVtYmVkZGVkLWVsZW1lbnRzIHtcblxuXHRcdGltZyB7XG5cdFx0XHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gVGV4dCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRleHQtZWxlbWVudHMge1xuXG5cdFx0ZW0ge1xuXHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0XHR9XG5cblx0XHRhYmJyW3RpdGxlXSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG5cdFx0fVxuXG5cdFx0Yiwgc3Ryb25nIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblxuXHRcdGNvZGUsXHRrYmQsIHNhbXAge1xuXHRcdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRcdFx0Zm9udC1zaXplOiAxZW07XG5cdFx0fVxuXG5cdFx0c21hbGwge1xuXHRcdFx0Zm9udC1zaXplOiA4MCU7XG5cdFx0fVxuXG5cdFx0c3ViLCBzdXAge1xuXHRcdFx0Zm9udC1zaXplOiA3NSU7XG5cdFx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRzdWIge1xuXHRcdFx0Ym90dG9tOiAtMC4yNWVtO1xuXHRcdH1cblxuXHRcdHN1cCB7XG5cdFx0XHR0b3A6IC0wLjVlbTtcblx0XHR9XG5cblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRyZXNpemU6bm9uZTtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIERldmVsb3BtZW50IEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZGV2LWVsZW1lbnRzIHtcblxuXHRcdHByZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuXHRcdFx0Y29sb3I6YmxhY2s7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOjE2cHg7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5O1xuXHRcdH1cblx0XHRcblx0XHRib2R5LmRldm1vZGUge1xuXHRcdFx0aW1nOm5vdChbYWx0XSkge1xuXHRcdFx0XHRib3JkZXI6IDJweCByZWQgZGFzaGVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2xvYmFsIFN0eWxpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5IHtcbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1pbikge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxufVxuXG46d2hlcmUoKikge1xuICBzY3JvbGwtbWFyZ2luLXRvcDogdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDJyZW0pO1xufVxuXG4uYXN5bmMtaGlkZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxubWFpbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmZpZ3VyZS5pbWFnZSxcbnBpY3R1cmUuaW1hZ2Uge1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcbn1cblxudmlkZW8tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgdmlkZW8tY29udGFpbmVyKCk7XG59XG5cbm1hcmsge1xuICBAaW5jbHVkZSBtYXJrKCk7XG59XG5cbmRldGFpbHMge1xuICBvdXRsaW5lOiBub25lO1xufVxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgJjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcixcbiAgJjo6bWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24oKTtcbiAgJi5icm9jaHVyZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWJyb2NodXJlKCk7XG4gIH1cbiAgJi5yZWQgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skcmVkfTtcbiAgICB9XG4gIH1cbiAgJi5ibHVlIHN2ZyB7XG4gICAgJi50aWNrLFxuICAgICYuZG93bmxvYWQge1xuICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgIH1cbiAgfVxuICAmLm91dGxpbmUgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgJi5yZWQge1xuICAgICAgc3ZnLnRpY2ssXG4gICAgICBzdmcuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgICAgfVxuICAgICAgJi5vdXRsaW5lIHN2ZyB7XG4gICAgICAgICYudGljayxcbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgLS1zdHJva2U6ICN7JHJlZH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibHVlIHtcbiAgICAgIHN2Zy50aWNrLFxuICAgICAgc3ZnLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JHdoaXRlfTtcbiAgICAgIH1cbiAgICAgICYub3V0bGluZSBzdmcge1xuICAgICAgICAmLnRpY2ssXG4gICAgICAgICYuZG93bmxvYWQge1xuICAgICAgICAgIC0tc3Ryb2tlOiAjeyRibHVlfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLndoaXRlIHN2ZyB7XG4gICAgICAmLnRpY2ssXG4gICAgICAmLmRvd25sb2FkIHtcbiAgICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbnRhaW5lcigpO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuI2hvbGRpbmctcGFnZSB7XG4gIGhlYWRlciBzdmcge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogJGd1dHRlcjtcbiAgfVxufVxuXG5ib2R5I2Vycm9yLTQwNCB7XG4gIGhlYWRlciBoMiB7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgfVxuICBzZWFyY2gtYmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICB9XG4gIH1cbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206ICRndXR0ZXItO1xuICB6LWluZGV4OiAyO1xuXG4gIC8qIFN0YXJ0IGhpZGRlbiBiZWxvdyB2aWV3cG9ydCAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIC8qIEFuaW1hdGlvbiB3aXRoIGRlbGF5ZWQgc3RhcnQgKi9cbiAgYW5pbWF0aW9uOiBzbGlkZS1pbi1pZGxlLWRpYWxvZyBib3RoO1xuICBhbmltYXRpb24tdGltZWxpbmU6IHNjcm9sbCgpO1xuICBhbmltYXRpb24tcmFuZ2U6IGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkpIGNhbGModmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDBweCkgKyBjYWxjKGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKSk7XG5cbiAgLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuNSk7XG4gIH1cblxuICBAa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHJlbSk7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgI2NvbnRhY3QtbW9kYWwge1xuICAgIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgICBmb3JtIC5zdWJtaXQtcm93IHtcbiAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXI7XG4gICAgfVxuICB9XG59XG5cbmJvZHkgPiAuYmFjay10by10b3Age1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogJGd1dHRlcjtcbiAgcmlnaHQ6ICRndXR0ZXI7XG4gIGJhY2tncm91bmQ6ICRibHVlMjtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogOTk5OTtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGJvdHRvbSAkdHJhbnNpdGlvbjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBzdmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDUwJTtcbiAgICB0b3A6IC00JTtcbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgfVxufVxuXG5mb290ZXIjZm9vdGVyLmluLXZpZXcgfiAuYmFjay10by10b3Age1xuICBib3R0b206IDEyMHB4O1xufVxuXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gLmJhY2stdG8tdG9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbWFnZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAncG9zaXRpb24nO1xuXG5AbWl4aW4gc3Jjc2V0KCRwb3NpdGlvbjpmYWxzZSkge1xuXG4gIGRpc3BsYXkgICAgICAgICAgICAgOiBibG9jaztcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcblx0YmFja2dyb3VuZC1zaXplICAgICA6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdCAgIDogbm8tcmVwZWF0O1xuXHRvdmVyZmxvdyAgICAgICAgICAgIDogaGlkZGVuO1xuXG5cdEBpZiAkcG9zaXRpb24gPT0gJ2V4cGFuZGVkJyB7IFxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLmV4cGFuZGVkO1xuXHR9IEBlbHNlIGlmICRwb3NpdGlvbiA9PSAnYmxvd291dCcgeyBcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5ibG93b3V0O1xuXHR9IEBlbHNlIHtcblx0XHRwb3NpdGlvbiA6IHJlbGF0aXZlOyBcblx0fVxuXHRcbiAgaW1nIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBibG9jaztcbiAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICBvYmplY3QtZml0ICAgICAgOiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb24gOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG5cdFx0d2lkdGggICAgICAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuXHRcdGhlaWdodCAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7IFxuXHRcdG1heC13aWR0aCAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRtYXgtaGVpZ2h0ICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuXHRcdHRvcCAgICAgICAgICAgICA6IDA7IFxuXHRcdGxlZnQgICAgICAgICAgICA6IDA7XG5cdH1cblxuXHRAY29udGVudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEFzcGVjdCBSYXRpbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhc3BlY3QtcmF0aW9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKDE2LzkpXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHJhdGlvIDogJzE2LzknKSB7XG5cbiAgLS1hc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX07XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcblxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX0pIHtcbiAgICBhc3BlY3QtcmF0aW86aW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlLyh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgID4gKiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSBcbiAgfVxufSIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ2NvbGxlY3Rpb25zL3N0eWxpbmcvYXNwZWN0LXJhdGlvJyBhcyAqO1xuXG5AbWl4aW4gY29udGFpbmVyKCRyYXRpbzonMTYvOScpIHtcblx0XG5cdEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkcmF0aW8pO1xuXG5cdGRpc3BsYXkgICAgICAgICAgOiBibG9jaztcblx0cG9zaXRpb24gICAgICAgICA6IHJlbGF0aXZlO1xuXHR3aWR0aCAgICAgICAgICAgIDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvciA6IGJsYWNrO1xuXG5cdGlmcmFtZSwgY2FudmFzIHtcblx0XHRwb3NpdGlvbiA6IGFic29sdXRlO1xuXHRcdGRpc3BsYXkgIDogYmxvY2s7XG5cdFx0dG9wICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICA6IDA7XG5cdFx0aGVpZ2h0ICAgOiAxMDAlICFpbXBvcnRhbnQ7IFxuXHRcdHdpZHRoICAgIDogMTAwJSAhaW1wb3J0YW50O1xuXHR9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcblxuQG1peGluIG1hcmsoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXJzLW1hcms7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYygjeyRib3JkZXItcmFkaXVzfSAvIDIpO1xuICBwYWRkaW5nOjAgNXB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbn1cblxuQG1peGluIG1hcmstcmVzZXQoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiBpbml0aWFsO1xuICBwYWRkaW5nOmluaXRpYWw7XG4gIHRyYW5zaXRpb246IGluaXRpYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuIFxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvdyBcbi8vLyBtYW55IG9wdGlvbnMgd2UgaGF2ZSBmb3IgYSBzaW5nbGUgY29sb3VyIGF0IGEgZ2xhbmNlLiBJZiB5b3Ugc2VlICRncmVlbjQsIHlvdSBrbm93IHRoaXNcbi8vLyBwcm9qZWN0IGlzIHVzaW5nIGZvdXIgdmFyaWF0aW9ucyBvZiBncmVlbi4gVGhpcyBpcyBhbHNvIG9mdGVuIHVzZWZ1bCBiZWNhdXNlIG1hbnkgZGV2ZWxvcG1lbnQgXG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLiBcbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsIFxuLy8vLyA8Y29sb3VyPi1kYXJrIGFuZCA8Y29sb3VyPi1saWdodC4gSWYgeW91IG5lZWQgYWRkaXRpb25hbCBzaGFkZXMgcGxlYXNlIHJlZnJhaW0gZnJvbSBnb2luZyBkb3duIFxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZSBcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS4gXG4vLy8gSXQgaXMgYmV0dGVyIHRvIGRlZmluZSBhIG5ldyBleHBsY2l0IGNvbG91ciBlbnRpcmVseS4gXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZSAgIDogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyICA6ICMyOTJCNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMyAgOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0ICA6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNSAgOiAjMDA5NUZGOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgIFxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZCAgICA6ICNERjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlIFxuJGdyZXkgICA6ICM5Njk2OTU7XG4kZ3JleTIgIDogIzZBNkE2QTsgLy8gRm9udFxuJGdyZXkzICA6ICNGNEY0RjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQgIDogI2RjZGNkYzsgXG4kZ3JleTUgIDogI0IxQjFCMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTYgIDogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyICBcbiRncmVlbiAgOiAjNTBCQzA4O1xuJGdyZWVuMiA6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdyA6ICNGNkY0REI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzIgOiAjRkNCMDAyOyBcbiRibGFjayAgOiAjMUUxQTFBO1xuXG4kbWFyayA6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5ICAgOiB2YXIoLS1wcmltYXJ5LCAgI3skYmx1ZX0pO1xuJHNlY29uZGFyeSA6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuIFxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWUgICA6ICRibHVlLFxuICAkcmVkICAgIDogJHJlZCxcbiAgJGdyZXkgICA6ICRncmV5LFxuICAkeWVsbG93IDogJHllbGxvdyxcbiAgJGdyZWVuICA6ICRncmVlbixcbiAgJGJsYWNrICA6ICRibGFja1xuKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCdXR0b25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSBcInN0eWxpbmdcIiBhcyAqO1xuIFxuQG1peGluIGJ1dHRvbigkY29sb3VyIDogdmFyKC0tcHJpbWFyeSkpIHtcblxuICAvLyBTdGF0aWMgU3R5bGluZ1xuICAtLWZvbnQtY29sb3VyICAgICAgIDogd2hpdGU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyRjb2xvdXJ9O1xuICAtLWJvcmRlci1jb2xvdXIgICAgIDogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZyAgICAgICAgICAgOiA4cHggMjBweDtcbiAgLS1mb250LXNpemUgICAgICAgICA6IDE2cHg7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiA1MHB4O1xuXG4gIC8vIEhvdmVyIC8gQWN0aXZlIHN0eWxpbmdcbiAgLS1ob3Zlci1mb250LWNvbG91ciAgICAgICA6ICN7JGNvbG91cn07XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyICAgICA6IGluaXRpYWw7XG4gIC0taG92ZXItcGFkZGluZyAgICAgICAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1ob3Zlci1mb250LXNpemUgICAgICAgICA6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIC0taG92ZXItYm9yZGVyLXJhZGl1cyAgICAgOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcblxuICAtLWljb24tc2l6ZSA6IDEuMWVtO1xuXG4gIGN1cnNvciAgICAgICAgIDogcG9pbnRlcjtcbiAgZGlzcGxheSAgICAgICAgOiBpbmxpbmUtZmxleDtcbiAgcG9zaXRpb24gICAgICAgOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3QgICAgOiBub25lOyAgXG4gIGJvcmRlci1zdHlsZSAgIDogc29saWQ7XG4gIGJvcmRlci13aWR0aCAgIDogMXB4O1xuICB3b3JkLWJyZWFrICAgICA6IGJyZWFrLWFsbDsgXG4gIGZvbnQtd2VpZ2h0ICAgIDogYm9sZDs7XG4gIHBsYWNlLWNvbnRlbnQgIDogY2VudGVyO1xuICBwbGFjZS1pdGVtcyAgICA6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZiAgICAgOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcbiAgXG4gIGNvbG9yICAgICAgICAgICAgOiB2YXIoLS1mb250LWNvbG91cik7IFxuICBiYWNrZ3JvdW5kLWNvbG9yIDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXItY29sb3IgICAgIDogdmFyKC0tYm9yZGVyLWNvbG91cik7IFxuICBwYWRkaW5nICAgICAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZSAgICAgICAgOiB2YXIoLS1mb250LXNpemUpO1xuICBib3JkZXItcmFkaXVzICAgIDogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHRyYW5zaXRpb24gICAgICAgOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIFxuICAgICAgICAgICAgICAgICAgICAgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgXG4gICAgICAgICAgICAgICAgICAgICBib3JkZXIgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcblxuICAvLyBJY29uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIHN2ZyB7XG4gICAgd2lkdGggICAgICAgIDogdmFyKC0taWNvbi1zaXplKTsgXG4gICAgaGVpZ2h0ICAgICAgIDogdmFyKC0taWNvbi1zaXplKTsgXG4gICAgb3JkZXIgICAgICAgIDogMztcbiAgICBmaWxsICAgICAgICAgOiB2YXIoLS1maWxsLCBjdXJyZW50Q29sb3IpO1xuICAgIG1hcmdpbi1sZWZ0ICA6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICAgIHRyYW5zaXRpb24gICA6IGZpbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgXG4gICAgICAgICAgICAgICAgICAgc3Ryb2tlIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSk7XG5cbiAgICAmW2NsYXNzKj1cImFycm93XCJdIHsgXG4gICAgICAtLWljb24tc2l6ZSA6IDAuOWVtO1xuICAgIH0gICAgICAgICAgICAgICBcbiAgICAmLmFycm93LWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0IDogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMik7XG4gICAgICBtYXJnaW4tbGVmdCAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICBvcmRlciAgICAgICAgOiAxO1xuICAgIH1cbiAgfVxuXG4gID4gc3BhbiB7IG9yZGVyIDogMjsgfVxuXG4gIC8vIFZhcmlhbnQgRGVjbGFyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBcbiAgJi5zbWFsbCAgeyBAaW5jbHVkZSBzbWFsbDsgfVxuICAmLmxhcmdlICB7IEBpbmNsdWRlIGxhcmdlOyB9XG4gICYub3V0bGluZSB7IEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGJsdWUpOyB9XG5cbiAgJi5ibHVlICAgeyBcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkYmx1ZSwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7IEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoICRibHVlLCAkd2hpdGUgKSB9XG4gIH1cbiAgJi5yZWQgICAgeyBcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkcmVkLCB3aGl0ZSk7XG4gICAgJi5vdXRsaW5lIHsgQGluY2x1ZGUgb3V0bGluZS10aGVtZSggJHJlZCwgJHdoaXRlICkgfVxuICB9XG4gICYuZ3JlZW4gICAgeyBcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkZ3JlZW4yLCB3aGl0ZSk7XG4gICAgJi5vdXRsaW5lIHsgQGluY2x1ZGUgb3V0bGluZS10aGVtZSggJGdyZWVuMiwgJHdoaXRlICkgfVxuICB9XG4gICYud2hpdGUgIHsgXG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJHdoaXRlLCAkcHJpbWFyeSk7XG4gICAgJi5vdXRsaW5lIHsgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkd2hpdGUsICRwcmltYXJ5KSB9XG4gIH1cbiAgJi5kaXNhYmxlZCAgeyBcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkZ3JleTQpO1xuICAgICYub3V0bGluZSB7IEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGdyZXk0KSB9XG4gIH1cbiAgXG4gIC8vIEhvdmVyIFN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBcbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yICAgICAgICAgICAgOiB2YXIoLS1ob3Zlci1mb250LWNvbG91cik7IFxuICAgIGJhY2tncm91bmQtY29sb3IgOiB2YXIoLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgYm9yZGVyLWNvbG9yICAgICA6IHZhcigtLWhvdmVyLWJvcmRlci1jb2xvdXIpOyBcbiAgICBib3JkZXItcmFkaXVzICAgIDogdmFyKC0taG92ZXItYm9yZGVyLXJhZGl1cyk7IFxuICAgIHBhZGRpbmcgICAgICAgICAgOiB2YXIoLS1ob3Zlci1wYWRkaW5nKTtcbiAgICBmb250LXNpemUgICAgICAgIDogdmFyKC0taG92ZXItZm9udC1zaXplICk7XG4gIH1cbn1cblxuLy8vIExhcmdlIEJ1dHRvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGVzZSBleHRlbmQgdGhlIHN0eWxpbmcgb2YgbWFya3VwIGVsZW1lbnRzIHdpdGggdGhlIC5idXR0dG9uIGNsYXNzIFxuLy8vIEBjb250ZW50IGlzIHBhc3NlZCB0aHJvdWdoIGlzIGZvciB0aGUgaG92ZXIgc3RhdGUgb25seS4gXG4vLy8gQGV4YW1wbGUgXG4vLy8gLmJ1dHRvbiB7XG4vLy8gICBAaW5jbHVkZSBidXR0b24tbGFyZ2Uge1xuLy8vICAgICAtLWJhY2tncm91bmQtY29sb3VyIDogZ3JlZW47XG4vLy8gICAgIC0tZm9udC1jb2xvdXIgICAgIDogcmVkO1xuLy8vICAgfVxuLy8vIH1cblxuQG1peGluIGxhcmdlIHtcbiAgLS1wYWRkaW5nICAgOiAxMnB4IDI0cHg7XG4gIC0tZm9udC1zaXplIDogMjRweDtcbiAgQGNvbnRlbnQ7XG59XG5cbi8vLyBTbWFsbCBCdXR0b24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhlc2UgZXh0ZW5kIHRoZSBzdHlsaW5nIG9mIG1hcmt1cCBlbGVtZW50cyB3aXRoIHRoZSAuYnV0dHRvbiBjbGFzcyBcbi8vLyBAY29udGVudCBpcyBwYXNzZWQgdGhyb3VnaCBpcyBmb3IgdGhlIGhvdmVyIHN0YXRlIG9ubHkuICBcbi8vLyBAZXhhbXBsZSBcbi8vLyAuYnV0dG9uIHtcbi8vLyAgIEBpbmNsdWRlIGJ1dHRvbi1zbWFsbCB7XG4vLy8gICAgIC0tYmFja2dyb3VuZC1jb2xvdXIgOiBncmVlbjtcbi8vLyAgICAgLS1mb250LWNvbG91ciAgICAgOiByZWQ7XG4vLy8gICB9XG4vLy8gfVxuXG5AbWl4aW4gc21hbGwge1xuICAtLXBhZGRpbmcgICAgOiA2cHggMThweDtcbiAgLS1mb250LXNpemUgIDogMTJweDtcblxuICBzdmcgeyBcbiAgICBtYXJnaW4tbGVmdCA6ICRnYXAwOyBcbiAgICAmLmFycm93LWxlZnQgeyBtYXJnaW4tcmlnaHQgOiAkZ2FwMDsgfVxuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbi8vLyBWYXJpZW50IFN0eWxpbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBzb2xpZC10aGVtZSgkc3RhdGljIDogJHByaW1hcnksICRob3ZlciA6IHdoaXRlKSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgICAgICAgOiAjeyRzdGF0aWN9O1xuICAtLWZvbnQtY29sb3VyICAgICAgICAgICAgIDogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyIDogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyICAgICAgIDogI3skc3RhdGljfTtcbn1cblxuQG1peGluIG91dGxpbmUtdGhlbWUoJHN0YXRpYyA6ICRwcmltYXJ5LCAkaG92ZXIgOiB0cmFuc3BhcmVudCkge1xuICAtLWJhY2tncm91bmQtY29sb3VyICAgICAgIDogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgICAgICAgOiAjeyRzdGF0aWN9O1xuICAtLWJvcmRlci1jb2xvdXIgICAgICAgICAgIDogI3skc3RhdGljfTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHN0YXRpY307XG4gIC0taG92ZXItZm9udC1jb2xvdXIgICAgICAgOiAje2lmKCRob3ZlciA9PSB0cmFuc3BhcmVudCwgJHN0YXRpYywgJGhvdmVyKX07XG4gIC0taG92ZXItYm9yZGVyLWNvbG91ciAgICAgOiB0cmFuc3BhcmVudDtcbn1cblxuLy8vIEJ1dHRvbiBDb250YWluZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGNvbnRhaW5lciB7XG4gIGRpc3BsYXk6ZmxleDtcbiAgLy8gbWFyZ2luLWxlZnQ6JGdhcDAtO1xuICAvLyB3aWR0aDpjYWxjKDEwMCUgKyAjeyRnYXB9KTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDoxMDAlO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgLmJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW46JGdhcDA7IFxuICB9XG59XG5cbi8vLyBCZXNwb2tlIEJ1dHRvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtaXhpbiBicm9jaHVyZSB7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgICA6ICN7JGJsdWV9O1xuICAtLWJhY2tncm91bmQtY29sb3VyICAgOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nICAgICAgICAgICAgIDogNXB4IDBweDtcbiAgLS1pY29uLXNpemUgICAgICAgICAgIDogMzJweDtcbiAgLS1ib3JkZXItY29sb3VyICAgICAgIDogdHJhbnNwYXJlbnQ7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgICA6IDA7IFxuICAtLWhvdmVyLWZvbnQtY29sb3VyICAgOiAjeyRyZWR9O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXIgOiB0cmFuc3BhcmVudDtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91ciA6IHRyYW5zcGFyZW50O1xuXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG4gIHN2ZyB7IFxuICAgIG1hcmdpbi1yaWdodDokZ2FwMDsgXG4gICAgbWFyZ2luLWxlZnQ6MDsgXG4gICAgZmlsbDokcmVkOyBcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNob3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGhvdmVyKCRzZWxlY3RvciA6IG51bGwpIHtcbiAgQG1lZGlhICggaG92ZXIgOiBob3ZlciApIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2VsZWN0b3Ige1xuICAgICYjeyRzZWxlY3Rvcn0geyBcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEN1c3RvbSBQcm9wZXJ0aWVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbjpyb290IHtcblxuICAvLyBDb2xvdXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLXByaW1hcnkgICAgICAgICA6ICN7JGJsdWV9OyBcbiAgLS1zZWNvbmRhcnkgICAgICAgOiAjeyRyZWR9OyBcblxuICAvLyBCcmVha3BvaW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAtLWJyZWFrcG9pbnQtI3skbmFtZX0gOiAjeyR2YWx1ZX07XG4gIH1cblxuICAvLyBGb250cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgXG4gIC0tZm9udC1jb2xvdXIgICAgICAgIDogI3skZm9udC1jb2xvdXJ9O1xuICAtLWhlYWRpbmctY29sb3VyICAgICA6ICN7dmFyKC0tcHJpbWFyeSwgJGJsdWUpfTtcbiAgLS1zdWItaGVhZGluZy1jb2xvdXIgOiAje3ZhcigtLXNlY29uZGFyeSwgJHJlZCl9O1xuXG4gIC8vIFRyYW5zaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tdHJhbnNpdGlvbi1kdXJhdGlvbiA6ICN7JHRyYW5zaXRpb24tZHVyYXRpb259O1xuICAtLXRyYW5zaXRpb24tZWFzZSAgICAgOiAjeyR0cmFuc2l0aW9uLWVhc2V9O1xuICAtLXRyYW5zaXRpb24tZGVsYXkgICAgOiAjeyR0cmFuc2l0aW9uLWRlbGF5fTtcblxuICAvLyBMYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLWJyZWFkY3J1bWItaGVpZ2h0IDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodCA6IDYwcHg7XG4gIC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQgOiAtMTVweDtcbiAgLS1tYWluLW1heC13aWR0aCA6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcblxuICAtLXNpZGViYXItd2lkdGggOiBjbGFtcCgjeyRzaWRlYmFyLXdpZHRoIC0gbWF0aC5kaXYoJHNpZGViYXItd2lkdGgsIDEwMCkgKiA0MH0sIDMwdncsICN7JHNpZGViYXItd2lkdGh9KTtcbiAgXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgICAtLXNpZGViYXItd2lkdGggOiAjeyRzaWRlYmFyLXdpZHRofTtcbiAgICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgICAgLS1zaWRlYmFyLXdpZHRoIDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5pdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLS1nYXAgICAgOiAjeyRiYXNlLWdhcH07XG4gIC0tZ3V0dGVyIDogI3skYmFzZS1ndXR0ZXJ9O1xuICAtLXNwYWNlciA6ICN7JGJhc2Utc3BhY2VyfTtcbiBcbiAgLy8vIFNldCB0aGUgZ3V0dGVycyBhbmQgc3BhY2VycyB3aXRoIGNsYW1wIFxuICAvLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvY2xhbXBcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCA2IHtcblxuICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGkpfTsgXG4gICAgLS1ndXR0ZXIjeyRpfS0gOiAje2d1dHRlcigkaSwgJHVzZS1uZWdhdGl2ZSA6IHRydWUpfTtcblxuICAgICRzcGFjZXItZ3Jvd3RoIDogaWYoJGkgPT0gMCwgMSwgJGkgKiAzKTtcbiAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoKX07IFxuICAgIC0tc3BhY2VyI3skaX0tIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgsICR1c2UtbmVnYXRpdmUgOiB0cnVlKX07XG4gIH1cbiAgXG4gIC8vLyBTZXRzIHRoZSBndXR0ZXJzIGFuZCBzcGFjZXJzIHVzaW5nIHRoZSBjYWxjIFxuICAvLy8gbWV0aG9kIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgY2xhbXBcbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggNiB7XG5cbiAgICAgIC0tZ3V0dGVyI3skaX0gIDogI3tndXR0ZXIoJGksICR1c2UtY2xhbXAgOiBmYWxzZSApfTsgXG4gICAgICAtLWd1dHRlciN7JGl9LSA6ICN7Z3V0dGVyKCRpLCAkdXNlLWNsYW1wIDogZmFsc2UsICR1c2UtbmVnYXRpdmUgOiB0cnVlICl9O1xuXG4gICAgICAkc3BhY2VyLWdyb3d0aCA6IGlmKCRpID09IDAsIDIsICRpICogNCk7XG4gICAgICAtLXNwYWNlciN7JGl9ICA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoLCAkdXNlLWNsYW1wIDogZmFsc2UgKX07IFxuICAgICAgLS1zcGFjZXIjeyRpfS0gOiAje3NwYWNlcigkc3BhY2VyLWdyb3d0aCwgJHVzZS1jbGFtcCA6IGZhbHNlLCAkdXNlLW5lZ2F0aXZlIDogdHJ1ZSApfTtcbiAgICB9ICAgIFxuICB9XG5cbiAgLy8vIFRoaXMgaXMgdGhlIGNhbGN1bGF0ZWQgd2lkdGggb2YgYSBzaW5nbGUgZ3V0dGVyIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHVzZXJzXG4gIC8vLyB2aWV3cG9ydCBpcyBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCBtZWRpYSBxdWVyeSBicmVha3BvaW50LiBQcmltYXJseSB1c2VkIHRvXG4gIC8vLyBvZmZzZXQgb3ZlcmJsb3duIGNvbnRlbnQgZm9yIHByZXZlbnRpbmcgaG9yaXpvbnRhbCBzY3JvbGxpbmcgb24gdGhlIDxib2R5Pi5cbiAgLy8gLS1jb21wdXRlZC1ndXR0ZXIgOiBjYWxjKCgoMTAwdncgLSAje3ZhcigtLWJyZWFrcG9pbnQtbWF4KX0pIC8gMikgLSAje3ZhcigtLWd1dHRlcjIpfSk7XG4gIC0tY29tcHV0ZWQtZ3V0dGVyIDogY2FsYygoKDEwMHZ3IC0gI3t2YXIoLS1icmVha3BvaW50LW1heCl9KSAvIDIpKTtcblxuXG59IiwiLy8vIEdsb2JhbCB0eXBvZ3JhcGhpYyBzdHlsaW5nIHRoYXQgZWZmZWN0cyBldmVyeXRoaW5nLlxuLy8vIElmIHlvdSB3YW50IHRvIHVwZGF0ZSBzdHlsaW5nIGZvciBjb250ZW50IGJsb2NrIHRleHQgZmllbGRzLCBpbnRyb2R1Y3Rpb24gZmllbGRzLFxuLy8vIG9yIGFueXRoaW5nIGFzc2lnbmVkIGEgLnRleHQgY2xhc3Mgb24gaXQncyBjb250YWluZXIgdGhlbiBlZGl0IHRoaXMgZmlsZTpcbi8vLyBAc2VlIC9zcmMvc2Fzcy9jb21wb25lbnRzL3RleHRcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xhdG8nO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbGF0byc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdsYXRvJztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbW9udHNlcnJhdCc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtb250c2VycmF0JztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmJvZHkge1xuICBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuICBsaW5lLWhlaWdodDogJGZvbnQtbGluZS1oZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1mb250c2l6ZSgkZm9udC1zaXplLW1pbiwgJGZvbnQtc2l6ZS1tYXgpO1xufVxuXG5oMSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDE7XG59XG5oMiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDI7XG59XG5oMyB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDM7XG59XG5oNCB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG59XG5oNSB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDU7XG59XG5oNiB7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3VyLCB2YXIoLS1mb250LWNvbG91cikpO1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcblxuICAmLnN1Yi1oZWFkaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgICBAaW5jbHVkZSBmb250LWxhdG8oc2VtaS1ib2xkKTtcbiAgfVxuXG4gIHNwYW4sXG4gIHN0cm9uZyxcbiAgcCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbn1cblxucSxcbmJsb2NrcXVvdGUge1xuICBxdW90ZXM6ICfigJwnICfigJ0nICfigJgnICfigJknO1xuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICB9XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXI7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICYuZXh0ZXJuYWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgc3ZnLmV4dGVybmFsLWxpbmsge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgICB9XG4gIH1cbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbn1cblxubGkge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDtcbiAgfVxufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICRncmV5NCk7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXIwO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbn1cblxuLm5vdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMTNjO1xuICBwYWRkaW5nOiAkZ3V0dGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICM5NzgwMDI7XG4gIH1cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnUGxlYXNlIE5vdGUnO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzk3ODAwMjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGb250XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdjb2xvdXJzJyBhcyAqO1xuXG4kY29sb3VyICAgICAgOiAkZ3JleTI7XG4kc2l6ZSAgICAgICAgOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2l6ZS1taW4gICAgOiAxLjRyZW0gIWRlZmF1bHQ7IFxuJHNpemUtbWF4ICAgIDogMS42cmVtICFkZWZhdWx0OyBcbiRsaW5lLWhlaWdodCA6IDEuNiAhZGVmYXVsdDsgXG5cbiRzaXplLWgxICAgICA6IDYuMWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMy4yZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMyAgICAgOiAyLjVlbSAhZGVmYXVsdDtcbiRzaXplLWg0ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuJHNpemUtaDUgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNiAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiAgXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIExhdG8gRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGZvbnQgaXQgcHJpbWFyaWx5IHVzZWQgZm9yIGhlYWRpbmdzICg8aCo+IHRhZ3MpXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpXG5cbkBtaXhpbiBsYXRvKCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5OmxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdzZW1pLWJvbGQnIG9yICR3ZWlnaHQgPT0gJ3NlbWlib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIE1vbnRzZXJyYXQgRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGlzIHRoZSBiYXNlIGZvbnQgdXNlZCBmb3IgYWxsIHN0YW5kYXJkIGNvcHkgdGhyb3VnaG91dCB0aGUgc2l0ZS5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKVxuXG5AbWl4aW4gbW9udHNlcnJhdCgkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTptb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBcbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2l0YWxpYycpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBSZXNwb25zaXZlIEZvbnRzaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNyZXNwb25zaXZlLWZvbnRzaXplXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250c2l6ZSgkbWluLCAkbWF4LCAkc2NhbGVyIDogMS41dncsICRicmVha3BvaW50cyA6IChtaW46OTUwcHgsIG1heDoxNjAwcHgpKSB7XG4gIFxuXHQvLyBSZXNwb25zaXZlIGZvbnRzaXplXG4gIEBzdXBwb3J0cyAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIGZvbnQtc2l6ZTpjbGFtcCgjeyRtaW59LCAjeyRzY2FsZXJ9LCAjeyRtYXh9KTsgICBcblx0fVxuXG5cdC8vIFJlc3BvbnNpdmUgZm9udHNpemUgZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCAnY2xhbXAnXG5cdEBzdXBwb3J0cyBub3QgKHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuXHRcdEBpbmNsdWRlIGJyZWFrLmluKG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAnbWluJykpIHsgZm9udC1zaXplOiRtaW47IH1cblx0XHRAaW5jbHVkZSBicmVhay5vdXQobWFwLmdldCgkYnJlYWtwb2ludHMsICdtYXgnKSkgeyBmb250LXNpemU6JG1heDsgfVxuXHR9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhlYWRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4vY29sbGVjdGlvbnMvZm9udCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cbi8vIERlZmF1bHQgSGVhZGluZyBWYWx1ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDMuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuMVxuKSAhZGVmYXVsdDtcblxuJGgyIDogKFxuICAnZm9udC1zaXplJyAgIDogMi41cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4zXG4pICFkZWZhdWx0O1xuXG4kaDMgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjJyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNCA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg1IDogKFxuICAnZm9udC1zaXplJyAgIDogMS44cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDYgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjZyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRiYXNlIDogNjIuNSAhZGVmYXVsdDtcbiRzY2FsZXIgOiAxLjV2dyAhZGVmYXVsdDtcbiRlbmFibGUtY3JvcHBpbmcgOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFsbGJhY2sgTGluZS1oZWlnaHRzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDEsIFwibGluZS1oZWlnaHRcIikgeyAkaDEgOiBtYXAuc2V0KCRoMSwgJ2xpbmUtaGVpZ2h0JywgMS4xKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDIsIFwibGluZS1oZWlnaHRcIikgeyAkaDIgOiBtYXAuc2V0KCRoMiwgJ2xpbmUtaGVpZ2h0JywgMS4zKTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDMsIFwibGluZS1oZWlnaHRcIikgeyAkaDMgOiBtYXAuc2V0KCRoMywgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDQsIFwibGluZS1oZWlnaHRcIikgeyAkaDQgOiBtYXAuc2V0KCRoNCwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDUsIFwibGluZS1oZWlnaHRcIikgeyAkaDUgOiBtYXAuc2V0KCRoNSwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuQGlmIG5vdCBtYXAuaGFzLWtleSgkaDYsIFwibGluZS1oZWlnaHRcIikgeyAkaDYgOiBtYXAuc2V0KCRoNiwgJ2xpbmUtaGVpZ2h0JywgMS40KTsgfVxuXG4vLyBEZWZpbmUgdGhlIHZhcmlhYmxlcyBzbyB0aGV5IGFyZSBzdGlsbCBhY2Nlc2libGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgxLCAnZm9udC1zaXplJyk7XG4kaDEtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgxLCAnbGluZS1oZWlnaHQnKTtcbiRoMS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgxLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDEsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgyLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMiwgJ2ZvbnQtc2l6ZScpO1xuJGgyLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDItZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDItc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgyLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMy1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDMsICdmb250LXNpemUnKTtcbiRoMy1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDMsICdsaW5lLWhlaWdodCcpO1xuJGgzLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDMsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgzLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMywgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDQtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg0LCAnZm9udC1zaXplJyk7XG4kaDQtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg0LCAnbGluZS1oZWlnaHQnKTtcbiRoNC1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg0LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNC1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDQsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg1LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNSwgJ2ZvbnQtc2l6ZScpO1xuJGg1LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDUtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDUtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg1LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDYsICdmb250LXNpemUnKTtcbiRoNi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDYsICdsaW5lLWhlaWdodCcpO1xuJGg2LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDYsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg2LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4vLyBIYW5kbGVzIENyb3BzIHNob3VsZCB0aGV5IG5vdCBoYXZlIGJlZW4gcGFzc2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kX2gxLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDMtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDYtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG5cbiRfaDEtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDQtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcblxuXG4vLyBNaXhpbnMgZm9yIGVhY2ggaGVhZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX3NldC1jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcblxuICBAaWYgKG1ldGEudHlwZS1vZigkY3JvcCkgPT0gJ21hcCcpIHtcblxuICAgICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gICAgJHRvcCAgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwidG9wXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwidG9wXCIpKSwgMCk7XG4gICAgJGJvdHRvbSAgICAgIDogaWYobWFwLmhhcy1rZXkoJGNyb3AsIFwiYm90dG9tXCIpLCB1bml0LnN0cmlwKG1hcC5nZXQoJGNyb3AsIFwiYm90dG9tXCIpKSwgMCk7XG5cbiAgICBAaW5jbHVkZSBmb250LmNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkdG9wLCAkYm90dG9tKTtcblxuICB9XG5cbn1cblxuQG1peGluIGgxKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgxLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgxLWZvbnQtc2l6ZS1taW4gYW5kICRoMS1mb250LXNpemUtbWluIDwgJGgxLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplLW1pbil9LCAjeyRoMS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDEtZm9udC1zaXplLCAkaDEtbGluZS1oZWlnaHQsICRfaDEtY3JvcC10b3AsICRfaDEtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMS1saW5lLWhlaWdodDsgXG4gICAgfVxuXG4gIH1cblxufVxuXG5AbWl4aW4gaDIoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDItZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDItZm9udC1zaXplLW1pbiBhbmQgJGgyLWZvbnQtc2l6ZS1taW4gPCAkaDItZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMi1mb250LXNpemUtbWluKX0sICN7JGgyLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMi1mb250LXNpemUsICRoMi1saW5lLWhlaWdodCwgJF9oMi1jcm9wLXRvcCwgJF9oMi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgyLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDMoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDMtZm9udC1zaXplLW1pbiBhbmQgJGgzLWZvbnQtc2l6ZS1taW4gPCAkaDMtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMy1mb250LXNpemUtbWluKX0sICN7JGgzLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMy1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMy1mb250LXNpemUsICRoMy1saW5lLWhlaWdodCwgJF9oMy1jcm9wLXRvcCwgJF9oMy1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgzLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDQoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDQtZm9udC1zaXplLW1pbiBhbmQgJGg0LWZvbnQtc2l6ZS1taW4gPCAkaDQtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNC1mb250LXNpemUtbWluKX0sICN7JGg0LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNC1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNC1mb250LXNpemUsICRoNC1saW5lLWhlaWdodCwgJF9oNC1jcm9wLXRvcCwgJF9oNC1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg0LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDUoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDUtZm9udC1zaXplLW1pbiBhbmQgJGg1LWZvbnQtc2l6ZS1taW4gPCAkaDUtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNS1mb250LXNpemUtbWluKX0sICN7JGg1LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoNS1mb250LXNpemUsICRoNS1saW5lLWhlaWdodCwgJF9oNS1jcm9wLXRvcCwgJF9oNS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg1LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5AbWl4aW4gaDYoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDYtZm9udC1zaXplLW1pbiBhbmQgJGg2LWZvbnQtc2l6ZS1taW4gPCAkaDYtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoNi1mb250LXNpemUtbWluKX0sICN7JGg2LXNjYWxlcn0sICN7Zm9udC5zaXplKCRoNi1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wMigkaDYtZm9udC1zaXplLCAkaDYtbGluZS1oZWlnaHQsICRfaDYtY3JvcC10b3AsICRfaDYtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG4vLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFya25vdHRvbi9kb2dnaXN0eWxlL2Jsb2IvbWFzdGVyL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2Nzc1xuXG4vLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZSB2YWx1ZXMgZGVmaW5lZCBiZWxvdy4gXG5cbkBmb3J3YXJkICdjcmVhdGUvdW5pdHMnIHdpdGggKFxuXG4gIC8vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cbiAgLy8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4gIC8vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiAgLy8vIEByZXN1bHQgOiAkZ2FwMCwgJGdhcCwgJGdhcDIsICRnYXAzLCAkZ2FwNCwgJGdhcDUgLCAkZ2FwNiwgJGdhcDAtLCAkZ2FwLSwgJGdhcDItLCAkZ2FwMy0sICRnYXA0LSwgJGdhcDUtIGFuZCAkZ2FwNi1cbiAgXG4gICRnYXAgOiAxNnB4LFxuXG4gIC8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4gIC8vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4gIC8vLyBAcmVzdWx0IDogJHNwYWNlcjAsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXIsICRzcGFjZXI0LCAkc3BhY2VyNSwgJHNwYWNlcjYsICRzcGFjZXIwLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyLSwgJHNwYWNlcjQtLCAkc3BhY2VyNS0gYW5kICRzcGFjZXI2LVxuICBcbiAgJHNwYWNlciA6IDR2aCwgXG5cbiAgLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbiAgLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbiAgLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbiAgLy8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuICAvLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcbiAgLy8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuICAvLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbiAgLy8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiAgLy8vIEByZXN1bHQgOiAkZ3V0dGVyMCwgJGd1dHRlciwgJGd1dHRlcjIsICRndXR0ZXIzLCAkZ3V0dGVyNCwgJGd1dHRlcjUsICRndXR0ZXI2LCAkZ3V0dGVyMC0sICRndXR0ZXItLCAkZ3V0dGVyMi0sICRndXR0ZXIzLSwgJGd1dHRlcjQtLCAkZ3V0dGVyNS0gYW5kICRndXR0ZXI2LVxuICBcbiAgJGd1dHRlciA6IDN2dywgXG5cbik7XG5cbiRib3JkZXItcmFkaXVzIDogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiRzaWRlYmFyLXdpZHRoIDogNTAwcHg7IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYXlvdXRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIExheW91dCBzdHlsaW5nIHNob3VsZCBiZSB1c2VkIHRvIGFkanVzdCBsYXlvdXQgcHJvcGVydGllcyBvbmx5LlxuLy8gV2hlcmUgcG9zc2libGUsIGl0IHNob3VsZCBub3QgYmUgdXNlZCB0byBtYW5hZ2UgdGhlIGFlc3RldGljcyBvZiBhIHBhZ2UuXG4vLyBJbnN0ZWFkIG9ubHkgd2lkdGhzLCBoZWlnaHQsIGRpc3BsYXksIGdyaWQsIHBvc2l0aW9uLCBwYWRkaW5nLCBtYXJnaW5zLCBvcmRlciwgYW5kIGFsaWtlXG4vLyBzaG91bGQgYmUgdGhlIHByb3BlcnRpZXMgZGVmaW5lZCBpbiB0aGVzZSBmaWxlcy4gS2VlcCB0aGUgbGF5b3V0cyBoZXJlIGFuZFxuLy8gY29tcG5lbnQgc3R5bGluZyBpbiB0aGVpciByZXNwZWN0aXZlIGZpbGVzLlxuXG5AbWl4aW4gc2lkZWJhci1ibG93b3V0LW9mZnNldCgpIHtcbiAgLS10cmFuc2xhdGVYOiAwO1xuICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICBsZWZ0OiAjeyRndXR0ZXItfTtcbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1heCkge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSAjeyRndXR0ZXJ9KTtcbiAgfVxufVxuXG4kY29tcG9uZW50LXRoZW1lczogKFxuICAncmVkJzogJHJlZCxcbiAgJ2JsdWUnOiAkYmx1ZSxcbiAgJ2dyZXknOiAkZ3JleTMsXG4gICd3aGl0ZSc6ICR3aGl0ZSxcbik7XG5cbmJvZHkge1xuICAvLyBHcmlkIFBvc2l0aW9uc1xuICAvLyBJJ20gdXNpbmcgbnVtYmVycyByYXRoZXIgdGhhbiBncmlkIGFzcmVhcyBiZWNhdXNlIHRoZSBwb3NpdGlvbmluZyBkb2Vzbid0XG4gIC8vIG5lZWQgdG8gYmUgYW55IG1vcmUgY29tcGxleCB0aGFuIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgNCBkZXBlbmRpbmcgb25cbiAgLy8gdGhlIGxheW91dCByZXF1aXJlbWVudHMuIFRoaXMgaXMgZXNzZW50aWFsbHkgZG9uZSB0byBoYW5kbGUgY2lyY29tc3RhbmNlc1xuICAvLyB3aGVyZSBzb21lIHBhZ2VzIGRvbid0IHJlcXVpcmUgYSBicmVhZGNydW1iIGJhciBvciBhbmNob3IgYmFyLlxuXG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1hbmNob3JzOiAzO1xuICAtLXJvdy1oZWFkZXI6IDQ7XG4gIC0tcm93LW1haW46IDU7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG4gIC0tcm93LXNpZGViYXI6IDQgLyBzcGFuIDM7XG4gIC0tcm93LWZvb3RlcjogMTAwO1xuICAtLXJvd3M6IGF1dG87XG5cbiAgLS1jb2x1bW4tbGVmdDogMjtcbiAgLS1jb2x1bW4tbWFpbjogMiAvIHNwYW4gMjtcbiAgLS1jb2x1bW4tcmlnaHQ6IDQ7XG4gIC0tY29sdW1uLWZ1bGw6IDIgLyAtMjtcbiAgLS1jb2x1bW4tZ3V0dGVyOiBtaW5tYXgoMCwgMWZyKTtcbiAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoI3skbWVkaWEtbWF4fSAtICh2YXIoLS1zaWRlYmFyLXdpZHRoKSAqIDIpIC0gI3skZ3V0dGVyNH0pKTtcbiAgLS1jb2x1bW4tc2lkZWJhcjogdmFyKC0tc2lkZWJhci13aWR0aCk7XG4gIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWd1dHRlcik7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAkbWVkaWEtbWluO1xuICBncmlkLWdhcDogMCAkZ3V0dGVyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHZhcigtLXJvd3MpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbnMpO1xuXG4gID4gKiB7XG4gICAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgfVxufVxuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHotaW5kZXg6IDk5OTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1uYXZpZ2F0aW9uKTtcbiAgJjpub3QoLmluLXZpZXcpIHtcbiAgICB+ICNicmVhZGNydW1icy1iYXIsXG4gICAgfiAjYW5jaG9ycy1iYXIge1xuICAgICAgLS1hbmNob3JzLWhlaWdodDogNTBweDtcbiAgICAgIC8vIC0tYnJlYWRjcnVtYi1oZWlnaHQ6IDcwcHg7XG4gICAgfVxuICB9XG59XG5cbi8vIEJyZWFkY3J1bWJzIEJhciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiNicmVhZGNydW1icy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWJyZWFkY3J1bWJzKTtcbiAgaGVpZ2h0OiB2YXIoLS1icmVhZGNydW1iLWhlaWdodCk7XG4gICYuc3RpY2t5IHtcbiAgICB0b3A6IHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KTtcbiAgfVxufVxuXG4vLyBBbmNob3IgQmFyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4jYW5jaG9ycy1iYXIge1xuICB6LWluZGV4OiAyO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWFuY2hvcnMpO1xuICBoZWlnaHQ6IHZhcigtLWFuY2hvcnMtaGVpZ2h0KTtcbiAgJi5zdGlja3kge1xuICAgIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgLSAxcHggKyAodmFyKC0tYnJlYWRjcnVtYi1hbmQtYW5jaG9ycy1zdGlja3ktdW5kZXJzZXQpICogMikpO1xuICAgIC8vIHRvcDpjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSAtIDFweCk7XG4gIH1cbn1cblxuLy8gSGVhZGVyIENvbnRlbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhlYWRlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctaGVhZGVyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1tYWluKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG59XG5cbiNmb290ZXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LWZvb3Rlcik7XG59XG5cbi8vIE1haW4gQ29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbm1haW4ge1xuICBncmlkLXJvdzogdmFyKC0tcm93LW1haW4pO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAvLyBGaXJzdCBsZXZlbCBlbGVtZW50cyBmb3IgbWFpbiBjaGlsZGVuIGFuZCBzaWJsaW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gdG8gdGhlIG1haW4gZWxlbWVudCAoZXhjbHVkaW5nIHNpZGUtYmFyIGFuZCBmb290ZXIpXG5cbiAgPiAqLFxuICB+IHNlY3Rpb24sXG4gIH4gYXNpZGUsXG4gIH4gZGl2LFxuICB+IHNlcnZpY2UtY2VudHJlLWZpbmRlcixcbiAgfiBtYXJrZXRzLXN1bW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICB+IGRpdjpoYXMoZGl2I3RydWVuZG9fY29udGFpbmVyKSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIHNlcnZpY2UtY2VudHJlLWZpbmRlciBwaWN0dXJlIHtcbiAgICBAaW5jbHVkZSBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCk7XG4gIH1cbn1cblxuLy8gU2lkZWJhciBDb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuc2lkZS1iYXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LXNpZGViYXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLXJpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG5cbiAgPiBkaXYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXIgJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgodmFyKC0tc2lkZWJhci13aWR0aCksIDFmcikpO1xuICAgICYuc3RpY2t5IHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gICAgPiAqIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkdGhlbWUsICRjb2xvdXIgaW4gJGNvbXBvbmVudC10aGVtZXMge1xuICAgID4gZGl2ID4gKi4jeyR0aGVtZX0ge1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skY29sb3VyfTtcbiAgICAgIEBpZiAoJHRoZW1lID09ICd3aGl0ZScpIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRncmV5M307XG4gICAgICB9XG4gICAgICBAaWYgKCR0aGVtZSA9PSAnZ3JleScpIHtcbiAgICAgICAgLS1ib3JkZXItY29sb3VyOiAjeyRncmV5NH07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xufVxuXG5AaW5jbHVkZSBicmVhay1pbignc21hbGwtbWVkaXVtJykge1xuICBib2R5IHtcbiAgICA+ICoge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC0tY29sdW1uczogdmFyKC0tY29sdW1uLWd1dHRlcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICAgIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1sZWZ0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tcmlnaHQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLXJvdy1zaWRlYmFyOiBhdXRvO1xuXG4gICAgc2lkZS1iYXIge1xuICAgICAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIGdyaWQtZ2FwOiAkc3BhY2VyICRndXR0ZXI7XG4gICAgICAgICYuc3RpY2t5IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgd2lsbCBmaXggc2lkZWJhciBjb21wb25lbnRzIGZyb20gYmxvd2luZyBvdXQgb2YgdGhlIHZpZXdwb3J0IG9uIGRldmljZXNcbi8vIHdoZXJlIHRoZSBzY3JlZW4gaXMgc21hbGxlciB0aGFuIHRoZSBtaW5pdW0gKDMyMHB4KVxuQGluY2x1ZGUgYnJlYWstaW4oJG1lZGlhLW1pbiArICgkYmFzZS1nYXAgKiAyKSkge1xuICBib2R5IHtcbiAgICAtLXNpZGViYXItd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gQmxvd291dCBCYWNrZ3JvdW5kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnRoZW1lZCB7XG4gIEBlYWNoICR0aGVtZSwgJGNvbG91ciBpbiAkY29tcG9uZW50LXRoZW1lcyB7XG4gICAgJi4jeyR0aGVtZX0ge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG91cjtcbiAgICAgICYuYmxvd291dCArIC50aGVtZWQuI3skdGhlbWV9IHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG4gICAgICAgICYubGlnaHQge1xuICAgICAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICN7JGdyZXk0fTtcbiAgICAgICAgfVxuICAgICAgICAmLmRhcmsge1xuICAgICAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICN7cmdiYSh3aGl0ZSwgMC4yKX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJjpub3QoLmJsb3dvdXQpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xuICAgIG1hcmdpbi10b3A6ICRzcGFjZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgJi53aGl0ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTM7XG4gICAgICArIC5ibG93b3V0LndoaXRlLFxuICAgICAgKyA6bm90KC50aGVtZWQpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlci07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ibG93b3V0IHtcbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0IHtcbiAgICBAaW5jbHVkZSBicmVhay1pbigkbWVkaWEtbWluICsgJGJhc2UtZ2FwKSB7XG4gICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICBsZWZ0OiAkZ2FwLTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRndXR0ZXItO1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Om5vdChtb2JpbGUpIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCk7XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgc2lkZWJhci1ibG93b3V0LW9mZnNldCgpO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3ICsgI3skZ3V0dGVyfSk7XG4gIH1cbn1cblxuLy8gQmFja2dyb3VuZCBJbWFnZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYmFja2dyb3VuZC1pbWFnZSxcbmJhY2tncm91bmQtdmlkZW8ge1xuICB6LWluZGV4OiAtMTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1iYWNrZ3JvdW5kKTtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgJi5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiA0O1xuICB9XG59XG5cbmltZ1tkYXRhLXNyY10sXG52aWRlb1tkYXRhLXNyY10ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgb3BhY2l0eTogMDtcblxuICAmLmxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vLyBTcGVjaWFsIFJ1bGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBBZGRzIGEgdG9wIGJvcmRlciAod2l0aG91dCBzaGlmdGluZyBlbGVtZW50cyBhcm91bmQgYnkgMXB4KSB0byBub25lIHRoZW1lZCBzaWJsaW5ncyBvZiB0aGUgbWFpbiBlbGVtZW50XG5tYWluIH4gKjpub3QoLnRoZW1lZCkgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKTpub3Qoc2lkZS1iYXIpIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICN7JGdyZXk0fSk7XG59XG4vLyBtYWluID4gKi50aGVtZWQgKyA6bm90KC50aGVtZWQpIHsgYm94LXNoYWRvdzogaW5pdGlhbDsgfVxubWFpbiA+ICoudGhlbWVkLmNvbnRlbnQtYmxvY2sge1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxubWFpbiA+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcikge1xuICBtYXJnaW4tdG9wOiAwO1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxubWFpbiB+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3RlciksXG5ib2R5LmJhY2tncm91bmQtcG9zaXRpb25lZC1iZWhpbmQtaGVhZGVyIG1haW4gPiAqOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxuLy8gQWRkcyBhIGJvcmRlciBvbiB0aGUgZmlyc3QgY2hpbGQgaWYgaXQncyBub3QgdGhlbWVkIG9yIGlzIHdoaXRlXG5tYWluID4gKjpmaXJzdC1jaGlsZDpub3QoLnRoZW1lZCksXG5tYWluID4gKjpmaXJzdC1jaGlsZC53aGl0ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjeyRncmV5NH0pO1xufVxuXG4vLyBtYWluIH4gc2VjdGlvbiwgbWFpbiB+IGFzaWRlLCBtYWluIH4gZGl2LCBtYWluIH4gbG9nby1zY3JvbGxlciB7IGdyaWQtcm93OiBub25lOyB9XG4vLyBtYWluIH4gOm5vdChzaWRlLWJhcik6bm90KGJhY2tncm91bmQtaW1hZ2UpOm5vdCgjZm9vdGVyKSB7IGdyaWQtcm93OiBub25lOyB9XG5cbi8vIFJlbW92ZXMgbWFyZ2luIG9uIG5vbmUgdGhlbWVkIHNpYmxpbmdzIG9mIGFuZCBpbiB0aGUgbWFpbiBlbGVtZW50IHRoYXQgYWxzbyBhcmUgbm90IGJsb3dub3V0XG5tYWluIH4gKjpub3QoLnRoZW1lZCkgKyAudGhlbWVkOm5vdCguYmxvd291dCksXG5tYWluID4gKjpub3QoLnRoZW1lZCkgKyAudGhlbWVkOm5vdCguYmxvd291dCkge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vLyBBZGRkcyBhIGxhcmdlciBzcGFjZXIgdG8gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbWFpbiBlbGVtZW50IHRoYXQgYXJlIHRoZW1lZCBidXQgbm90IGJsb3duIG91dFxuLmhlYWRlciB+IG1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAkc3BhY2VyO1xufVxubWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcbn1cblxuLy8gQWRkcyBhIGxhcmdlciBzcGFjZXIgdG8gdGhlbWVkIG5vbiBibG93bm91dCBlbGVtZW50c1xubWFpbiA+IC50aGVtZWQ6bm90KC5ibG93b3V0KSArIC5ibG93b3V0IHtcbiAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbn1cblxuLmhlYWRlciB+IG1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5tYWluIH4gZGl2OmhhcygjQ29va2llYm90V2lkZ2V0KSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ3NpZGUtYmFyJykge1xuICAtLW1haW4tbWF4LXdpZHRoOiBhdXRvO1xuICAtLWNvbHVtbi1tYWluOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG59XG5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdicmVhZGNydW1icy1iYXInKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWFuY2hvcnM6IDI7XG4gIC0tcm93LWhlYWRlcjogMztcbiAgLS1yb3ctbWFpbjogNDtcblxuICBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG4gIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNDtcbiAgfVxuICBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG4gIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMztcbiAgfVxuXG4gICNhbmNob3JzLWJhci5zdGlja3kge1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwtbWVkaXVtJykge1xuICAgIC0tcm93LXNpZGViYXI6IDMgLyBzcGFuIDM7XG4gICAgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgICBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPScxJ10gPiBuYXYge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYW5jaG9ycy1iYXInKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWJyZWFkY3J1bWJzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG5cbiAgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDM7XG4gIH1cblxuICAjYnJlYWRjcnVtYnMtYmFyLnN0aWNreSB7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMyAvIHNwYW4gMztcbiAgICBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICAgIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICAgIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9JzEnXSA+IG5hdiB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgI3skZ3V0dGVyfSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdicmVhZGNydW1icy1iYXInLCAnYW5jaG9ycy1iYXInKSB7XG4gIC0tcm93LW5hdmlnYXRpb246IDE7XG4gIC0tcm93LWhlYWRlcjogMjtcbiAgLS1yb3ctbWFpbjogMztcbiAgLS1yb3ctYmFja2dyb3VuZDogMTtcblxuICBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG4gIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMSAvIHNwYW4gNTtcbiAgfVxuICBiYWNrZ3JvdW5kLWltYWdlLmJlaGluZC1oZWFkZXIsXG4gIGJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gICAgLS1yb3ctYmFja2dyb3VuZDogMjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwtbWVkaXVtJykge1xuICAgIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gICAgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gICAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgICAgIHRvcDogJGd1dHRlcjtcbiAgICB9XG4gICAgLS1yb3ctc2lkZWJhcjogMiAvIHNwYW4gMztcbiAgfVxufVxuXG5ib2R5LnJ1bGUtbGFzdC1tYWluLXNlY3Rpb24taXMtdGhlbWVkIHtcbiAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBzaWRlLWJhciB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRmF1eCBMYXlvdXRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmxheW91dCB7XG4gICYtY29udGVudC1yaWdodC1zaWRlYmFyLFxuICAmLWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIC5sZWZ0LFxuICAgIC5yaWdodCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5sYXlvdXQge1xuICAgICAgJi1jb250ZW50LXJpZ2h0LXNpZGViYXIsXG4gICAgICAmLWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICAgICAgLS1jb2x1bW4tY29udGVudDogbWlubWF4KDAsIGNhbGMoI3skbWVkaWEtbWF4fSAtICh2YXIoLS1zaWRlYmFyLXdpZHRoKSAqIDIpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmYXV4LWxheW91dC1ncmlkKCRzZWxlY3RvcjogJ2JvZHkgPiAubGF5b3V0JywgJGJyZWFrcG9pbnQ6ICdzbWFsbC1tZWRpdW0nKSB7XG4gIEBpbmNsdWRlIGJyZWFrLW91dCgkYnJlYWtwb2ludCkge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICAvLyBDb250ZW50IG9uIHRoZSByaWdodCwgc2lkZWJhciBvbiB0aGUgbGVmdFxuICAgICAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgfVxuICAgICAgICAucmlnaHQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gNDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ29udGVudCBvbiB0aGUgbGVmdCwgc2lkZWJhciBvbiB0aGUgcmlnaHRcbiAgICAgICYtY29udGVudC1yaWdodC1zaWRlYmFyIHtcbiAgICAgICAgLmxlZnQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gMztcbiAgICAgICAgICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgICAgICAgfVxuICAgICAgICAucmlnaHQge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGd1dHRlcjtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhcixcbiAgICAgICYtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBmYXV4LWxheW91dC1ncmlkKCk7XG5cbi8vIFRoaXMgaGFuZGxlcyB3aGVuIHRoZXJlIGlzIG5vdCBzaWRlYmFyIGJ1dCB0aGVyZSBpcyBhIGNvbnRlbnQgYmxvY2sgY29tcG9uZW50XG4vLyB0aGF0IHdvdWxkIG5vcm1hbGx5IGJlIGZ1bGwgd2lkdGguIFRoaXMga2VlcHMgdGhlIGxheW91dCBzdHlsaW5nIGNvbnNpc3RlbnRcbi8vIGFjY3Jvc3MgZnVsbCB3aWR0aCBjb21wb25lbnRzLCBjb250ZW50IGJsb2NrIGNvbXBvbmVudHMuIGFuZCBzaWRlYmFyIGNvbXBvbmVudHMuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnc2lkZS1iYXInKSB7XG4gIEBpbmNsdWRlIGZhdXgtbGF5b3V0LWdyaWQoJ21haW4gLmxheW91dCcsICdtZWRpdW0nKTtcbn1cblxuLy8gTGl0dGxlIExheW91dCBmaWVsZCBjb2x1bW4gY29udHJvbHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNvbnRlbnQtYmxvY2sge1xuICA+ICoge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoNzAwKSB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDY7XG5cbiAgICAvLyBUaGUgZmlyc3QgbnVtYmVyIGluIHRoZSAuY29sLVgtWCBjbGFzcyBuYW1lIHJlZmVyZXMgdG8gdGhlIGNvbHVtbiBzdGFydGluZyBwb2ludCxcbiAgICAvLyBUaGUgc2Vjb25kIG51bWJlciBpcyBob3cgbWFueSBjb2x1bW5zIGl0IHNwYW5zIGZvci5cbiAgICAvLyBZb3UgbWF5IGJlIHdvbmRlcmluZyB3aHkgSSBkaWRuJ3QganVzdCBzdGljayB3aXRoIHRoZSBvbmUtbGluZXIgdXNpbmcgY3VzdG9tIHByb3BlcnRpZXMuXG4gICAgLy8gVGhhdCBtZXRob2Qgb2YgY29sdW1uIGdyaWRzIGlzIHRvbyBzdHJpY3QgYW5kIHdvdWxkIG5ldmVyIHJlbGlhYmxlIGJyZWFrZG93blxuICAgIC8vIG5hdGl2ZWx5IGJlY2F1c2UgdGhlIGNvbnRlbnQgd291bGQgYWx3YXlzIGJlY29tZSBvdmVyYmxvd24uXG4gICAgLy8gV2UgaGFkIHRvIGdvIHRoZSBtYW51YWwgd2F5IHNvIHRoYXQgd2UgY2FuIGFkZHJlc3Mgc3BlY2lhbCBzaXR1YXRpb25zIGFzIHNwZWljZmljIGJyZWFrIHBvaW50cy5cblxuICAgIC8vIE9uZSBDb2x1bW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0xLTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDE7XG4gICAgfVxuICAgIC5jb2wtMS0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTEtMyB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC0xLTQge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDQ7XG4gICAgfVxuICAgIC5jb2wtMS01IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiA1O1xuICAgIH1cbiAgICAuY29sLTEtNiB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gNjtcbiAgICB9XG5cbiAgICAvLyBUd28gQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMi0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTItMiB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC0yLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtMi00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiA0O1xuICAgIH1cbiAgICAuY29sLTItNSB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gNTtcbiAgICB9XG5cbiAgICAvLyBUaHJlZSBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMy0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTMtMiB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC0zLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtMy00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiA0O1xuICAgIH1cblxuICAgIC8vIEZvdXIgQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC00LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDE7XG4gICAgfVxuICAgIC5jb2wtNC0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTQtMyB7XG4gICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gMztcbiAgICB9XG5cbiAgICAvLyBGaXZlIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtNS0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA1IC8gc3BhbiAyO1xuICAgIH1cbiAgICAuY29sLTUtMiB7XG4gICAgICBncmlkLWNvbHVtbjogNSAvIHNwYW4gMjtcbiAgICB9XG5cbiAgICAvLyBTaXggQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtNi0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA2IC8gc3BhbiAxO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWJldHdlZW4oNzAwLCBsYXJnZSkge1xuICAgIC0tY29sdW1uLWNvdW50OiA0O1xuXG4gICAgLy8gU3BlY2lhbCBSdWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTEtMyB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC0xLTQge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtMS01IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTQtMyB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIC0xO1xuICAgIH1cblxuICAgIC8vIEJyZWFrZG93biBSdWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0xLTYge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB9XG4gICAgLmNvbC0yLTMsXG4gICAgLmNvbC0yLTQsXG4gICAgLmNvbC0yLTUge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyAtMTtcbiAgICB9XG4gICAgLmNvbC0zLTIsXG4gICAgLmNvbC0zLTMsXG4gICAgLmNvbC0zLTQge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyAtMTtcbiAgICB9XG4gICAgLmNvbC00LTEsXG4gICAgLmNvbC00LTIsXG4gICAgLmNvbC01LTEsXG4gICAgLmNvbC02LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDQgLyAtMTtcbiAgICB9XG4gICAgLmNvbC01LTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDEvIC0xO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWJldHdlZW4obWluLCA2OTkpIHtcbiAgICAtLWNvbHVtbi1jb3VudDogMjtcblxuICAgIC5jb2wtMS0xLFxuICAgIC5jb2wtMy0xLFxuICAgIC5jb2wtNS0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIH1cbiAgICAuY29sLTItMSxcbiAgICAuY29sLTQtMSxcbiAgICAuY29sLTYtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVhay1pbig1MDApIHtcbiAgICAgIC5jb2wtMS0xIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIH1cbiAgICAgIC5jb2wtMS01ICsgLmNvbC02LTEge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoNTAwKSB7XG4gICAgICAuY29sLTItNSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgfVxuICAgICAgLmNvbC0xLTUge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERldiBTdHlsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIG5hdmlnYXRpb24tYmFyLCBoZWFkZXIsIG1haW4sIG1haW4gPiAqLCBzaWRlLWJhciwgI2Zvb3RlciwgYXNpZGUge1xuLy8gICBwb3NpdGlvbjpyZWxhdGl2ZTtcbi8vIH1cblxuLy8gbmF2aWdhdGlvbi1iYXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJHJlZCwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRyZWQ7XG4vLyB9XG5cbi8vIC5oZWFkZXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJG9yYW5nZSwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRvcmFuZ2U7XG4vLyB9XG5cbi8vICNicmVhZGNydW1icy1iYXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJGJsdWUsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokYmx1ZTtcbi8vIH1cblxuLy8gI2FuY2hvcnMtYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRwdXJwbGUsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokcHVycGxlO1xuLy8gfVxuXG4vLyBtYWluIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRncmVlbiwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRncmVlbjtcbi8vIH1cblxuLy8gc2lkZS1iYXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJHB1cnBsZSwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRwdXJwbGU7XG4vLyB9XG5cbi8vICNmb290ZXIge1xuLy8gICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoJGJyb3duLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JGJyb3duO1xuLy8gfVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVha3BvaW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrcG9pbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOm1ldGEnO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJy4uL2hlbHBlcnMvYnJlYWsnO1xuXG4vLy8gV2hlbiBPTkxZIHVzaW5nIHRoZSBmb2xsb3dpbmcgcHJlZGVmaW5lIGJyZWFrcG9pbnQgbmFtZXMgeW91IGNhbiB1c2UgdGhpcyBjcmVhdGUgZmlsZSBsaWtlIHRoaXM6XG4vLy8gQGV4YW1wbGUgXG4vLy8gQGZvcndhcmQgJ2NyZWF0ZS9icmVha3BvaW50cycgd2l0aCAoXG4vLy8gICAkbWluICAgICAgICAgIDogMzIwLFxuLy8vICAgJHNtYWxsICAgICAgICA6IDQ4MCxcbi8vLyAgICRzbWFsbC1tZWRpdW0gOiA3MjAsXG4vLy8gICAkbWVkaXVtICAgICAgIDogOTUwLFxuLy8vICAgJGxhcmdlICAgICAgICA6IDExMjAsXG4vLy8gICAkbWF4ICAgICAgICAgIDogMTY4MFxuLy8vICk7XG5cbiRtaW4gICAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyAzMjBweFxuJG1pbi1zbWFsbCAgICA6IG51bGwgIWRlZmF1bHQ7IFxuJHNtYWxsICAgICAgICA6IG51bGwgIWRlZmF1bHQ7IC8vIDQ4MHB4XG4kc21hbGwtbWVkaXVtIDogbnVsbCAhZGVmYXVsdDsgLy8gNzIwcHhcbiRtZWRpdW0gICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyA5NTBweFxuJG1lZGl1bS1sYXJnZSA6IG51bGwgIWRlZmF1bHQ7IFxuJGxhcmdlICAgICAgICA6IG51bGwgIWRlZmF1bHQ7IC8vIDExMjBweFxuJGxhcmdlLW1heCAgICA6IG51bGwgIWRlZmF1bHQ7IFxuJG1heCAgICAgICAgICA6IG51bGwgIWRlZmF1bHQ7IC8vIDE2ODBwXG5cbi8vLyBXaGVuIHVzaW5nIGFueSBudW1iZXIgb2YgYnJlYWtwb2ludHMgd2l0aCBhbnkgbmFtZSB5b3UgY2FuIHVzZSB0aGlzIGNyZWF0ZSBmaWxlIGxpa2UgdGhpczpcbi8vLyBAZXhhbXBsZSBcbi8vLyBAZm9yd2FyZCAnY3JlYXRlL2JyZWFrcG9pbnRzJyB3aXRoIChcbi8vLyAgICRicmVha3BvaW50cyA6IChcbi8vLyAgICAgJ21pbicgICAgICAgICAgOiAzMjAsXG4vLy8gICAgICdzbWFsbCcgICAgICAgIDogNDgwLFxuLy8vICAgICAnc21hbGwtbWVkaXVtJyA6IDcyMCxcbi8vLyAgICAgJ25hdicgICAgICAgICAgOiA2NjYsIDwtLSB3b24ndCBiZSBleHBvc2VkIGJlY3Vhc2UgaXQncyBub3QgYSBwcmVkZWZpbmVkIG5hbWUgKCRtZWRpYS1uYXYgd2lsbCBlcnJvcilcbi8vLyAgICAgJ21lZGl1bScgICAgICAgOiA5NTAsXG4vLy8gICAgICdsYXJnZScgICAgICAgIDogMTEyMCxcbi8vLyAgICAgJ21heCcgICAgICAgICAgOiAxNjgwXG4vLy8gICApXG4vLy8gKTtcblxuJGJyZWFrcG9pbnRzIDogKFxuICAnbWluJyAgICAgICAgICA6ICRtaW4sXG4gICdtaW4tc21hbGwnICAgIDogJG1pbi1zbWFsbCxcbiAgJ3NtYWxsJyAgICAgICAgOiAkc21hbGwsXG4gICdzbWFsbC1tZWRpdW0nIDogJHNtYWxsLW1lZGl1bSxcbiAgJ21lZGl1bScgICAgICAgOiAkbWVkaXVtLFxuICAnbWVkaXVtLWxhcmdlJyA6ICRtZWRpdW0tbGFyZ2UsXG4gICdsYXJnZScgICAgICAgIDogJGxhcmdlLFxuICAnbGFyZ2UtbWF4JyAgICA6ICRsYXJnZS1tYXgsXG4gICdtYXgnICAgICAgICAgIDogJG1heFxuKSAhZGVmYXVsdDtcblxuLy8vIFByaXZhdGUgYWRkLXVuaXQgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL29wZXJhdG9ycy9udW1lcmljXG5cbkBmdW5jdGlvbiBfYWRkLXVuaXQoJHZhbHVlKSB7XG4gIEBpZiAobWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicgYW5kIG1hdGguaXMtdW5pdGxlc3MoJHZhbHVlKSkge1xuICAgIEByZXR1cm4gJHZhbHVlICogMXB4O1xuICB9XG4gIEByZXR1cm4gJHZhbHVlO1xufSBcblxuLy8vIFVwZGF0ZSBhbGwgdGhlIHByZWRlZmluZWQgYnJlYWtwb2ludHMgZnJvbSB0aGUgJGJyZWFrcG9pbnRzIG1hcCAtLS0tLS0tLS0tLS0tXG4vLy8gV2UgaGF2ZSB0byBkbyBpdCB0aGlzIHdheSBiZWNhdXNlIHdlIGNhbid0IGR5bmFtaWNhbGx5IGRlZmluZSB2YXJpYWJsZXNcbi8vLyBuYW1lcy4gVGhpcyBpcyB3aHkgd2UgaGF2ZSB0aGUgcHJlZGVmaW5lZCBuYW1lcy4gXG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWluXCIpIHsgXG4gICRtaW4gOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWluXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWluXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtaW5cIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWluLXNtYWxsXCIpIHsgXG4gICRtaW4tc21hbGwgOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWluLXNtYWxsXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWluLXNtYWxsXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtaW4tc21hbGxcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwic21hbGxcIikgeyBcbiAgJHNtYWxsIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwic21hbGxcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcInNtYWxsLW1lZGl1bVwiKSB7IFxuICAkc21hbGwtbWVkaXVtIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcInNtYWxsLW1lZGl1bVwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcInNtYWxsLW1lZGl1bVwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwic21hbGwtbWVkaXVtXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bVwiKSB7IFxuICAkbWVkaXVtIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bVwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bVwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWVkaXVtXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bS1sYXJnZVwiKSB7IFxuICAkbWVkaXVtLWxhcmdlIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bS1sYXJnZVwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bS1sYXJnZVwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWVkaXVtLWxhcmdlXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcImxhcmdlXCIpIHsgXG4gICRsYXJnZSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJsYXJnZVwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcImxhcmdlXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJsYXJnZVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJsYXJnZS1tYXhcIikgeyBcbiAgJGxhcmdlLW1heCA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJsYXJnZS1tYXhcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJsYXJnZS1tYXhcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcImxhcmdlLW1heFwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtYXhcIikgeyBcbiAgJG1heCA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtYXhcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtYXhcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1heFwiKTsgXG4gIH1cbn1cblxuLy8gTWFrZSBzdXJlIGFsbCB0aGUgdmFsdWVzIGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIGhhdmUgdW5pdHNcblxuQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmVha3BvaW50cyB7XG4gICRicmVha3BvaW50cyA6IG1hcC5zZXQoJGJyZWFrcG9pbnRzLCAka2V5LCBfYWRkLXVuaXQoJHZhbHVlKSk7IFxufVxuXG4vLy8gQnJlYWtwb2ludCBmdW5jdGlvblxuLy8vIEFjY2VwdHMgYSBzdHJpbmcgdG8gcHVsbCBmcm9tIHRoZSAkYnJlYWtwb2ludHMgbWFwIGlmIGl0IGV4aXN0c1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIGFuZCBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSkgIT0gbnVsbCkge1xuICAgICAgJHZhbHVlIDogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAd2FybiAnXCInICsgJHZhbHVlICsgJ1wiIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIGRlZmluZWQuIENoZWNrIHRoZSBydWxlcyB3aGVyZXZlciB5b3UgYXJlIHJlZ2lzdGVyaW5nIHlvdXIgXCJjcmVhdGUvYnJlYWtwb2ludHNcIiBoZWxwZXInO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9hZGQtdW5pdCgkdmFsdWUpO1xufVxuXG4vLy8gQnJlYWsgbWl4aW5zXG4vLy8gUmVkZWZpbmUgdGhlIGJyZWFrIG1peGlucyB3aXRoIG9uZXMgdGhhdCB1c2UgdGhlIGJyZWFrcG9pbnRzIGZ1bmN0aW9uIGZvciB2YWxpZGF0aW9uXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQGluY2x1ZGUgYnJlYWsub3V0KGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBpbmNsdWRlIGJyZWFrLmluKGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAaW5jbHVkZSBicmVhay5iZXR3ZWVuKGJyZWFrcG9pbnQoJG1pbiksIGJyZWFrcG9pbnQoJG1heCkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYmFja2dyb3VuZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAncG9zaXRpb24nO1xuXG5AbWl4aW4gYmxvd291dCgkcHN1ZG8gOiBiZWZvcmUpIHtcbiAgJjojeyRwc3Vkb30ge1xuICAgIGNvbnRlbnQ6XCJcIjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7IFxuXHRcdHotaW5kZXg6LTE7IFxuICAgIEBpbmNsdWRlIHBvc2l0aW9uLmJsb3dvdXQ7IFxuICAgIEBjb250ZW50O1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBQb3NpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Bvc2l0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcblxuQG1peGluIGV4cGFuZGVkIHtcblx0cG9zaXRpb246YWJzb2x1dGU7IFxuXHR0b3A6MDsgXG5cdGxlZnQ6MDsgXG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDoxMDAlOyBcbn1cblxuQG1peGluIGNlbnRyZSB7XG4gIHBvc2l0aW9uOmFic29sdXRlOyBcblx0dG9wOjUwJTsgXG5cdGxlZnQ6NTAlO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyBcbn1cblxuQG1peGluIGJsb3dvdXQoJGhvcml6b250YWwgOiB0cnVlLCAkdmVydGljYWwgOiBmYWxzZSkge1xuICBcbiAgcG9zaXRpb246YWJzb2x1dGU7XG5cbiAgQGlmICRob3Jpem9udGFsIGFuZCAkdmVydGljYWwge1xuICAgIHRvcCAgICAgICA6IDUwJTsgXG4gICAgbGVmdCAgICAgIDogNTAlOyBcbiAgICB3aWR0aCAgICAgOiAxMDB2dztcbiAgICBoZWlnaHQgICAgOiAxMDB2aDsgXG4gICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpLCB2YXIoLS10cmFuc2xhdGVZLCAtNTAlKSk7XG4gIH0gQGVsc2UgaWYgJGhvcml6b250YWwgIHtcbiAgICB0b3AgICAgICAgOiAwOyBcbiAgICBsZWZ0ICAgICAgOiA1MCU7IFxuICAgIHdpZHRoICAgICA6IDEwMHZ3O1xuICAgIGhlaWdodCAgICA6IDEwMCU7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xuICB9IEBlbHNlIGlmICR2ZXJ0aWNhbCAge1xuICAgIHRvcCAgICAgICA6IDUwJTsgXG4gICAgbGVmdCAgICAgIDogMDsgXG4gICAgd2lkdGggICAgIDogMTAwJTtcbiAgICBoZWlnaHQgICAgOiAxMDB2aDsgXG4gICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGVZLCAtNTAlKSk7XG4gIH1cblxufSIsIkB1c2UgXCJzYXNzOmxpc3RcIjtcblxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGNvbXBvbmVudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7IG9wYWNpdHk6MC41OyB9XG4vLy8gUGFzcyBpbiBtdWx0dWlwbGUgY29tcGVuZW50IG5hbWVzIGlmIHlvdSB3YW50IHRvIGNoZWNrIHRoZXkgYWxsIGV4aXN0XG5cbkBtaXhpbiBleGlzdHMoJG5hbWVzLi4uKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2JvZHknO1xuICAkcGFyZW50IDppZihsaXN0Lm50aChsaXN0Lm50aCgmLCAxKSwgMSkgPT0gJzpyb290JywgJycsICYpO1xuXG4gIEBlYWNoICRuYW1lIGluICRuYW1lcyB7XG4gICAgJHNlbGVjdG9yIDogJHNlbGVjdG9yICsgJ1tkYXRhLWNvbXBvbmVudHMqPVwiI3skbmFtZX1cIl0nO1xuICB9XG5cbiAgQGF0LXJvb3QgI3skc2VsZWN0b3J9ICN7JHBhcmVudH0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYmFja2dyb3VuZC1pbWFnZScpIHsgb3BhY2l0eTowLjU7IH1cbi8vLyBQYXNzIGluIG11bHR1aXBsZSBjb21wZW5lbnQgbmFtZXMgaWYgeW91IHdhbnQgdG8gY2hlY2sgbm9uZSBleGlzdFxuXG5AbWl4aW4gZG9lc250LWV4aXN0cygkbmFtZXMuLi4pIHtcblxuICAkc2VsZWN0b3IgOiAnYm9keSc7XG4gICRwYXJlbnQgOmlmKGxpc3QubnRoKGxpc3QubnRoKCYsIDEpLCAxKSA9PSAnOnJvb3QnLCAnJywgJik7XG4gIFxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgICRzZWxlY3RvciA6ICRzZWxlY3RvciArICc6bm90KFtkYXRhLWNvbXBvbmVudHMqPVwiI3skbmFtZX1cIl0pJztcbiAgfVxuXG4gIEBhdC1yb290ICN7JHNlbGVjdG9yfSAjeyRwYXJlbnR9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbm5hdmlnYXRpb24tYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiBjYWxjKCN7JHNwYWNlcjB9ICsgI3skZ2FwfSkgMDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8vIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQyZGVnLCAkYmx1ZTMsICRibHVlNCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlNDtcbiAgei1pbmRleDogNTtcbiAgZ2FwOiAkZ3V0dGVyO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuXG4gIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogI3skZ2FwfTtcbiAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6IHdoaXRlO1xuICAtLW1hcmtlci1saW5lLXRoaWNrbmVzczogM3B4O1xuICAtLXNwYWNlci1saW5lLXRoaWNrbmVzczogMXB4O1xuXG4gIC8vIEBhdC1yb290IGJvZHk6bm90KFtzdHlsZSo9XCItLWxvZ28tdGFnbGluZS1oZWlnaHRcIl0pIHsgLS1sb2dvLXRhZ2xpbmUtaGVpZ2h0IDogMTBweDsgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsLW1lZGl1bSkge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWJsb3dvdXQge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICA+ICo6bm90KC5pbWFnZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgQGluY2x1ZGUgY29tcG9uZW50LWV4aXN0cygnYmFja2dyb3VuZC1pbWFnZScpIHtcbiAgICAmLmhpZGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGNvbXBvbmVudC1leGlzdHMoJ2JhY2tncm91bmQtdmlkZW8nKSB7XG4gICAgJi5oaWRlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaW52ZXJ0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgLS10b3AtbGV2ZWwtbGluay1jb2xvdXI6ICN7JGJsdWV9O1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBhLmxvZ28ge1xuICAgICAgaW1nIHtcbiAgICAgICAgJltzcmMqPSd0YWdsaW5lLnN2ZyddIHtcbiAgICAgICAgICBmaWx0ZXI6IGludmVydCgwLjkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTG9nbyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgYS5sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcblxuICAgIGltZyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgJltzcmMqPSdsb2dvLnN2ZyddIHtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDkwJSwgMCA5MCUpO1xuICAgICAgfVxuICAgICAgJltzcmMqPSd0YWdsaW5lLnN2ZyddIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogM3B4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIC8vIHRvcDpjYWxjKDkwJSAtIDNweCAtICN7JGdhcDB9KTtcbiAgICAgIC8vIGJvdHRvbTpjYWxjKHZhcigtLWxvZ28tdGFnbGluZS1oZWlnaHQpIC0gM3B4IC0gI3skZ2FwMH0pO1xuICAgICAgYm90dG9tOiBjYWxjKHZhcigtLWxvZ28tdGFnbGluZS1oZWlnaHQsICN7JGdhcDAtfSkgKyAjeyRnYXAwfSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5hdmlnYXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIG5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGdhcDogOHB4O1xuXG4gICAgLy8gRGV2aWRpbmcgU3BhY2VyIExpbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIG5vbmUgdG9wLWxldmVsLWxpbmsgaXRlbXMgaW4gYSBzcGVjaWFsIHdheS5cbiAgICAvLyBJZiB5b3Ugc2hvdWxkIGVuZCB1cCBhZGRpbmcgbW9yZSBidXR0b25zIHNpbWlsYXIgdG8gdGhlIFwic2VhcmNoXCIgaW4gdGhpc1xuICAgIC8vIGFyZWEsIHlvdSB3aWxsIG5lZWQgYW1lbmQgdGhlIDpudGgtbGFzdC1jaGlsZCBpbmRleFxuXG4gICAgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluazpub3QoOm50aC1sYXN0LWNoaWxkKDIpKTpub3QoOm50aC1sYXN0LWNoaWxkKDMpKTpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSxcbiAgICBzZWNvbmRhcnktbWVudSA+IHVsID4gbGk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICB3aWR0aDogdmFyKC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzKTtcbiAgICAgIGhlaWdodDogNDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IGNhbGMoLTEgKiAodmFyKC0tc3BhY2VyLWxpbmUtdGhpY2tuZXNzKSAvIDIpKTtcbiAgICAgIHRvcDogNTAlIC0gMjAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BhY2VyLWxpbmUtY29sb3VyLCAkcmVkKTtcbiAgICB9XG5cbiAgICBwZXJzb25hbGlzZS1leHBlcmllbmNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnBlcnNvbmFsaXNlZCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogJGdhcDtcblxuICAgICAgLy8gUGVyc29uYWxpc2VkIEV4cGVyaWVuY2UgQmFyXG4gICAgICBwZXJzb25hbGlzZS1leHBlcmllbmNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgICAgICAgLS1mb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgIC0tcGFkZGluZzogNHB4IDEwcHg7XG5cbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogOTQwcHgpIHtcbiAgICAgICAgICAgIC0tZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgICAgICAgICAgIC0taWNvbi1zaXplOiAyMHB4O1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgLS1pY29uLXNpemU6IDEuMWVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBzZWNvbmRhcnktbWVudSB7XG4gICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAuYnV0dG9uLFxuICAgICAgICBwZXJzb25hbGlzZS1leHBlcmllbmNlIGEuYnV0dG9uLnBlcnNvbmFsaXNlZCB7XG4gICAgICAgICAgLS1wYWRkaW5nOiA4cHg7XG4gICAgICAgICAgLS1pY29uLXNpemU6IDAuOGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbWFpbi1tZW51ID4gdWwgPiBsaS50b3AtbGV2ZWwtbGluayArIC5zZWFyY2gge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJpYyBMaW5rIFN0eWxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLmxpbmsge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNGVtO1xuICAgICAgICBoZWlnaHQ6IDAuNWVtO1xuICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgICAgICY6bm90KC5hcnJvdy1yaWdodCk6bm90KC5hcnJvdy1sZWZ0KSB7XG4gICAgICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5vdmVydmlldyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgICAubGluayBzdmcsXG4gICAgLmJ1dHRvbiBzdmcge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gTWFpbiBNZW51IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgbWFpbi1tZW51IHtcbiAgICAgIC0tZm9udC1zaXplOiAwLjk1ZW07XG4gICAgICBvcmRlcjogMjtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLnRvcC1sZXZlbC1saW5rcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgJi50b3AtbGV2ZWwtbGluayB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAkZ2FwMCB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICh2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKSAqIDIpKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIsICRyZWQpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICYuYWN0aXZlOjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICYuY3VycmVudDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbZGF0YS1uYXY9J21lbnUnXSB7XG4gICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJltkYXRhLW5hdj0nc3VibWVudSddIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNlYXJjaCBCdXR0b25cbiAgICAgICAgICAmLnNlYXJjaCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnNlYXJjaCxcbiAgICAgICAgICAmLm1lbnUge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuY2FydCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgLyAyKTtcbiAgICAgICAgICAgIGxlZnQ6IC0ycHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGF0LXJvb3QgbGkuY2FydCB7XG4gICAgICAgICAgICAgIGFbZGF0YS10b3RhbF0ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10b3RhbCk7XG4gICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDJjaDtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMC40ZW07XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJjaDtcbiAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMC4yO1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYTpub3QoW2RhdGEtdG90YWxdKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMjBweDtcbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmxvYWRpbmcge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGxvYWRlcigkY29sb3VyOiB3aGl0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgaG92ZXIoKSB7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxvYWRlci1hbmltYXRpb24ge1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWNvbmRhcnkgTWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBzZWNvbmRhcnktbWVudSB7XG4gICAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIHotaW5kZXg6IDY7XG4gICAgICA+IHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICByaWdodDogJGdhcC07XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRnYXAwICRnYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjogJGJsdWU1O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMTAwJSArICN7JGdhcDJ9KTtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgJGdhcDAtKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHdoaXRlLCAwLjEpO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkZ2FwMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBwYWRkaW5nOiBjYWxjKCN7JGdhcDB9IC8gMikgJGdhcDtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgJi5hc3NldCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNGVtIDAgMDtcbiAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT3ZlcnZpZXcgPGxpPiBsaW5rIGVsZW1lbnRcbiAgICAgICAgICAgICZbZGF0YS1sZXZlbD0nMSddIGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICBvcmRlcjogMTAwO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICBjb2xvcjogJGJsdWU1O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAwKTtcbiAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSAuc3ViLW1lbnUge1xuICAgICAgICAgICAgcmlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJpYW5nbGUgLyBQb2ludGVyXG4gICAgICAgIC8vIFdlIHJlbmRlciB0aGlzIG9uIHRoZSA8bGk+IHJhdGhlciB0aGFuIHRoZSBkcm9wZG93bi1ncm91cCBlbGVtZW50IGJlY2F1c2VcbiAgICAgICAgLy8gd2Ugd2FudCB0aGlzIHRvIGJlIGNlbnRyZWQgdG8gdGhlIGJ1dHRvbi4gVGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZVxuICAgICAgICAvLyBsYXN0IDxsaT4gd2lsbCBiZSBhbGlnbmVkIHRvIHRoZSByaWdodCBvZiB0aGUgdmlld3BvcnQsIHRoYXQgd2F5XG4gICAgICAgIC8vIHRoZXNlIGNhbid0IGV2ZXIgYmUgcHVzaGVkIG91dCBvZiB2aWV3IHNob3VsZCB0aGUgdXNlcnMgc2NyZWVuIHN0YXJ0c1xuICAgICAgICAvLyB0byBiZWNvbWUgcmVzcG9uc2l2ZSBiZWxvdyB0aGUgbWF4IHZpZXcgd2lkdGguXG4gICAgICAgID4gbGkuaGFzLWNoaWxkcmVuIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtNTAlICsgI3skZ2FwMC19KSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuMSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCUsIDUwJSA1MCUsIDAgMTAwJSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIFN0eWxpbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBAaW5jbHVkZSBicmVhay1pbigxNDAwKSB7XG4gICAgLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzOiAjeyRnYXB9O1xuICAgIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDk4MCkge1xuICAgIG5hdiBtYWluLW1lbnUge1xuICAgICAgLS1mb250LXNpemU6IDAuOWVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1vYmlsZSBTdHlsaW5nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGxpLm1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICB9XG5cbiAgYnV0dG9uLm1lbnUge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBsaW5lIHtcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDE1JSAzMCU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgJGVhc2UtaW4tb3V0LXF1aW50O1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgNzAlO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dC1xdWludDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBzdmcge1xuICAgICAgICBsaW5lIHtcbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgJiB7XG4gICAgcGFkZGluZzogJGd1dHRlciAwO1xuICAgIGxpLm1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgJi5zZWFyY2gge1xuICAgICAgICAgIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAtLXBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaS5tZW51IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYnV0dG9uLm1lbnUge1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEubG9nbyB7XG4gICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICB3aWR0aDogMjAwcHg7XG4gICAgICBtaW4td2lkdGg6IGluaXRpYWw7XG4gICAgfVxuICAgIG5hdiB7XG4gICAgICBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rLFxuICAgICAgc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4sXG4gICAgICBtYWluLW1lbnUgPiB1bCBsaVtkYXRhLW5hdj0nc3VibWVudSddIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrLWluKDk4MCkge1xuICAgICAgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXIgUGFsZXR0ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcIi4vbW9kdWxlcy9jb2xvdXJcIjtcblxuLy8gQWRqdXN0IHRoZXNlIHRvIGFtZW5kIHRoZSBsaWdodG5lc3Mgb3IgZGFya25lc3MgYW1vdW50cyBmb3IgdGhlIGNvbG91cnMgbHNpdGVkIGJlbG93Li4gXG5cbiRfbGlnaHRuZXNzIDogMTUlICFkZWZhdWx0O1xuJF9kYXJrbmVzcyAgOiAyMCUgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21tb24gQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHJlZCAgICAgICAgICA6ICM5NzA4MEUgIWRlZmF1bHQ7XG4kcmVkLWxpZ2h0ICAgIDogY29sb3VyLmxpZ2h0ZW4oJHJlZCwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHJlZC1kYXJrICAgICA6IGNvbG91ci5kYXJrZW4oJHJlZCwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRvcmFuZ2UgICAgICAgOiAjREE0QjBGICFkZWZhdWx0O1xuJG9yYW5nZS1saWdodCA6IGNvbG91ci5saWdodGVuKCRvcmFuZ2UsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRvcmFuZ2UtZGFyayAgOiBjb2xvdXIuZGFya2VuKCRvcmFuZ2UsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4keWVsbG93ICAgICAgIDogI0U5QjEwNCAhZGVmYXVsdDtcbiR5ZWxsb3ctbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkeWVsbG93LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4keWVsbG93LWRhcmsgIDogY29sb3VyLmRhcmtlbigkeWVsbG93LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZWVuICAgICAgICA6ICM0ODhDMTMgIWRlZmF1bHQ7XG4kZ3JlZW4tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZWVuLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JlZW4tZGFyayAgIDogY29sb3VyLmRhcmtlbigkZ3JlZW4sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kYmx1ZSAgICAgICAgIDogIzFCNTVDMCAhZGVmYXVsdDtcbiRibHVlLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkYmx1ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJsdWUtZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJGJsdWUsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcGluayAgICAgICAgIDogI0UwNUQ2QiAhZGVmYXVsdDtcbiRwaW5rLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkcGluaywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHBpbmstZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJHBpbmssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcHVycGxlICAgICAgIDogIzYxM0Q1QSAhZGVmYXVsdDtcbiRwdXJwbGUtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkcHVycGxlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcHVycGxlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkcHVycGxlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZXkgICAgICAgICA6ICM3ODc4NzggIWRlZmF1bHQ7XG4kZ3JleS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZXksICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRncmV5LWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRncmV5LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJyb3duICAgICAgICA6ICM3NzRGMzggIWRlZmF1bHQ7XG4kYnJvd24tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGJyb3duLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kYnJvd24tZGFyayAgIDogY29sb3VyLmRhcmtlbigkYnJvd24sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kd2hpdGUgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdCA7XG4kd2hpdGUtZGFyayAgIDogY29sb3VyLmxpZ2h0ZW4oJHdoaXRlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG5cbiRibGFjayAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0IDtcbiRibGFjay1saWdodCAgOiBjb2xvdXIuZGFya2VuKCRibGFjaywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTb2NpYWwgTWVkaWEgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly93d3cubG9ja2Vkb3duc2VvLmNvbS9zb2NpYWwtbWVkaWEtY29sb3JzL1xuXG4kZmFjZWJvb2s6ICAgICMxODc3ZjIgIWRlZmF1bHQ7XG4kdHdpdHRlcjogICAgICMxZGExZjIgIWRlZmF1bHQ7XG4kZ29vZ2xlOiAgICAgICM0Mjg1ZjQgIWRlZmF1bHQ7XG4keW91dHViZTogICAgICNmZjAwMDAgIWRlZmF1bHQ7XG4kbGlua2VkaW46ICAgICMwMDdiYjUgIWRlZmF1bHQ7XG4kaW5zdGFncmFtOiAgICNjMzJhYTMgIWRlZmF1bHQ7XG4kcGludGVyZXN0OiAgICNiZDA4MWMgIWRlZmF1bHQ7XG4kZGFpbHltb3Rpb246ICMwMDY2REMgIWRlZmF1bHQ7XG4kc25hcGNoYXQ6ICAgICNmZmZjMDAgIWRlZmF1bHQ7XG4kZmxpY2tyOiAgICAgICNmNDAwODMgIWRlZmF1bHQ7XG4kdmltZW86ICAgICAgICMxYWI3ZWEgIWRlZmF1bHQ7XG4kdGh1bWJsZXI6ICAgICMzNTQ2NWQgIWRlZmF1bHQ7XG4kcmVkZGl0OiAgICAgICNmZjQ1MDAgIWRlZmF1bHQ7XG4kd2hhdHNhcHA6ICAgICMyNWQzNjYgIWRlZmF1bHQ7XG4kc2t5cGU6ICAgICAgICMwMGFmZjAgIWRlZmF1bHQ7XG4kZGlzY29yZDogICAgICM3Mjg5ZGEgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEgOiAoXG4gIGZhY2Vib29rOiAgICAgJGZhY2Vib29rLFxuICB0d2l0dGVyOiAgICAgICR0d2l0dGVyLFxuICBnb29nbGU6ICAgICAgICRnb29nbGUsXG4gIHlvdXR1YmU6ICAgICAgJHlvdXR1YmUsXG4gIGxpbmtlZGluOiAgICAgJGxpbmtlZGluLFxuICBpbnN0YWdyYW06ICAgICRpbnN0YWdyYW0sXG4gIHBpbnRlcmVzdDogICAgJHBpbnRlcmVzdCxcbiAgZGFpbHltb3Rpb246ICAkZGFpbHltb3Rpb24sXG4gIHNuYXBjaGF0OiAgICAgJHNuYXBjaGF0LFxuICBmbGlja3I6ICAgICAgICRmbGlja3IsXG4gIHZpbWVvOiAgICAgICAgJHZpbWVvLFxuICB0aHVtYmxlcjogICAgICR0aHVtYmxlcixcbiAgcmVkZGl0OiAgICAgICAkcmVkZGl0LFxuICB3aGF0c2FwcDogICAgICR3aGF0c2FwcCxcbiAgc2t5cGU6ICAgICAgICAkc2t5cGUsXG4gIGRpc2NvcmQ6ICAgICAgJGRpc2NvcmRcbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPdGhlciBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4keWVsbG86ICNGRkNCMDggIWRlZmF1bHQ7XG5cbi8vLyBIYW5kbGVzIHRoZSBjdXJzb3Igc2VsZWN0aW9uIGNvbG91clxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3NlbGVjdG9ycy9zL3NlbGVjdGlvbi9cblxuJGhpZ2hsaWdodDogI0IyRDNGQSAhZGVmYXVsdDsgXG4iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cblxuQG1peGluIGxvYWRlcigkc2l6ZSA6IDEycHgsICRjb2xvdXIgOiAkZ3JleSkge1xuICAtLXNpemUgOiAjeyRzaXplfTsgXG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6Y2FsYyg1MCUgLSAodmFyKC0tc2l6ZSkgLyAyKSk7IFxuICBsZWZ0OmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6dmFyKC0tc2l6ZSk7IFxuICBoZWlnaHQ6dmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCAkY29sb3VyKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzICRlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgICBmcm9tIHt0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gICAgdG8ge3RyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIH1cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBsb2FkZXItYW5pbWF0aW9uIHsgXG4gIG9wYWNpdHk6MTsgXG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICBAY29udGVudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyb3dzZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Jyb3dzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBfYnJvd3NlcigkbmFtZSwgJHZlcnNpb246ZmFsc2UpIHtcbiAgQGF0LXJvb3QgOnJvb3Qge1xuICAgICZbZGF0YS1icm93c2VyKj1cIiN7JG5hbWV9XCJdIHtcbiAgICAgIEBpZiAkdmVyc2lvbiB7XG4gICAgICAgICZbZGF0YS1icm93c2VyKj1cIiN7JHZlcnNpb259XCJdIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZmVhdHVyZSgkbmFtZSkge1xuICBAYXQtcm9vdCA6cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9XCIjeyRuYW1lfVwiXSAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gd2l0aG91dC1mZWF0dXJlKCRuYW1lKSB7XG4gIEBhdC1yb290IDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPVwiI3skbmFtZX1cIl0pICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmaXJlZm94KCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdmaXJlZm94JywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBpZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignaWUnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIGNocm9tZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignY2hyb21lJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBlZGdlKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdlZGdlJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBvcGVyYSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3Nlcignb3BlcmEnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIHNhZmFyaSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3Nlcignc2FmYXJpJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4vLyBEcm9wZG93biBNZW51ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZHJvcGRvd24tbWVudSB7XG4gIC0tbWluLWhlaWdodDogNDMwcHg7XG4gIC0tbWF4LWhlaWdodDogNjAwcHg7XG4gIC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoOiAyNzBweDtcbiAgLS1kcm9wZG93bi1pbWFnZS13aWR0aDogMzAwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0OiA4MHB4O1xuICAtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0OiA2cHg7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSAtIHZhcigtLW1hcmtlci1saW5lLXRoaWNrbmVzcykgLSAxcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IHJnYmEoYmxhY2ssIDAuMik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAxZnI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0LCBtYXJnaW4tdG9wIDAuM3MgJGVhc2UtaW4tb3V0LXNpbmU7XG4gIGZvbnQtc2l6ZTogMTZweDtcblxuICBAYXQtcm9vdCBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmFjdGl2ZSB7XG4gICAgLnRvcC1sZXZlbC1saW5rcyAudG9wLWxldmVsLWxpbmsgLmxpbmsuY3VycmVudDo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgZHJvcGRvd24tbWVudSB7XG4gICAgICBtYXJnaW4tdG9wOiB2YXIoLS1kcm9wZG93bi1vcGVuLW9mZnNldCk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLW1hcmtlci1saW5lLXRoaWNrbmVzcykpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciAmIHtcbiAgICAtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0OiAjeyRnYXB9O1xuICAgIHdpZHRoOiB2YXIoLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGgpICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgICAgIC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skZ3V0dGVyM30pICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQGF0LXJvb3QgYm9keTo6YWZ0ZXIge1xuICAvLyAgIGNvbnRlbnQ6XCJcIjtcbiAgLy8gICBvcGFjaXR5OjA7XG4gIC8vICAgcG9pbnRlci1ldmVudHM6IG5vbmU7O1xuICAvLyAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAvLyAgIGluc2V0OjA7XG4gIC8vICAgdG9wOnZhcigtLW5hdmlnYXRpb24taGVpZ2h0LCAwKTtcbiAgLy8gICB3aWR0aDoxMDB2dztcbiAgLy8gICBoZWlnaHQ6IDEwMHZoO1xuICAvLyAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR3aGl0ZSwgMC45MCk7XG4gIC8vIH1cbiAgLy8gQGF0LXJvb3QgYm9keS5tb2JpbGUubWVudS12aXNpYmxlIHtcbiAgLy8gICBAaW5jbHVkZSBicmVhay1pbihzbWFsbCkge1xuICAvLyAgICAgJjo6YWZ0ZXIge1xuICAvLyAgICAgICBvcGFjaXR5OjE7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbi8vIERyb3Bkb3duIEdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5kcm9wZG93bi1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAxO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC8vIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dDtcbiAgLy8gdHJhbnNpdGlvbi1kZWxheTogMC4zcywgMC4zcztcblxuICAkbWF4LWRlcHRoOiA0O1xuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRtYXgtZGVwdGgge1xuICAgICZbZGF0YS1sZXZlbD0nI3skaX0nXSB7XG4gICAgICB6LWluZGV4OiAoJG1heC1kZXB0aCAtICRpKSArIDE7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc2Nyb2xsLXN0eWxpbmcge1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLmxpbmsge1xuICAgIC0tZm9udC1zaXplOiAwLjllbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwYWRkaW5nOiA0cHggJGdhcDI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgJi5jdXJyZW50IHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIC8vIFRoaXMgd2lsbCBnaXZlIGxpbmtzIHdpdGggY2hpbGRyZW4gYSBhbmdsZWQgc2hhcGUgdG8gYWN0IGFzIGEgaGl0IGhlbHBlci5cbiAgICAgIC8vIEl0IHByZXZlbnQgdXNlcnMgZnJvbSBoYXZpbmcgdG8gbW92ZSB0aGUgbW91c2UgZGlyZWN0bHkgdG8gdGhlIHJpZ2h0IGJlZm9yZVxuICAgICAgLy8gYmVpbmcgYWJsZSB0byBtb3ZlIHVwIHRoZSBuZXcgc3ViIG1lbnUuIFNldCBhIHRlbXBvcmFyeSBiYWNrZ3JvdW5kLWNvbG9yIHRvIHNlZSBpdCBpbiBhY3Rpb25cbiAgICAgIEBpbmNsdWRlIGJyb3dzZXItd2l0aG91dC1mZWF0dXJlKCd0b3VjaCcpIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gNTBweCk7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFRoaXMgYWRqdXN0IHRoZSBoaXQgaGVscGVyIG9uIHRoZSBsYXN0IGxpbmsgdG8gYWNvaWQgdW53YW50ZWQgc2Nyb2xsZXJzXG4gICAgICBAYXQtcm9vdCA6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9J3RvdWNoJ10pIGRyb3Bkb3duLWdyb3VwIC5sYXN0IC5saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpIHJvdGF0ZSgwZGVnKSBza2V3KC00NWRlZywgMCk7XG4gICAgICB9XG4gICAgfVxuICAgICYuaGFzLWNoaWxkcmVuIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ2FwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gaGFuZGxlIHRoZSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNsaWdodGx5XG4gIC8vIGRpZmZlcmVudGx5IGJlY2F1c2UgZ3JpZGRlZCBsaXN0cyBoYXZlIHNvbWUgaXNzdWVzIHdpdGggdGhlIGJvdHRvbVxuICAvLyBwYWRkaW5nIHdoZW4gb3ZlcmZsb3cgc2Nyb2xsIGlzIGFjdGl2ZVxuICB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cbiAgICBsaSB7XG4gICAgICAmLmZpcnN0IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgICAmLmxhc3Qge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDtcbiAgICAgIH1cbiAgICAgICYub3ZlcnZpZXcge1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgICAgICAmIH4gLmZpcnN0IHtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubGluayB7XG4gICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyKCcuYWN0aXZlJykge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5iYWNrIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRnYXA7XG4gICAgICAgIEBpbmNsdWRlIGJyb3dzZXItd2l0aG91dC1mZWF0dXJlKCd0b3VjaCcpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5saW5rIHtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjRlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1sZXZlbD0nMSddIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBsaS5iYWNrIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLWxldmVsPScyJ10ge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbGVmdDogMTAwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgfVxuXG4gICZbZGF0YS1sZXZlbD0nMyddIHtcbiAgICB3aWR0aDogY2FsYyg5NSUgKyAycHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbGVmdDogY2FsYygxOTUlIC0gMXB4KTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4zcywgMC4zcztcbiAgfVxuXG4gICYuYWxsb3ctc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAmW2RhdGEtbGV2ZWw9JzInXSxcbiAgICAmW2RhdGEtbGV2ZWw9JzMnXSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5hY3RpdmUpIHtcbiAgICAmW2RhdGEtbGV2ZWw9JzEnXSxcbiAgICAmW2RhdGEtbGV2ZWw9JzInXSxcbiAgICAmW2RhdGEtbGV2ZWw9JzMnXSB7XG4gICAgICBsZWZ0OiAwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keTpub3QoLm1vYmlsZSkgbmF2aWdhdGlvbi1iYXIgJjpub3QoW2RhdGEtbGV2ZWw9JzEnXSkge1xuICAgIC5saW5rIHtcbiAgICAgIC8vIC0tZm9udC1zaXplOjAuOGVtO1xuICAgICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgJiB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMgJGJvcmRlci1yYWRpdXMgMCAwICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cywgMC41cztcbiAgICB0cmFuc2Zvcm06IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbSA6IHZhcigtLWRyb3Bkb3duLWltYWdlLWhlaWdodCk7XG4gICAgJG1heC1kZXB0aDogNDtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRtYXgtZGVwdGgge1xuICAgICAgJltkYXRhLWxldmVsPScjeyRpfSddIHtcbiAgICAgICAgei1pbmRleDogJGkgKyAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5saW5rIHtcbiAgICAgIC0tZm9udC1zaXplOiAxZW07XG4gICAgICBwYWRkaW5nLXRvcDogJGdhcDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGxpIHtcbiAgICAgICAgJi5vdmVydmlldyxcbiAgICAgICAgJi5iYWNrIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIERyb3Bkb3duIEltYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5kcm9wZG93bi1pbWFnZSB7XG4gIEBpbmNsdWRlIGltYWdlLXNyY3NldCgpO1xuICAvLyBoZWlnaHQ6aW5oZXJpdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBncmlkLWNvbHVtbjogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1pdGVtczogZmxleC1lbmQ7XG5cbiAgLmltYWdlIHtcbiAgICAvLyBoZWlnaHQ6dmFyKC0tbWF4LWhlaWdodCk7XG4gICAgd2lkdGg6IGNsYW1wKHZhcigtLWRyb3Bkb3duLWltYWdlLXdpZHRoKSAvIDIsIDMwdncsIHZhcigtLWRyb3Bkb3duLWltYWdlLXdpZHRoKSk7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAwO1xuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciAmIHtcbiAgICAvLyBkaXNwbGF5Om5vbmU7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgLy8gZ3JpZC1yb3c6MTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB3aWR0aDogaW5oZXJpdDtcbiAgICBoZWlnaHQ6IHZhcigtLWRyb3Bkb3duLWltYWdlLWhlaWdodCk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaXRpYWw7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgLy8gbWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0KSk7XG4gICAgLmltYWdlIHtcbiAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcblxuQG1peGluIHN0eWxpbmcoKSB7XG5cbiAgLy8gdGhlIHNjcm9sbGJhci5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOjAuOWVtO1xuICAgIGhlaWdodDowLjllbTtcbiAgfVxuXG4gIC8vIHRoZSBidXR0b25zIG9uIHRoZSBzY3JvbGxiYXIgKGFycm93cyBwb2ludGluZyB1cHdhcmRzIGFuZCBkb3dud2FyZHMpLlxuICAmOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gdGhlIGRyYWdnYWJsZSBzY3JvbGxpbmcgaGFuZGxlLlxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgfVxuXG4gIC8vIHRoZSB0cmFjayAocHJvZ3Jlc3MgYmFyKSBvZiB0aGUgc2Nyb2xsYmFyLlxuICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyB0aGUgdHJhY2sgKHByb2dyZXNzIGJhcikgTk9UIGNvdmVyZWQgYnkgdGhlIGhhbmRsZS5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2Uge1xuXG4gIH1cblxuICAvLyB0aGUgYm90dG9tIGNvcm5lciBvZiB0aGUgc2Nyb2xsYmFyLCB3aGVyZSBib3RoIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHNjcm9sbGJhcnMgbWVldC5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIHRoZSBkcmFnZ2FibGUgcmVzaXppbmcgaGFuZGxlIHRoYXQgYXBwZWFycyBhdCB0aGUgYm90dG9tIGNvcm5lciBvZiBzb21lIGVsZW1lbnRzLlxuICAmOjotd2Via2l0LXJlc2l6ZXIge1xuXG4gIH1cblxuICBAY29udGVudDtcblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5cblxuLmhlYWRlciB7XG5cbiAgcGFkZGluZy10b3A6JHNwYWNlcjtcbiAgcGFkZGluZy1ib3R0b206JHNwYWNlcjtcblxuICA+IGgxIHN1cCB7XG4gICAgZm9udC1zaXplOjAuNmVtO1xuICB9XG5cbiAgPiBoMSBzcGFue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTpmb250LXNpemUoNik7XG4gICAgY29sb3I6ICRncmV5O1xuICB9XG5cbiAgPiBoMSArICosID4gaDIgKyAqIHtcbiAgICBtYXJnaW4tdG9wOiRndXR0ZXI7XG4gIH1cblxuICA+IGgxICsgaDIgeyBtYXJnaW4tdG9wOiRndXR0ZXIwOyB9XG5cbiAgPiBoMiB7XG4gICAgY29sb3I6dmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTsgXG4gICAgQGluY2x1ZGUgZm9udC1sYXRvKHNlbWktYm9sZCk7XG4gICAgYSB7IFxuICAgICAgLS1mb250LWNvbG91ciA6IHZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7IFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBAaW5jbHVkZSBob3ZlciB7IC0tZm9udC1jb2xvdXIgOiAjeyRwcmltYXJ5fTsgfVxuICAgIH1cbiAgfVxuXG4gIHRpbWUge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG1hcmdpbjokZ3V0dGVyIDA7IFxuICAgIHBhZGRpbmc6NHB4IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MztcbiAgICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDsgIFxuICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTIpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS10YWctY29sb3VyLCAkcmVkKTtcbiAgfVxuXG4gIGJ1dHRvbi1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206JGdhcC07IFxuICAgIG1hcmdpbi10b3A6JHNwYWNlcjA7XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgICAgIC5idXR0b24gc3BhbiB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbm90aWNlLW1lc3NhZ2VzIHsgbWFyZ2luLXRvcDokc3BhY2VyMDsgfVxuXG4gICYuZGFyayB7XG4gICAgLS1oZWFkaW5nLWNvbG91cjp3aGl0ZTtcbiAgICAtLXN1Yi1oZWFkaW5nLWNvbG91cjp3aGl0ZTtcbiAgICAuYnV0dG9uLmJyb2NodXJlIHtcbiAgICAgIC0tZm9udC1jb2xvdXI6d2hpdGU7XG4gICAgICBzdmcgeyBmaWxsOiB3aGl0ZTsgfVxuICAgIH1cbiAgfVxuXG4gICYubm8tZGV2aWRlci1saW5lIHtcbiAgICB+IG1haW4ge1xuICAgICAgLS1ib3JkZXItdG9wLWNvbG91ciA6ICN7cmdiYSh3aGl0ZSwgMC4yKX07XG4gICAgICA+IC5jb250ZW50LWJsb2NrOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwYWRkaW5nLXRvcDowOyBcbiAgICAgICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9ICAgIFxuICB9XG5cbn0iLCJAdXNlICdzYXNzOm1hdGgnO1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuZm9vdGVyI2Zvb3RlciB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuXG4gIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTtcbiAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDMwMHB4O1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICBAaW5jbHVkZSBob3ZlcignLmN1cnJlbnQnKSB7XG4gICAgICBjb2xvcjogJHJlZC1saWdodDtcbiAgICB9XG4gICAgJi5jdXJyZW50IHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5iYWNrLXRvLXRvcCB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogJGdhcC0gYXV0byAkZ2FwIGF1dG87XG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC50YWctbGluZS1zaWduLW9mZiB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXIwO1xuICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgdGFnLWxpbmUge1xuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udHNpemUoMTJweCwgMC40ZW0pO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstaW4oOTAwKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWstaW4oNjAwKSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6ICRnYXAwO1xuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gbmF2IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBncmlkLWdhcDogJGd1dHRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgIHVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGkgKyBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICAgICAgfVxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMzM3B4LCAxZnIpKTtcbiAgICAgICAgZ3JpZC1nYXA6IDAgJGdhcDtcbiAgICAgICAgbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGluZ1xuXG4gIC5oZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG4gICAgQGluY2x1ZGUgZm9udC1jcm9wLXJlbW92ZTtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgIH1cbiAgfVxuXG4gIGNvbXBhbnktZGV0YWlscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW5tO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtZ2FwOiAkZ2FwMCAkZ2FwO1xuXG4gICAgc21hbGwsXG4gICAgLnNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgICAgIGNvbG9yOiByZ2JhKHdoaXRlLCAwLjcpO1xuICAgICAgYnIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5iYXNlIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2VyO1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgYS5sb2dvIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAkYmFyLWhlaWdodDogM3B4O1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgaGVpZ2h0OiAkYmFyLWhlaWdodDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOiBtYXRoLmRpdigtJGJhci1oZWlnaHQsIDIpO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLnllbGxvIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArICN7JGdhcH0pO1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb2xvcjogcmdiYSh3aGl0ZSwgMC41KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICR5ZWxsbztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFkbWluLWxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArICN7JGdhcH0pO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoLmNlcC1sb2dvKSB7XG4gICAgICAtLWxvZ28tc3BhY2VyOiAyMDBweDtcblxuICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSkgaW52ZXJ0KDEpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWxvZ28tc3BhY2VyKTtcbiAgICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAjeyRnYXAyfSk7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLWxvZ28tc3BhY2VyKSAqIC0xKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgICAgIC5jZXAtbG9nbyB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1pbigxNDAwKSB7XG4gICAgPiBuYXYge1xuICAgICAgdWw6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYW55LWRldGFpbHMgc21hbGwgYnIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBjb21wYW55LWRldGFpbHMsID4gbmF2IHVsIHtcbiAgICAvLyBcdHBhZGRpbmc6JGdhcDI7XG4gICAgLy8gXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAvLyBcdGJhY2tncm91bmQtY29sb3I6cmdiYSgkYmx1ZS1kYXJrLCAwLjUpO1xuICAgIC8vIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsLW1lZGl1bSkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgID4gKiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgPiBuYXYge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHVsIHtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmJhc2Uge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhLmxvZ28ge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc29jaWFsLW1lZGlhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlcjAtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICAgIH1cbiAgICAgIGFkbWluLWxpbmtzIHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2wtY29uc2VudC1zZXR0aW5ncyB7XG4gIGxlZnQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgd2lkdGg6IDQycHg7XG4gIGhlaWdodDogNDJweDtcbiAgYm94LXNoYWRvdzogdW5zZXQgIWltcG9ydGFudDtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWd1dHRlcjMpICogMi43NSkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMDtcbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgYm90dG9tOiB2YXIoLS1ndXR0ZXI1KSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIENyb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Nyb3Bcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuL21vZHVsZXMvdW5pdCc7XG5cblxuLy8vIEBzZWUgaHR0cDovL3RleHQtY3JvcC5laWdodHNoYXBlcy5jb20vP3R5cGVmYWNlLXNlbGVjdGlvbj1nb29nbGUtZm9udCZ0eXBlZmFjZT1MYXRvJmN1c3RvbS10eXBlZmFjZS1uYW1lPUhlbHZldGljYSZjdXN0b20tdHlwZWZhY2UtdXJsPSZjdXN0b20tdHlwZWZhY2Utd2VpZ2h0PTQwMCZjdXN0b20tdHlwZWZhY2Utc3R5bGU9bm9ybWFsJndlaWdodC1hbmQtc3R5bGU9MTAwJnNpemU9MzYmbGluZS1oZWlnaHQ9MS4yJnRvcC1jcm9wPTkmYm90dG9tLWNyb3A9OFxuXG5AZnVuY3Rpb24gb2Zmc2V0KCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3ApIHtcbiAgJGNyb3AgICAgICAgIDogdW5pdC5zdHJpcCgkY3JvcCk7XG4gICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICBAcmV0dXJuIG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wICsgKCRsaW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbn1cblxuQG1peGluIGNyb3AyKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wLCAkY3JvcC1ib3R0b20gKSB7XG4gIFxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gIEBpZiAkY3JvcC10b3Age1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAtICN7b2Zmc2V0KCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wKX1lbTtcblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3JvcC1ib3R0b20ge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0gI3tvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC1ib3R0b20pfWVtO1xuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBjcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGNyb3AtdG9wLCAkY3JvcC1ib3R0b20gKSB7XG5cbiAgJGNyb3AtdG9wICAgIDogdW5pdC5zdHJpcCgkY3JvcC10b3ApO1xuICAkY3JvcC1ib3R0b20gOiB1bml0LnN0cmlwKCRjcm9wLWJvdHRvbSk7XG4gICRmb250LXNpemUgICA6IHVuaXQuc3RyaXAoJGZvbnQtc2l6ZSkgKiAxMDtcbiAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuXG4gICRjcm9wLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuXG4gIEBpZiAkY3JvcC10b3Age1xuICAgICRtYXJnaW4tdG9wOiBtYXRoLmRpdihtYXRoLnJvdW5kKG1hdGguZGl2KG1hdGgubWF4KCgkY3JvcC10b3AgKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRmb250LXNpemUgLyAyKSksIDApLCAkZm9udC1zaXplKSAqIDEwMCksIDEwMCk7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi10b3A6IC0gI3skbWFyZ2luLXRvcH1lbTtcblxuICAgIH1cbiAgfVxuXG4gIEBpZiAkY3JvcC1ib3R0b20ge1xuICAgICRtYXJnaW4tYm90dG9tOiBtYXRoLmRpdihtYXRoLnJvdW5kKG1hdGguZGl2KG1hdGgubWF4KCgkY3JvcC1ib3R0b20gKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRmb250LXNpemUgLyAyKSksIDApLCAkZm9udC1zaXplKSAqIDEwMCksIDEwMCk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSAjeyRtYXJnaW4tYm90dG9tfWVtO1xuICAgIH1cbiAgfVxuXG59XG5cblxuQG1peGluIGNyb3AzKCRjcm9wLWZvbnQtc2l6ZTogNTEsICRjcm9wLWxpbmUtaGVpZ2h0OiAxLjIsICR0b3AtY3JvcDogMTMsICRib3R0b20tY3JvcDogMTEpIHtcbiAgLy8gQ29uZmlndXJlZCBpbiBTdGVwIDFcbiAgJGxpbmUtaGVpZ2h0OiAxLjM7XG4gICRjcm9wLWZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkY3JvcC1mb250LXNpemUpICogMTA7XG5cblxuICAvLyBBcHBseSB2YWx1ZXMgdG8gY2FsY3VsYXRlIGVtLWJhc2VkIG1hcmdpbnMgdGhhdCB3b3JrIHdpdGggYW55IGZvbnQgc2l6ZVxuICAkZHluYW1pYy10b3AtY3JvcDogbWF0aC5kaXYobWF4KCgkdG9wLWNyb3AgKyAoJGxpbmUtaGVpZ2h0IC0gJGNyb3AtbGluZS1oZWlnaHQpICogKCRjcm9wLWZvbnQtc2l6ZSAvIDIpKSwgMCksICRjcm9wLWZvbnQtc2l6ZSk7XG4gICRkeW5hbWljLWJvdHRvbS1jcm9wOiBtYXRoLmRpdihtYXgoKCRib3R0b20tY3JvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGNyb3AtZm9udC1zaXplIC8gMikpLCAwKSwgJGNyb3AtZm9udC1zaXplKTtcblxuICAvLyBNaXhpbiBvdXRwdXRcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtI3skZHluYW1pYy10b3AtY3JvcH0rZW07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAtI3skZHluYW1pYy1ib3R0b20tY3JvcH0rZW07XG4gIH1cbn1cblxuQG1peGluIHJlbW92ZSB7XG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIgeyBkaXNwbGF5Om5vbmU7IH1cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgQGluY2x1ZGUgaW1hZ2Utc3Jjc2V0KCk7XG5cbiAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSA6ICN7JGJsdWV9O1xuICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skYmx1ZTJ9O1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OlwiXCI7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7IFxuICAgIHRvcDowOyBcbiAgICBsZWZ0OjA7IFxuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7IFxuICAgIG9wYWNpdHk6MC43O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pKTtcbiAgfVxuXG4gICYubm9uZSB7XG4gICAgJjo6YWZ0ZXIgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgfVxuXG4gICYucmVkIHtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtb25lIDogI3skcmVkfTtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skcmVkfTtcbiAgfVxuXG4gICYuYmxhY2sge1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS1vbmUgOiAjeyRibGFja307XG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLXR3byA6ICN7JGJsYWNrfTtcbiAgfVxuXG4gICYudGlsZSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG4gICAgaW1nIHsgZGlzcGxheTpub25lOyB9XG4gIH1cblxuICAmOm5vdCgudGlsZSkge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgJi5iZWhpbmQtaGVhZGVyIHtcbiAgICAvLyBmaWx0ZXI6IGdyYXlzY2FsZSgyMCUpO1xuICAgICY6OmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6MTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoYmxhY2ssIDAuNSk7XG4gICAgICAvLyBiYWNrZ3JvdW5kOiBpbml0aWFsOztcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgYmxhY2sgMjAlLHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIH1cbiAgfVxuIFxufVxuXG5ib2R5Lm1vYmlsZSA+IGJhY2tncm91bmQtaW1hZ2UsIGJvZHkubW9iaWxlID4gYmFja2dyb3VuZC12aWRlbyB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcblxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgQGluY2x1ZGUgaW1hZ2Utc3Jjc2V0KCk7XG5cdFxuICB2aWRlbyB7XG4gICAgZGlzcGxheSAgICAgICAgIDogYmxvY2s7XG4gICAgcG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG4gICAgb2JqZWN0LWZpdCAgICAgIDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uIDogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuXHRcdHdpZHRoICAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRoZWlnaHQgICAgICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpOyBcblx0XHRtYXgtd2lkdGggICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG5cdFx0bWF4LWhlaWdodCAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcblx0XHR0b3AgICAgICAgICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICAgICAgICAgOiAwO1xuXHR9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTsgXG4gICAgdG9wOjA7IFxuICAgIGxlZnQ6MDsgXG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTsgXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUsIHRyYW5zcGFyZW50KSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28sIGJsYWNrKSk7XG4gIH1cblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4jYnJlYWRjcnVtYnMtYmFyIHtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5O1xuICBkaXNwbGF5OmZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGhlaWdodCAkdHJhbnNpdGlvbiwgdG9wICR0cmFuc2l0aW9uO1xuXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgbGVmdDokZ2FwLTtcbiAgICB3aWR0aDogMTAwJTs7XG4gICAgbGkge1xuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICsgbGkgeyBtYXJnaW4tbGVmdDokZ2FwLTsgfVxuICAgIH1cbiAgfVxuXG4gIC5saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OjEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDpib2xkOyBcbiAgICBmb250LXNpemUgOiBmb250LXNpemUoMTgpO1xuICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOndoaXRlOyBcbiAgICBzdmcge1xuICAgICAgY29sb3I6cmdiYSh3aGl0ZSwgMC44KTsgXG4gICAgICB3aWR0aDowLjdlbTtcbiAgICAgIGhlaWdodDowLjdlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiRnYXA7XG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyKCcuY3VycmVudCcpIHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgfVxuICAgICYuY3VycmVudDo6YWZ0ZXIge1xuICAgICAgY29udGVudDpcIlwiO1xuICAgICAgYm90dG9tOjA7XG4gICAgICBsZWZ0OjA7IFxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6NHB4OyBcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gYSB7XG4gIC8vICAgZ3JpZC1yb3c6MTsgXG4gIC8vICAgZm9udC1zaXplIDogZm9udC1zaXplKDIyKTtcbiAgLy8gICBmb250LXdlaWdodDpib2xkOyBcbiAgLy8gICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvLyAgIGRpc3BsYXk6YmxvY2s7IFxuICAvLyAgIC0tZm9udC1jb2xvdXIgOiB3aGl0ZTsgXG4gIC8vICAgQGluY2x1ZGUgaG92ZXIge1xuICAvLyAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgLy8gICB9XG4gIC8vIH1cblxuXG4gIC8vIEBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykge1xuXHRcdC8vICY6OmJlZm9yZSB7IGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEod2hpdGUsIDAuMik7IH1cblx0Ly8gfVxuXG59XG5cbmJvZHkubW9iaWxlID4gI2JyZWFkY3J1bWJzLWJhciB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gIFxuICAvLy8gSWYgeW91IHdhbnQgdGhpcyBiYWNrIGluLCB5b3UnbGwgaGF2ZSB0byBlZGl0IHRoZSB0b2dnbGUgbG9naWMgaW4gdGhlIGlzTW9iaWxlQnJlYWtQb2ludCBtZXRob2QgaGVyZTogXG4gIC8vLyAgQHNlZSBzcmMvc2NyaXB0cy9jb21wb25lbnRzL3NlY3Rpb25zL25hdmlnYXRpb24tYmFyLmpzXG4gIGRpc3BsYXk6bm9uZTsgXG59XG5cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4jYW5jaG9ycy1iYXIge1xuXG4gIGJhY2tncm91bmQtY29sb3I6JGdyZXkzO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgJHRyYW5zaXRpb24sIHRvcCAkdHJhbnNpdGlvbjtcbiAgZGlzcGxheTpmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuXG4gIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG92ZXJmbG93OmhpZGRlbjsgXG4gICAgaGVpZ2h0OjEwMCU7IFxuICB9XG5cbiAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykgeyBcbiAgICBAaW5jbHVkZSBicmVhay1pbihtYXgpIHtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIG1hcmdpbi1sZWZ0OiRndXR0ZXIyLTtcbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiRndXR0ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6JGd1dHRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicm93c2VyLWZlYXR1cmUoJ3RvdWNoJykgeyBcbiAgICB3aWR0aDogY2FsYygxMDAlICsgI3skZ3V0dGVyMn0gKyAjeyRnYXAwfSk7XG4gICAgbWFyZ2luLWxlZnQ6JGd1dHRlci07XG4gICAgJjo6YmVmb3JlIHsgY29udGVudDppbml0aWFsOyB9XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgcGFkZGluZy1sZWZ0OiRndXR0ZXI7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiRndXR0ZXI7XG4gICAgfVxuICB9XG5cbiAgJjo6YmVmb3JlIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGdyZXk0OyB9XG5cbiAgYSB7XG4gICAgZ3JpZC1yb3c6MTsgXG4gICAgZm9udC1zaXplIDogZm9udC1zaXplKDE0KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7IFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6JGJsdWU7IFxuICAgICsgYSB7IG1hcmdpbi1sZWZ0OiRndXR0ZXI7IH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OlwiXCI7XG4gICAgICBib3R0b206MDtcbiAgICAgIGxlZnQ6MDsgXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDo0cHg7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMCk7XG4gICAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNlIDAuMnM7XG4gICAgfVxuXG4gICAgJi5jdXJyZW50IHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTpzY2FsZVkoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTaWRlYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuc2lkZS1iYXIge1xuICA+IGRpdiB7XG4gICAgPiAqIHtcbiAgICAgICY6bm90KC53aGl0ZSkge1xuICAgICAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgICAgICAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gICAgICB9XG4gICAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRwcmltYXJ5fTtcblxuICAgICAgb3JkZXI6IDM7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIHBhZGRpbmc6ICRndXR0ZXIyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSh3aGl0ZSwgMC4yKSk7XG4gICAgfVxuXG4gICAgc2VydmljZS1jZW50cmUtZmluZGVyIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgICBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgfiAjZ3JhZGVzLXNpZGViYXItbGlzdCB7XG4gICAgICBvcmRlcjogMjtcbiAgICB9XG5cbiAgICAuaGVhZGluZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyMDtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDMoKTtcbiAgICB9XG5cbiAgICA+IGRpdi5zaWRlYmFyLWxvZ29zIHtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMnJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG4gICAgICBzdmcge1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjcG93ZGVyLXR1YnMsXG4gICNncmVlbmVyLWZ1dHVyZSxcbiAgI2xpYmVydHktcG93ZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoMyB7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgIGRpdiB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAuYmFja2dyb3VuZCB7XG4gICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogMTAwJSAwJTtcbiAgICB9XG4gICAgLmltYWdlIHtcbiAgICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2xpYmVydHktcG93ZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgLmltYWdlIHtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAyO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3Bvd2Rlci10dWJzIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleTY7XG4gICAgaDMge1xuICAgICAgcGFkZGluZy1ib3R0b206IDIyNXB4O1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgICAuYmFja2dyb3VuZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMjUwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrLW1lZGl1bSkge1xuICAgICAgaDMge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzAwcHg7XG4gICAgICB9XG4gICAgICAuaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDM1MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNncmVlbmVyLWZ1dHVyZSB7XG4gICAgLS1ncmVlbmVyLWdyZWVuOiAjNGVjYjNkO1xuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAyO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgIGhlaWdodDogOTBweDtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICBsaSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ2FwMjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDdweDtcbiAgICAgICAgICB0b3A6IDZweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRicmVhay1tZWRpdW0pIHtcbiAgICAgIHVsIHtcbiAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NzY3Njc7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTFyZW0gYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjIwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB0ZXh0LXdyYXA6IHByZXR0eTtcbiAgfVxuICBAbWVkaWEgKHdpZHRoID4gMTQwMHB4KSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL3VwbG9hZHMvaW1hZ2VzLzIwbXBoLXNpZ24ucG5nJyk7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDE2MHB4O1xuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6aXNvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc0YmYwMztcbiAgYm9yZGVyOiBpbml0aWFsO1xuICBwYWRkaW5nOiAwO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNvY2lhbCBNZWRpYVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnNvY2lhbC1tZWRpYSB7XG4gIFxuICAtLWljb24tY29sb3VyIDogI3skd2hpdGV9O1xuICAtLWljb24tc2l6ZSAgIDogMjBweDsgXG5cbiAgZGlzcGxheTpmbGV4OyBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBhIHtcblxuICAgIG1hcmdpbi1sZWZ0OiRnYXA7IFxuICAgIGRpc3BsYXk6ZmxleCAhaW1wb3J0YW50OyBcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aCAgOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgaGVpZ2h0IDogdmFyKC0taWNvbi1zaXplKTtcbiAgICAgIGZpbGwgICA6IHZhcigtLWljb24tY29sb3VyKTtcbiAgICAgIHRyYW5zaXRpb24gOiAkdHJhbnNpdGlvbjsgXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvdXIgaW4gJGNvbG91cnMtc29jaWFsLW1lZGlhIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7IC0taWNvbi1jb2xvdXIgOiAjeyRjb2xvdXJ9OyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3BhbiB7IGRpc3BsYXk6bm9uZTsgfVxuXG4gIH1cblxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFRyYW5zaXRpb25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwiaGVscGVycy9lYXNlXCI7XG5cbiRkdXJhdGlvbiA6IDAuMnM7XG4kZWFzZSAgICAgOiBlYXNlLiRpbi1vdXQ7XG4kZGVsYXkgICAgOiBudWxsO1xuXG4kdHJhbnNpdGlvbiA6IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCAkZWFzZSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5KTsiLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcInNhc3M6c3RyaW5nXCI7XG5cbiRwYXJlbnRTZWxlY3RvciA6ICcuYXJ0aWNsZSc7XG5cbi8vIEBpbmNsdWRlIGNvbnRhaW5zKCd0aXRsZScsICdzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7IC4uLiB9XG5cbkBtaXhpbiBjb250YWlucygkbmFtZXMuLi4pIHtcblxuICAkcGFyZW50IDppZihsaXN0Lm50aChsaXN0Lm50aCgmLCAxKSwgMSkgPT0gJzpyb290JywgJycsICYpO1xuXG4gICRzZWxlY3RvciA6ICcnO1xuICBcbiAgQGlmICggdHlwZS1vZigkcGFyZW50KSA9PSAnbGlzdCcpIHtcbiAgICBAZWFjaCAkc2VnbWVudCBpbiBsaXN0Lm50aCgkcGFyZW50LCAxKSB7XG4gICAgICBAaWYgKCAkc2VnbWVudCAhPSAkcGFyZW50U2VsZWN0b3IgKSB7XG4gICAgICAgICRzZWxlY3RvciA6ICRzZWxlY3RvciArICcgJyArICRzZWdtZW50XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJGF0dHJpYnV0ZXMgOiAnJztcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgIEBpZiAoIHN0cmluZy5pbmRleCgkbmFtZSwgJ25vdDonKSApIHtcbiAgICAgICRuYW1lIDogc3RyaW5nLnNsaWNlKCRuYW1lLCA1KTtcbiAgICAgICRhdHRyaWJ1dGVzIDogJGF0dHJpYnV0ZXMgKyAnOm5vdChbZGF0YS1jb250YWlucyo9XCIjeyRuYW1lfVwiXSknO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGF0dHJpYnV0ZXMgOiAkYXR0cmlidXRlcyArICdbZGF0YS1jb250YWlucyo9XCIjeyRuYW1lfVwiXSc7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgI3skcGFyZW50U2VsZWN0b3J9I3skYXR0cmlidXRlc30gI3skc2VsZWN0b3J9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4jeyRwYXJlbnRTZWxlY3Rvcn0ge1xuXG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgLmNvbnRhaW5lciB7XG5cbiAgICAvLyBkaXNwbGF5OmdyaWQ7IFxuICAgIC8vIGdyaWQtYXV0by1jb2x1bW5zOiAxZnI7XG4gICAgLy8gZ3JpZC1nYXA6JGdhcDtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiRndXR0ZXI7IFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXkzO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICB3aWR0aDoxMDAlO1xuXG4gICAgPiAqIHsgXG4gICAgICBvcmRlcjoyOyBcbiAgICAgIG1hcmdpbi1ib3R0b206JGdhcDtcbiAgICB9XG5cbiAgICAuaGVhZGluZyB7XG4gICAgICBAaW5jbHVkZSBoZWFkaW5nLWgzO1xuICAgICAgbGluZS1oZWlnaHQ6MS4yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247IFxuICAgIH1cblxuICAgIC5zdWJoZWFkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG4gICAgICAvLyBjb2xvcjokc2Vjb25kYXJ5O1xuICAgICAgY29sb3I6JGZvbnQtY29sb3VyO1xuICAgICAgbWF4LXdpZHRoOiA3NWNoO1xuXG4gICAgICAvLyBUaGlzIG5lZWRzIHJldmlld2luZy4gSXQgd29uJ3Qgd29yayBvbiBhbGwgdmFyaWF0aW9ucyBvZiB0aGUgYXJ0aWNsZXNcbiAgICAgIG1hcmdpbi1ib3R0b206YXV0bztcbiAgICAgICsgLnRpbWVzdGFtcCB7IG1hcmdpbi10b3A6JGdhcDt9XG4gICAgfVxuXG4gICAgLmludHJvZHVjdGlvbiB7XG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICAgIG1heC13aWR0aDogNzVjaDtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1ib3R0b206MDsgXG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICB9XG5cbiAgICAuYXV0aG9yIHtcbiAgICAgIC0tcGhvdG8tc2l6ZSA6IDQwcHg7IFxuICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgcG9zaXRpb246cmVsYXRpdmU7IFxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLm5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6JGJsdWU7IFxuICAgICAgICBmb250LXNpemU6Zm9udC1zaXplKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6MS40O1xuICAgICAgICBvcmRlcjoxO1xuICAgICAgICBlbSB7IGZvbnQtc2l6ZTpmb250LXNpemUoMTIpOyBtYXJnaW4tcmlnaHQ6NXB4OyAgfVxuICAgICAgICBtaW4taGVpZ2h0OnZhcigtLXBob3RvLXNpemUpO1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAudGltZXN0YW1wIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OjEuNDtcbiAgICAgICAgb3JkZXI6MjtcbiAgICAgICAgJiwgfiAubmFtZSB7IG1pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1waG90by1zaXplKSAvIDIpOyB9XG4gICAgICB9XG4gICAgICAuaW1hZ2Uge1xuICAgICAgICB3aWR0aDp2YXIoLS1waG90by1zaXplKTtcbiAgICAgICAgaGVpZ2h0OnZhcigtLXBob3RvLXNpemUpO1xuICAgICAgICB0b3A6Y2FsYyg1MCUgLSB2YXIoLS1waG90by1zaXplKS8yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBsZWZ0OjA7IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgICAgICB+ICoge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDpjYWxjKHZhcigtLXBob3RvLXNpemUpICsgI3skZ2FwfSk7IFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiAuaW1hZ2UgeyBcbiAgICAgIG9yZGVyOjE7XG4gICAgICBtYXJnaW4tYm90dG9tOiRndXR0ZXI7IFxuICAgICAgaGVpZ2h0OnZhcigtLWltYWdlLWhlaWdodCwgMTgwcHgpOyBcbiAgICAgIHdpZHRoOmNhbGMoMTAwJSArICN7JGd1dHRlcjN9KTtcbiAgICAgIGxlZnQ6JGd1dHRlci07XG4gICAgICBtYXJnaW4tdG9wOiRndXR0ZXItO1xuICAgIH1cblxuICB9XG5cbiAgYSB7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjokcHJpbWFyeTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWlucygndGl0bGUnLCAndGltZXN0YW1wJywgJ2F1dGhvcicsICdidXR0b24nLCAnaW1hZ2UnLCAnbm90OnN1YmhlYWRpbmcnLCAnbm90OmludHJvZHVjdGlvbicpIHsgXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAudGltZXN0YW1wIHsgbWFyZ2luLXRvcDphdXRvOyB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGNvbnRhaW5zKCd0aXRsZScsICdpbWFnZScsICdub3Q6dGltZXN0YW1wJywgJ25vdDphdXRob3InLCAnbm90OmJ1dHRvbicsICdub3Q6c3ViaGVhZGluZycsICdub3Q6aW50cm9kdWN0aW9uJykgeyBcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIC5oZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTphdXRvOyBAaW5jbHVkZSBoZWFkaW5nLWgzOyBsaW5lLWhlaWdodDoxLjI7IH1cbiAgICAgID4gLmltYWdlIHtcbiAgICAgICAgLS1pbWFnZS1oZWlnaHQgOiAxMzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWlucygnc2VydmljZUNlbnRyZXMnKXtcbiAgICAuY29udGFpbmVye1xuICAgICAgZGl2e1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgICAgfVxuICAgICAgaDR7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxudGFnLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBnYXA6ICRnYXA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiA1cHg7XG4gIEBpbmNsdWRlIGhlYWRpbmctaDM7XG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuNWVtO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBncmlkLXJvdzogMTtcbiAgICBsaW5lLWhlaWdodDogMjtcbiAgfVxuICBzdmcge1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oODAwKSB7XG4gICAgZ2FwOiAkZ2FwMDtcbiAgICBtYXJnaW46ICRzcGFjZXIwIDA7XG4gICAgc3BhbiB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIH1cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5zaWRlLWJhciBmb3JtIHtcbiAgLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgcGFkZGluZzogJGdhcDAgJGdhcDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW46IDAgLTE1cHggJGdhcDtcbiAgfVxuICAuc3VibWl0LXJvdyB7XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgfVxufVxuXG5mb3JtIHtcbiAgQGluY2x1ZGUgZm9ybS1zZWxlY3QoKTtcbiAgQGluY2x1ZGUgZm9ybS1pbnB1dCgpO1xuICBAaW5jbHVkZSBmb3JtLXRleHRhcmVhKCk7XG5cbiAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbiAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbiAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbiAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCBpbmhlcml0KTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwcHggMTAwMHB4IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCB3aGl0ZSkgaW5zZXQ7XG4gIH1cblxuICAmW2RhdGEtZnJlZWZvcm1dIHtcbiAgICBsYWJlbCArIGRpdiB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMik7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgICB9XG4gICAgLmZyZWVmb3JtLXJvdyB7XG4gICAgICArIC5mcmVlZm9ybS1yb3cgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgICAgfVxuICAgIH1cbiAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwLW9uZS1saW5lIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tY2hlY2tib3goKTtcbiAgICB9XG4gIH1cbn1cblxuc2lkZS1iYXIgZm9ybSB7XG4gIGxhYmVsIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgfiBkaXYge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG5mb3JtI2xvZ2luIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgPiBsYWJlbCB+IGxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICB9XG4gIGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMik7XG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgfVxufVxuXG5mb3JtI3Jlc2V0LXBhc3N3b3JkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6ICRndXR0ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgfVxufVxuXG5yZXF1aXJlZC1ub3RpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGljZS1jb2xvdXIsICRncmVlbik7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIHNwYW4ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAjeyRnYXAwfSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk0O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiA0cHggJGdhcDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgLTUwJSk7XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gIH1cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIHNwYW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5cbmZvcm1bZGF0YS1oYW5kbGU9J2NvbnRhY3RVcyddLFxuZm9ybVtkYXRhLWhhbmRsZT0ncG93ZGVyQ29udGFjdCddIHtcbiAgLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyxcbiAgLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogJGdhcDAgJGdhcDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyO1xuICB9XG4gIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgfVxuXG4gIC5mb3JtLWZpZWxkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGd1dHRlciAkZ3V0dGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KDYwMCkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuXG4gICAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZpcnN0LW5hbWUsXG4gICAgICAgICYubGFzdC1uYW1lLFxuICAgICAgICAmLmVtYWlsLFxuICAgICAgICAmLmNvbXBhbnktbmFtZSxcbiAgICAgICAgJi5jb250YWN0LW5vLFxuICAgICAgICAmLnktcnFnMTgxay1kIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgfVxuICAgICAgICAmLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiA1O1xuICAgICAgICB9XG4gICAgICAgICYuc3VibWl0LXJvdyB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBzdmcuZW1haWwge1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG5cbiAgICAgICYuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICAgIC5mcmVlZm9ybS1pbnN0cnVjdGlvbnMge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGFiZWw6bm90KC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG4gICAgICAmLmxlYWQtc3RhdHVzLFxuICAgICAgJi5pbnRlcm5hbC1ub3RlcyxcbiAgICAgICYub3JkZXItdmFsdWUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwge1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhLFxuICAgIGlucHV0Om5vdChbdHlwZT0nc3VibWl0J10pIHtcbiAgICAgIC0tYm9yZGVyLWNvbG91cjogbm9uZTtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gIC5mcmVlZm9ybS1lcnJvcnMge1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEwKTtcbiAgICBwYWRkaW5nOiAycHggJGdhcDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgLSA0cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICB9XG5cbiAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICBAaW5jbHVkZSBicmVhay1pbig0MDApIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5mcmVlZm9ybS1pbnB1dFtyZXF1aXJlZF06bm90KDp2YWxpZCkgfiByZXF1aXJlZC1ub3RpY2Uge1xuICAgIC0tbm90aWNlLWNvbG91cjogI3skcmVkfTtcbiAgfVxuXG4gICY6bm90KDp2YWxpZCkge1xuICAgIGJ1dHRvblt0eXBlPSdzdWJtaXQnXSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1vdXRsaW5lLXRoZW1lKCRncmV5KTtcbiAgICB9XG4gIH1cblxuICAuc2VydmljZS1jZW50cmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5mb3JtW2RhdGEtaGFuZGxlPSdjb250YWN0VXMnXSB7XG4gIC5mb3JtLWZpZWxkcyB7XG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KDYwMCkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuXG4gICAgICAuZnJlZWZvcm0tcm93IHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZpcnN0LW5hbWUsXG4gICAgICAgICYubGFzdC1uYW1lLFxuICAgICAgICAmLmVtYWlsLFxuICAgICAgICAmLmNvbXBhbnktbmFtZSxcbiAgICAgICAgJi5jb250YWN0LW5vLFxuICAgICAgICAmLnktcnFnMTgxay1kLFxuICAgICAgICAmLnByb2R1Y3Qge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gMjtcbiAgICAgICAgfVxuICAgICAgICAmLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgICAgICAgZ3JpZC1yb3c6IDIgLyBzcGFuIDY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYm9keSNlZGl0IHtcbiAgZm9ybSB7XG4gICAgdGV4dGFyZWEsXG4gICAgc2VsZWN0LFxuICAgIGlucHV0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cbiAgICAuc3VibWl0LXJvdyB7XG4gICAgICBvcmRlcjogMjA7XG4gICAgfVxuXG4gICAgLmZyZWVmb3JtLXJvdyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuZmlyc3QtbmFtZSxcbiAgICAubGFzdC1uYW1lLFxuICAgIC5lbWFpbCxcbiAgICAucHJvZHVjdCxcbiAgICAuZGV0YWlsc29mZW5xdWlyeSxcbiAgICAuc2VydmljZS1jZW50cmUtY29udGFjdCxcbiAgICAubGVhZC1zdGF0dXMsXG4gICAgLmludGVybmFsLW5vdGVzLFxuICAgIC5vcmRlci12YWx1ZSxcbiAgICAuc3VibWl0LXJvdyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICBzZWxlY3QsXG4gICAgICAgIHRleHRhcmVhLFxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICBncmlkLXJvdzogMSAvIHNwYW4gNjtcbiAgICB9XG5cbiAgICAuZmlyc3QtbmFtZSxcbiAgICAubGFzdC1uYW1lLFxuICAgIC5lbWFpbCxcbiAgICAucHJvZHVjdCxcbiAgICAuc2VydmljZS1jZW50cmUtY29udGFjdCB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHNlbGVjdCxcbiAgICAgIHRleHRhcmVhLFxuICAgICAgaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG4gICAgLmxlYWQtc3RhdHVzLFxuICAgIC5pbnRlcm5hbC1ub3RlcyxcbiAgICAub3JkZXItdmFsdWUge1xuICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuQHVzZSBcImZvbnRcIjtcblxuQG1peGluIF9iYXNlLXN0eWxpbmcge1xuICBcbiAgLS1mb250LWNvbG91ciA6ICN7JGZvbnQtY29sb3VyfTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHdoaXRlfTtcbiAgLS1ib3JkZXItcmFkaXVzIDogI3skYm9yZGVyLXJhZGl1c307XG4gIC0tYm9yZGVyLWNvbG91ciA6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXIgOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZyA6ICN7JGdhcH0gI3skZ2FwfTtcblxuICBib3JkZXItcmFkaXVzOiRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOnZhcigtLWJvcmRlcik7IFxuICBwYWRkaW5nOnZhcigtLXBhZGRpbmcpOyBcbiAgZm9udC1zaXplOmZvbnQuc2l6ZSgxNCk7IFxuICBjb2xvcjp2YXIoIC0tZm9udC1jb2xvdXIpO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgfVxuICAmOmZvY3VzIHtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjp0cmFuc3BhcmVudDtcbiAgICB9XG4gICAgb3V0bGluZS1jb2xvciA6ICRibHVlOyBcbiAgfVxuICAmLmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxufVxuXG5AbWl4aW4gYWxsLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGlucHV0KCR0eXBlOm51bGwpIHtcblxuICAkc2VsZWN0b3IgOiAnaW5wdXQ6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pOm5vdChbdHlwZT1cInJhZGlvXCJdKSc7XG5cbiAgQGlmIHR5cGUtb2YoJHR5cGUpICE9ICdudWxsJyB7XG4gICAgJHNlbGVjdG9yIDogJ2lucHV0W3R5cGU9XCIjeyR0eXBlfVwiXSc7XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlICBfYmFzZS1zdHlsaW5nOyBcbiAgICBAY29udGVudDtcbiAgfVxuXG59XG5cbkBtaXhpbiBzZWxlY3QoJHN0cm9rZSA6ICRibGFjaykge1xuXG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2FsYygxMDAlIC0gI3skZ2FwfSkgY2VudGVyOyBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3LjQnIGhlaWdodD0nMTAuMSclM0UlM0NwYXRoIGQ9J00xNi43LjdsLTggOC04LTgnIGZpbGw9J25vbmUnIHN0cm9rZT0nXCIrY29sb3VyLmVuY29kZSgkc3Ryb2tlKStcIicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnLyUzRSUzQy9zdmclM0VcIik7ICAgIFxuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuQG1peGluIGNoZWNrYm94KCkge1xuXG59XG5cbkBtaXhpbiB0ZXh0YXJlYSgpIHtcblxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgIF9iYXNlLXN0eWxpbmc7IFxuICAgIEBjb250ZW50O1xuICB9XG5cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxubW9kYWwtd3JhcHBlciB7XG5cbiAgLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyIDogI3tyZ2JhKCR3aGl0ZSwgMC45NSl9O1xuICAtLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG91ciA6IHdoaXRlO1xuXG4gIC0tbWluLXdpZHRoOjMwMHB4O1xuICAtLW1heC13aWR0aDojeyRicmVhay1tZWRpdW19O1xuICAtLXdpZHRoOmNsYW1wKHZhcigtLW1pbi13aWR0aCksIDkwdncsIGZpdC1jb250ZW50KTtcblxuICAtLW1pbi1oZWlnaHQ6NjAwcHg7XG4gIC0tbWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gI3skZ3V0dGVyMn0pO1xuICBcbiAgLS1oZWlnaHQ6Y2xhbXAodmFyKC0tbWluLWhlaWdodCksIDkwdncsIGZpdC1jb250ZW50KTtcblxuICBAc3VwcG9ydHMgKCAtLXY6LXdlYmtpdC1maWxsLWF2YWlsYWJsZSApIHtcbiAgICAtLW1heC1oZWlnaHQ6LXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbiAgfVxuXG4gIC0tY2xvc2UtYnV0dG9uLXNpemUgOiAzMHB4OyBcbiAgLS1uYXYtYnV0dG9uLXNpemUgOiA0MHB4OyBcblxuICBwb3NpdGlvbjpmaXhlZDtcbiAgaW5zZXQ6MDtcbiAgaGVpZ2h0OjEwMCU7IFxuICB3aWR0aDoxMDAlOyBcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgei1pbmRleDoxMDtcbiAgZGlzcGxheTpmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAkZWFzZS1pbi1vdXQ7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cbiAgJi5sb2FkaW5nIHsgXG4gICAgb3BhY2l0eTowOyBcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0IDAuM3M7XG4gICAgbW9kYWwtY29udGFpbmVyIHtcbiAgICAgIG9wYWNpdHk6MDsgXG4gICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgydmgpOyBcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLXF1YXJ0O1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5jbG9zZSB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgdG9wOiRndXR0ZXI7IFxuICAgIHJpZ2h0OiRndXR0ZXI7IFxuICAgIHdpZHRoOnZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKTsgXG4gICAgaGVpZ2h0OnZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKTsgXG4gICAgc3ZnIHsgXG4gICAgICBib3JkZXI6MnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBjaXJjbGUsIHBhdGggeyB0cmFuc2l0aW9uOjAuM3MgJGVhc2UtaW4tb3V0OyB9XG4gICAgICAtLWZpbGw6dmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgc3ZnIHsgXG4gICAgICAgIC0tZmlsbDp3aGl0ZTtcbiAgICAgICAgLS1zdHJva2U6dmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgd2lkdGg6dmFyKC0tbmF2LWJ1dHRvbi1zaXplKTsgXG4gICAgaGVpZ2h0OnZhcigtLW5hdi1idXR0b24tc2l6ZSk7IFxuICAgIHRvcDpjYWxjKDUwJSAtICh2YXIoLS1uYXYtYnV0dG9uLXNpemUpIC8gMikpO1xuICAgIGJhY2tncm91bmQtY29sb3I6dmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgIGNvbG9yOndoaXRlOyBcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjpjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtIDAuMnMgJGVhc2Utb3V0LWJhY2s7XG4gICAgJi5wcmV2aW91cyB7IGxlZnQgOiAkZ3V0dGVyOyB9XG4gICAgJi5uZXh0IHsgcmlnaHQgOiAkZ3V0dGVyOyB9XG4gICAgc3ZnIHsgXG4gICAgICB3aWR0aDo1MCU7XG4gICAgICBoZWlnaHQ6NTAlOyBcbiAgICB9XG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgY29sb3I6dmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG5tb2RhbC1jb250YWluZXIge1xuXG4gIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgJGVhc2UtaW4tb3V0IDAuM3MsIHRyYW5zZm9ybSAwLjVzICRlYXNlLW91dC1xdWFydCAwLjNzO1xuICB3aWR0aDp2YXIoLS13aWR0aCk7XG4gIGhlaWdodDp2YXIoLS1oZWlnaHQpO1xuICBtYXgtaGVpZ2h0OnZhcigtLW1heC1oZWlnaHQpO1xuICBtYXgtd2lkdGg6dmFyKC0tbWF4LXdpZHRoKTtcbiAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7IFxuICBib3JkZXItcmFkaXVzOiRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiRndXR0ZXI7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuXG4gICAgLS13aWR0aCA6IDYwdnc7XG4gICAgbWF4LXdpZHRoOnZhcigtLW1heC13aWR0aCk7XG4gICAgbWluLXdpZHRoOnZhcigtLW1pbi13aWR0aCk7XG5cbiAgICAtLWhlaWdodCA6IDgwdnc7XG4gICAgbWF4LWhlaWdodDp2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgICBtaW4taGVpZ2h0OnZhcigtLW1pbi1oZWlnaHQpO1xuICB9XG5cbiAgJjplbXB0eSB7XG4gICAgd2lkdGg6Y2FsYyh2YXIoLS1tYXgtd2lkdGgpIC8gMik7XG4gICAgaGVpZ2h0OmNhbGModmFyKC0tbWF4LWhlaWdodCkgLyAyKTtcbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvYWRlcigyMHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvYWRlci1hbmltYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICA+IGJ1dHRvbi5jbG9zZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9yZGVyOi0xO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRvcDppbml0aWFsO1xuICAgIHJpZ2h0OmluaXRpYWw7XG4gICAgbWFyZ2luLXRvcDpjYWxjKCgtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSkgLyAyKTtcbiAgICBtYXJnaW4tYm90dG9tOmNhbGMoKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpKSAvIDIpO1xuICAgIG1hcmdpbi1yaWdodDpjYWxjKCgtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSkgLyAyKTtcbiAgfVxuXG59XG5cbm1vZGFsLWNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgd2lkdGg6aW5oZXJpdDtcbiAgaGVpZ2h0OmluaGVyaXQ7XG4gIG1heC1oZWlnaHQ6aW5oZXJpdDtcbiAgbWF4LXdpZHRoOmluaGVyaXQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzokZ3V0dGVyO1xuICA+ICogeyBtYXgtd2lkdGg6MTAwJTsgfVxufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1cImltYWdlXCJdIC5pbWFnZSB7IFxuICBtYXgtaGVpZ2h0OmNhbGModmFyKC0tbWF4LWhlaWdodCkgLSAjeyRndXR0ZXI2fSk7XG4gIGJvcmRlcjpub25lO1xuICBpbWcge1xuICAgIG1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtICN7JGd1dHRlcjN9IC0gI3skZ3V0dGVyNH0pO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46YXV0bztcbiAgfVxufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1cImRlZmF1bHRcIl0ge1xuICBtb2RhbC1jb250ZW50ID4gaW1nIHtcbiAgICAmW3NyYyo9XCIuc3ZnXCJdIHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH1cbiAgfVxufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1cInZpZGVvXCJdIHtcbiAgLS13cmFwcGVyLWJhY2tncm91bmQtY29sb3VyIDogI3tyZ2JhKGJsYWNrLCAwLjk1KX07XG4gIG1vZGFsLWNvbnRhaW5lciB7IFxuICAgIEBpbmNsdWRlIHZpZGVvLWNvbnRhaW5lcigpO1xuICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG4gICAgcGFkZGluZzokZ2FwOyBcbiAgICBtb2RhbC1jb250ZW50IHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuXG4ub3Blbi1pbi1tb2RhbCB7XG4gIGN1cnNvcjpwb2ludGVyO1xuICB0cmFuc2l0aW9uOm9wYWNpdHkgJHRyYW5zaXRpb247XG4gICY6YWZ0ZXIgeyBAaW5jbHVkZSBsb2FkZXIoMjBweCwgd2hpdGUpOyB9XG4gICYubG9hZGluZyB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgJjphZnRlciB7IEBpbmNsdWRlIGxvYWRlci1hbmltYXRpb24oKTsgfVxuICB9XG59XG5cbmltZy5vcGVuLWluLW1vZGFsLCAub3Blbi1pbi1tb2RhbCBpbWcgeyBcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XG4gIC1raHRtbC11c2VyLWRyYWc6IG5vbmU7XG4gIC1tb3otdXNlci1kcmFnOiBub25lO1xuICAtby11c2VyLWRyYWc6IG5vbmU7XG4gIHVzZXItZHJhZzogbm9uZTtcbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG46cm9vdCB7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQ6IDFyZW07XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcjogMCB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCk7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1sZWF2ZTogMCBjYWxjKC0xICogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQpKTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uOiAwLjRzO1xuICAtLWRpYWxvZy1nYXA6ICN7JGd1dHRlcjJ9O1xuICAtLWRpYWxvZy1jb250ZW50LW1heC13aWR0aDogMTA4MHB4O1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1kaWFsb2ctYmFja2Ryb3AtY29sb3VyOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbmRpYWxvZy5tb2RhbCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGluaXRpYWw7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zbGF0ZTogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1lbnRlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCB0cmFuc2xhdGUsIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDk5OTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyLFxuICAmIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJjo6YmFja2Ryb3Age1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG92ZXJsYXksIGRpc3BsYXksIG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cik7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5kaWFsb2dcXDpjb250ZW50cyB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgYm9yZGVyLXJhZGl1czogMC42ZW07XG4gICAgbWF4LWhlaWdodDogMTAwZHZoO1xuICAgIHBhZGRpbmc6IHZhcigtLWRpYWxvZy1nYXApO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyKTtcbiAgICB3aWR0aDogbWluKDEwMCUsIHZhcigtLWRpYWxvZy1jb250ZW50LW1heC13aWR0aCkpO1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIH1cblxuICAmW29wZW5dIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBAc3RhcnRpbmctc3R5bGUge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zbGF0ZTogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1sZWF2ZSk7XG4gICAgfVxuXG4gICAgJjo6YmFja2Ryb3Age1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBidXR0b24uZGlhbG9nXFw6Y2xvc2Uge1xuICAgIGFsbDogdW5zZXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYygwLjUgKiB2YXIoLS1kaWFsb2ctZ2FwKSk7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgc3BhbiB7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6aG92ZXI6OmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuICAgIHNwYW46aG92ZXIge1xuICAgICAgY29sb3I6ICM3ZmNmZjM7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMGR2aCArIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KSk7XG4gICAgICB3aWR0aDogY2FsYygxMDBkdncgKyB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCkpO1xuICAgICAgdHJhbnNsYXRlOiAtNTAlIC01MCU7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pIGVhc2UtaW4tb3V0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cik7XG4gICAgfVxuICB9XG5cbiAgOnJvb3Q6aGFzKCZbb3Blbl0pIFtkYXRhLW1vZGFsXSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cbiIsIlxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbi5jb250ZW50LWJsb2NrIHtcblxuICBkaXNwbGF5OmdyaWQ7IFxuICBncmlkLWdhcDokZ3V0dGVyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb2x1bW4tY291bnQpLCAxZnIpO1xuXG4gICY6ZW1wdHkgeyBkaXNwbGF5Om5vbmU7IH1cblxuICAmLmJsb3dvdXQudGhlbWVkIH4gJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7IG1hcmdpbi10b3A6JHNwYWNlcjA7IH1cbiAgJjpub3QoLmJsb3dvdXQpLnRoZW1lZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tYm90dG9tOiRzcGFjZXIwOyB9XG4gIH1cblxuICArIC5jb250ZW50LWJsb2NrIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI3skZ3JleTR9KVxuICB9XG5cbiAgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXA7IFxuICB9XG5cbiAgJi5ncmV5IHsgYmFja2dyb3VuZDokZ3JleTM7IH1cbiAgJi5yZWQgIHsgYmFja2dyb3VuZDokcmVkOyB9XG4gICYuYmx1ZSB7IGJhY2tncm91bmQ6JGJsdWU7IH1cblxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4udGV4dCB7XG5cbiAgYSB7XG4gICAgLS1mb250LWNvbG91ciA6ICN7JHByaW1hcnl9OyBcbiAgICBAaW5jbHVkZSBob3ZlciB7IC0tZm9udC1jb2xvdXIgOiAjeyRzZWNvbmRhcnl9OyB9XG4gICAgYS5idXR0b24geyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDt9XG4gIH1cblxuICB1bCB7IEBpbmNsdWRlIGxpc3QtdWwgfVxuICBvbCB7IEBpbmNsdWRlIGxpc3Qtb2wgfVxuXG4gIHA6ZW1wdHksIHAgPiBiciB7IGRpc3BsYXk6bm9uZTsgfVxuXG4gID4gKiB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgbWFyZ2luLWJvdHRvbTokZ2FwOyB9XG4gICAgLy8gJjpmaXJzdC1jaGlsZCB7XG4gICAgLy8gICB+IGgyLCB+IGgzLCB+IGg0LCB+IGg1LCB+IGg2IHtcbiAgICAvLyAgICAgbWFyZ2luLXRvcDokc3BhY2VyMDsgXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIHVsLCBvbCB7IG1hcmdpbi10b3A6JGdhcDsgfVxuICB9XG5cbiAgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXA7IFxuICB9XG5cbiAgLmhlYWRpbmctaDMgeyBjb2xvcjokc2Vjb25kYXJ5OyB9XG4gIFtzdHlsZSo9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIl0ge1xuICAgIHdpZHRoOjEwMCU7IFxuICAgIG1heC13aWR0aDo4MDBweDsgXG4gICAgbWFyZ2luLWxlZnQ6YXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6YXV0bztcbiAgfVxuXG4gIC5xdW90ZXMge1xuICAgIGJvcmRlci1sZWZ0OjVweCBzb2xpZCAkZ3JleTQ7IFxuICAgIHBhZGRpbmctbGVmdDokZ2FwOyBcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBmaWd1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG4gICAgcGFkZGluZzokZ2FwOyBcbiAgICBpbWcgeyBcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICBociB7IG1hcmdpbi10b3A6JHNwYWNlcjAgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTokc3BhY2VyMCAhaW1wb3J0YW50OyB9XG5cbiAgLm5vdGUge1xuICAgIG1hcmdpbjokZ2FwMiAwOyBcbiAgfVxuXG59XG5cbi8vIERhcmsgVGhlbWUgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5kYXJrIHtcblxuICAudGV4dCB7XG5cbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgLS1oZWFkaW5nLWNvbG91cjp3aGl0ZTsgXG5cbiAgICBhIHsgXG4gICAgICAmLmJ1dHRvbiB7IC0tZm9udC1jb2xvdXIgOiB3aGl0ZTsgfVxuICAgICAgJjpub3QoLmJ1dHRvbikgeyBcbiAgICAgICAgLS1mb250LWNvbG91ciA6ICN7cmdiYSh3aGl0ZSwgMC43KX07IFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OjJweDsgXG4gICAgICAgIEBpbmNsdWRlIGhvdmVyIHsgLS1mb250LWNvbG91ciA6IHdoaXRlOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLS1oci1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMyl9OyBcbiAgLS1saXN0LXN0eWxlLWNvbG91ciA6IHdoaXRlOyBcblxuICAmLnJlZCB7XG4gICAgLnRleHQgdWwgeyBAaW5jbHVkZSBsaXN0LXN0eWxlKCR3aGl0ZSwgJHJlZCkgfVxuICB9XG5cbiAgJi5ibHVlIHtcbiAgICAudGV4dCB1bCB7IEBpbmNsdWRlIGxpc3Qtc3R5bGUoJHdoaXRlLCAkYmx1ZSkgfVxuICB9XG5cbn1cblxuLmNvbnRhaW5zLXN2Z3N7XG5cbiAgLnRleHR7XG4gICAgZmlndXJle1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbiAgICAgIGltZ3tcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnY29sbGVjdGlvbnMvZm9udC9jcm9wJyBhcyBmb250O1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cbkBtaXhpbiBzdHlsZSgkZmlsbCwgJHN0cm9rZSA6IHdoaXRlKSB7XG4gID4gbGk6OmJlZm9yZSB7IFxuICAgIGNvbnRlbnQ6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nXCIrY29sb3VyLmVuY29kZSgkZmlsbCkrXCInIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J1wiK2NvbG91ci5lbmNvZGUoJHN0cm9rZSkrXCInIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICB9XG59XG5cbi8vIFVub3JkZXJkIExpc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiB1bCgkbGlzdC1zdHlsZS1jb2xvdXIgOiAkcmVkLCAkbGlzdC1zdHlsZS1hY2NlbnQtY29sb3VyIDogd2hpdGUpIHtcblxuICBAaW5jbHVkZSBzdHlsZSgkbGlzdC1zdHlsZS1jb2xvdXIsICRsaXN0LXN0eWxlLWFjY2VudC1jb2xvdXIpO1xuXG4gID4gbGkgeyBcblxuICAgIHBvc2l0aW9uICAgICA6IHJlbGF0aXZlOyBcbiAgICBwYWRkaW5nLWxlZnQgIDogY2FsYyh2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSkgKiAxLjgpO1xuXG4gICAgJiArIGxpIHsgbWFyZ2luLXRvcCA6IHZhcigtLWxpbmUtc3R5bGUtc3BhY2luZywgI3skZ2FwfSk7IH1cbiAgICBcbiAgICAmOjpiZWZvcmUgeyBcbiAgICAgIGRpc3BsYXkgIDogaW5saW5lLWJsb2NrOyBcbiAgICAgIHRvcCAgICAgIDogMC4xZW07IFxuICAgICAgbGVmdCAgICAgOiAwOyBcbiAgICAgIHBvc2l0aW9uIDogYWJzb2x1dGU7XG4gICAgICB3aWR0aCAgICA6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTsgXG4gICAgICBoZWlnaHQgICA6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTsgXG4gICAgfVxuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbn1cblxuLy8gT3JkZXJlZCBMaXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIG9sKCkge1xuXG4gIGNvdW50ZXItcmVzZXQgOiBjb3VudGVyO1xuXG4gID4gbGkgeyBcbiAgICBwb3NpdGlvbiAgICAgOiByZWxhdGl2ZTsgXG4gICAgZGlzcGxheSAgICAgIDogYmxvY2s7IFxuICAgIHBhZGRpbmctbGVmdCA6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQgIDogdmFyKC0tbGlzdC1zdHlsZS1vZmZzZXQsIDApO1xuXG4gICAgJiArIGxpIHsgbWFyZ2luLXRvcDokZ2FwMDsgfVxuXG4gICAgJjo6YmVmb3JlIHsgXG4gICAgICBjb250ZW50ICAgICAgICAgICA6IGNvdW50ZXIoY291bnRlciknLic7XG4gICAgICBjb3VudGVyLWluY3JlbWVudCA6IGNvdW50ZXI7XG4gICAgICBjb2xvciAgICAgICAgICAgICA6IHZhcigtLWxpc3Qtc3R5bGUtY29sb3VyLCB2YXIoLS1wcmltYXJ5KSk7IFxuICAgICAgcG9zaXRpb24gICAgICAgICAgOiByZWxhdGl2ZTsgXG4gICAgICBtYXJnaW4tcmlnaHQ6MC41ZW07XG4gICAgfVxuICB9XG5cbiAgQGNvbnRlbnQ7XG4gIFxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnRhYmxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiRnYXA7IFxuICAvLyB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgPiBkaXYge1xuICAgIC8vIEBhdC1yb290IHRhYmJlZC1jb250ZW50ICYgeyBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tbmF2aWdhdGlvbi1oZWlnaHQsIDIwMHB4KSk7IH1cbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBkaXNwbGF5OmdyaWQ7ICAgICBcbiAgICAmOm5vdCg6aG92ZXIpIHtzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfVxuXG4gICAgQGluY2x1ZGUgc2Nyb2xsLXN0eWxpbmdcbiAgfVxuICBoMyB7IG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyB9XG5cbiAgdGFibGUudGFibGUge1xuICAgIHdpZHRoOmF1dG87IFxuICAgIGdyaWQtcm93OiAxO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuXG4gICAgJi5mYWtlIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgXG4gICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS14KSk7XG4gICAgICB3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS14KSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgIHRib2R5IHRyIHsgXG4gICAgICAgIFxuICAgICAgICB0ZCB7IGJhY2tncm91bmQ6d2hpdGU7IGJvcmRlci1yaWdodDoxcHggJGdyZXk0IGRhc2hlZDsgfVxuICAgICAgICAmOm50aC1vZi10eXBlKG9kZCkgdGQgeyBiYWNrZ3JvdW5kIDogJGdyZXkzOyB9XG4gICAgICB9XG4gICAgICB0aGVhZCB0ciB0aDpmaXJzdC1vZi10eXBlIHsgYm9yZGVyLXJpZ2h0OjFweCByZ2JhKHdoaXRlLCAwLjEpIGRhc2hlZDsgfVxuICAgICAgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSwgdGJvZHkgdHIgdGQ6bm90KDpmaXJzdC1vZi10eXBlKSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIH1cbiAgfVxuICBAc3VwcG9ydHMgKHdyaXRpbmctbW9kZTogdmVydGljYWwtbHIpIHtcbiAgICAmLmVuYWJsZS12ZXJ0aWNhbC1oZWFkaW5ncyB0YWJsZS50YWJsZSB0aGVhZCB0ciB0aDpub3QoOmZpcnN0LW9mLXR5cGUpIHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICAgIG1heC13aWR0aDo1MHB4OyBcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cblxuICAkYnV0dG9uLXNpemUgOiA0MHB4OyBcblxuICBuYXYge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdyaWQtcm93OjE7IFxuICAgIGdyaWQtY29sdW1uOjI7IFxuICAgIGRpc3BsYXk6bm9uZTtcbiAgICBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICsgYnV0dG9uIHsgbWFyZ2luLWxlZnQ6JGdhcDA7IH1cbiAgICB9XG4gICAgKyBkaXYge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgfVxuICB9XG5cbiAgJi5zY3JvbGxlZC1yaWdodCBidXR0b24ubmV4dCwgJi5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7IFxuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIH1cblxuICAmLmVuYWJsZS1zY3JvbGwtYnV0dG9ucyBuYXYgeyBcbiAgICBkaXNwbGF5OmZsZXg7XG4gIH1cblxuICBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgLS1idXR0b24tc2l6ZSA6ICN7JGJ1dHRvbi1zaXplfTsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHotaW5kZXg6MTtcbiAgICB3aWR0aDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7IFxuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBjb2xvcjokZ3JleTI7XG4gICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBjb2xvciAkdHJhbnNpdGlvbiwgb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtIDAuM3MgJGVhc2Utb3V0LWJhY2s7XG4gICAgJi5wcmV2aW91cyBzdmcgeyBtYXJnaW4tbGVmdDotMnB4OyB9XG4gICAgJi5uZXh0IHN2ZyB7IG1hcmdpbi1sZWZ0OjJweDsgfVxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDpjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gICAgICBoZWlnaHQ6Y2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRibHVlO1xuICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgb3BhY2l0eToxICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbn1cblxudGFibGUudGFibGUge1xuXG4gIHdpZHRoOjEwMCU7IFxuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBcbiAgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB0aGVhZCB7XG4gICAgdHIge1xuICAgICAgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRwcmltYXJ5O1xuICAgICAgICBwYWRkaW5nOiRnYXA7XG4gICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgdGJvZHkge1xuICAgIHRyIHsgICAgIFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiRnYXAwICRnYXA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHsgbWluLXdpZHRoOjIwMHB4O31cbiAgICAgICAgc3Ryb25nIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6JGdyZXkyOyB9XG4gICAgICAgIGEgeyBcbiAgICAgICAgICBjb2xvcjokYmx1ZTsgXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IFxuICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiRyZWQ7IFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdmcgeyBcbiAgICAgICAgICAtLWZpbGwgOiAjeyRwcmltYXJ5fTtcbiAgICAgICAgICAmLmNyb3NzIHsgLS1maWxsIDogI3skcmVkfTsgfVxuICAgICAgICAgICYudGljayB7IC0tZmlsbCA6ICN7JGdyZWVufTsgfVxuICAgICAgICAgIHdpZHRoOjFlbTsgaGVpZ2h0OjFlbTsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7IFxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgJGdyZXk0OyB9XG4gICAgLy8gJjpudGgtb2YtdHlwZShvZGQpOmJlZm9yZSB7XG4gICAgLy8gICBjb250ZW50OlwiXCI7XG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICBsZWZ0OjA7IHJpZ2h0OjA7IFxuICAgIC8vICAgaGVpZ2h0OjEwMCU7IFxuICAgIC8vICAgd2lkdGg6MTAwJTsgXG4gICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MzsgXG4gICAgLy8gfVxuICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRncmV5MzsgXG4gICAgfVxuICB9XG5cblxuICAmLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYShibGFjaywgMC4xKTsgfVxuICAmLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyIHRkOmxhc3Qtb2YtdHlwZSB7IFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlOyBcbiAgICBjb2xvcjp3aGl0ZTsgXG4gIH1cbiAgLy8gJi5sYXN0LWNvbHVtbi1pcy1ncmVlbiB0aGVhZCB0ciB0aDpsYXN0LW9mLXR5cGUgeyBcbiAgLy8gfVxuICAvLyAmLmFsdGVybmF0aW5nLXJvdy1jb2xvdXJzLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHRkOmxhc3Qtb2YtdHlwZSB7IGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ3JlZW4zLCAzKTsgfVxuXG59XG5cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQge1xuICA+IGgzIHsgY29sb3I6d2hpdGU7IH1cbiAgPiBkaXYgeyBib3JkZXItcmFkaXVzOiBpbml0aWFsOyB9XG4gIHRhYmxlLnRhYmxlIHtcbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjppbml0aWFsO1xuICAgIHRyIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSh3aGl0ZSwgMC4xNSk7XG4gICAgfVxuICAgIHRyIHtcbiAgICAgIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEod2hpdGUsIDAuMTUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmZpZ3VyZS5pbWFnZS5zdGF0aWMge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgIFxuICBib3JkZXI6MXB4IHNvbGlkICRncmV5MztcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgaW1nIHsgXG4gICAgLS1pbWFnZS1oZWlnaHQtc2l6ZSA6IGF1dG87IFxuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBcbiAgfVxuICBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzokZ2FwMCAkZ2FwO1xuICB9XG4gICYubm8tY2FwdGlvbiB7XG4gICAgYm9yZGVyOm5vbmU7IFxuICB9XG4gICYuY3JvcC1pbWFnZSB7XG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBib3R0b206MDsgXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OjA7IFxuICAgICAgd2lkdGg6MTAwJTsgXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvO1xuICAgIC0tYXNwZWN0LXJhdGlvIDogaW5oZXJpdDsgXG4gICAgaW1nIHsgLS1pbWFnZS1oZWlnaHQtc2l6ZSA6IDEwMCU7IH1cbiAgfVxufVxuXG4uaW1hZ2UubG9hZC1pbi12aWV3IGltZyB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyAkZWFzZS1pbi1vdXQ7XG4gICY6bm90KFtzcmNdKSB7IG9wYWNpdHk6MDsgfVxufVxuXG5pbWFnZXMtY29udGFpbmVyIHtcbiAgd2lkdGg6MTAwJTsgXG4gIGRpc3BsYXk6Z3JpZDsgXG4gIGdyaWQtZ2FwOiRndXR0ZXIwOyBcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoY2FsYyh2YXIoLS1tYWluLW1heC13aWR0aCkgLyAodmFyKC0taW1hZ2VzLXBlci1yb3cpICsgMSkpLCAxZnIpKTtcbiAgJi5jcm9wLWltYWdlcyB7XG4gICAgLmltYWdlIHsgXG4gICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJzQvMycpO1xuICAgICAgLS1hc3BlY3QtcmF0aW8gOiBpbmhlcml0OyBcbiAgICAgIGltZyB7XG4gICAgICAgIC0taW1hZ2UtaGVpZ2h0LXNpemUgOiAxMDAlO1xuICAgICAgICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEvMSkgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfVxuICAgICAgfVxuICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIGJvdHRvbTowOyBcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OjA7IFxuICAgICAgICB3aWR0aDoxMDAlOyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbkBtaXhpbiBhY2NvcmRpb24oKSB7XG5cbiAgJi5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG5cbiAgICBncmlkLWdhcDokZ2FwICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTpncmlkO1xuXG4gICAgPiBuYXYgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICBkZXRhaWxzIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OmJsb2NrOyB9XG4gICAgICBzdW1tYXJ5IHtcbiAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgfVxuICAgICAgLnRhYi1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzokc3BhY2VyMCAkZ3V0dGVyICFpbXBvcnRhbnQ7IFxuICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1yaWdodDoxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBvdmVyZmxvdzpoaWRkZW47IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgb3BhY2l0eTowOyBcbiAgICAgICAgfVxuICAgICAgICBmaWd1cmUuaW1hZ2Uge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZbb3Blbl0ge1xuICAgICAgICBzdW1tYXJ5IHtcbiAgICAgICAgICAtLWJhY2tncm91bmQtY29sb3VyOiN7JGJsdWUtZGFya307XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICAgICAgICAvLyAtLXRyYW5zaXRpb24tZGVsYXkgOiAxczsgXG4gICAgICAgICAgb3BhY2l0eToxOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG50YWJiZWQtY29udGVudCB7XG5cbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTsgLy8gVEhJUyBNSUdIVCBCUkVBSyBUSElOR1MuIE5FRURTIENIRUNLSU5HIVxuXG4gID4gbmF2IHtcbiAgICBidXR0b24ge1xuICAgICAgdHJhbnNpdGlvbjokdHJhbnNpdGlvbjtcbiAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0geyBwb2ludGVyLWV2ZW50czogbm9uZTt9XG4gICAgICBzdmcgeyB3aWR0aDoxMHB4OyBoZWlnaHQ6MTBweDsgfVxuXG4gICAgfVxuICB9XG4gIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6bm9uZTsgXG5cbiAgICAmOjptYXJrZXIgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAtLWZvbnQtY29sb3VyIDogI3t3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHByaW1hcnl9O1xuXG4gICAgJiwgLmhlYWRpbmcge1xuICAgICAgY29sb3I6dmFyKC0tZm9udC1jb2xvdXIpO1xuICAgICAgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpO1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oNCgpO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTowOyB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcblxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nLXRvcDokZ2FwOyBcbiAgICBwYWRkaW5nLWJvdHRvbTokZ2FwOyAgIFxuICAgIHBhZGRpbmctbGVmdDokZ3V0dGVyOyBcbiAgICBwYWRkaW5nLXJpZ2h0OiRndXR0ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICBcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3JkZXItcmFkaXVzICR0cmFuc2l0aW9uO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgc3ZnIHtcbiAgICAgIGhlaWdodDo4cHg7IFxuICAgICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDokZ3V0dGVyO1xuICAgICAgdG9wOmNhbGMoNTAlIC0gNHB4KTtcbiAgICB9XG5cbiAgfVxuXG4gIHN1bW1hcnk6aG92ZXIsIGRldGFpbHNbb3Blbl0gc3VtbWFyeTpob3ZlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojeyRibHVlLWxpZ2h0fTtcbiAgfVxuXG4gIC50YWItY29udGVudCB7XG4gICAgLy8gZGlzcGxheTpub25lOyBcbiAgICBncmlkLWdhcDokc3BhY2VyMCAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7IFxuICAgIGdyaWQtYXV0by1yb3dzOiBtaW4tY29udGVudDtcbiAgICAmOm5vdChbaGlkZGVuXSkge1xuICAgICAgZGlzcGxheTpncmlkO1xuICAgIH1cbiAgICAuaGVhZGluZy1oNCB7IEBpbmNsdWRlIGhlYWRpbmctaDMoKTsgY29sb3I6JHJlZDsgfVxuICAgIC5oZWFkaW5nLWg1IHsgQGluY2x1ZGUgaGVhZGluZy1oNCgpOyB9XG4gICAgLnRhYmxlLWNvbnRhaW5lcntcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICYuaGFsdmVze1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICAgICAgbWFyZ2luOiAwIDUlIDAgMDtcbiAgICAgICAgJjpudGgtb2YtdHlwZSgybil7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMCA1JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi50aGlyZHN7XG4gICAgICAgIG1heC13aWR0aDogMzAlO1xuICAgICAgICAmOm50aC1vZi10eXBlKDNuIC0gMSl7XG4gICAgICAgICAgbWFyZ2luOiAwIDUlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGFibGUtY29udGFpbmVyIHtcbiAgICB3aWR0aDoxMDAlO1xuICB9XG5cbiAgJjpub3QoW2RhdGEtc3R5bGU9XCIzXCJdKS5pbi12aWV3ID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6JHNlY29uZGFyeTtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEzMDBweCksIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICAgJjpub3QoLm1hcmtldHMpIHtcbiAgICAgIEBpbmNsdWRlIGFjY29yZGlvbigpXG4gICAgfVxuICB9XG4gICZbZGF0YS1zdHlsZT1cIjRcIl0ge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbigpXG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oMTAwMHB4KSB7XG4gICAgJi5tYXJrZXRzIHsgQGluY2x1ZGUgYWNjb3JkaW9uKCkgfVxuICB9XG5cbn1cblxuLy8gVGFiIFN0eWxlIE9uZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExlZnQgaGFuZCBzaWRlYmFyIHdpdGggdmVydGljYWxseSBhbGlnbmVkIGJ1dHRvbnMgYW5kIHRoZSBjb250ZW50IG9uIHRoZSByaWdodFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0ge1xuICAtLXNpZGUtbmF2LXdpZHRoIDogMjAwcHg7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zaWRlLW5hdi13aWR0aCkgMWZyO1xuICBncmlkLWdhcDokZ3V0dGVyO1xuICA+IG5hdiB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHRvcDpjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSAtICN7JGd1dHRlcn0pO1xuXG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6JGdhcCAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgc3ZnIHsgbWFyZ2luLWxlZnQ6JGdhcDsgfVxuICAgICAgKyBidXR0b24geyBcbiAgICAgICAgYm9yZGVyLXRvcDoxcHggc29saWQgJGdyZXk0OyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4vLyBUYWIgU3R5bGUgVHdvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3R5bGlzZWQgYW5kIGNlbnRyZWQgdGFicyBvbiB0aGUgdG9wIHdpdGggdGhlIGNvbnRlbnQgdW5kZXJuZWF0aFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0ge1xuICA+IG5hdiB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiRnYXAyICRndXR0ZXIyOyBcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgbWFyZ2luLWxlZnQ6JGdhcDA7IFxuICAgICAgbWFyZ2luLXJpZ2h0OiRnYXAwOyBcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBjb2xvcjokcHJpbWFyeTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLCBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzdmcgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICAgIH1cbiAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gICAgICAgIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRhYi1jb250ZW50IHsgXG4gICAgcGFkZGluZzokc3BhY2VyICRndXR0ZXI7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRncmV5Mywgd2hpdGUpO1xuICB9XG4gICYuaW52aWV3IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICB9XG4gICY6bm90KC5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZylbZGF0YS1jb3VudD1cIjJcIl0ge1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKCdzbWFsbCcpIHtcbiAgICAgIFtyb2xlPVwidGFiXCJdIHsgd2lkdGg6NTAlOyBwYWRkaW5nOiRnYXA7IH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGFiIFN0eWxlIFRocmVlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGlsbC1saWtlIGJ1dHRvbnMgYmFyIGF0IHRoZSB0b3Agd2l0aCB0aGUgY29udGVudCB1bmRlcm5lYXRoXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSB7XG4gID4gbmF2IHtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIGJvcmRlcjoxcHggc29saWQgJGdyZXk0O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIHotaW5kZXg6MTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgc3ZnIHsgZGlzcGxheTpub25lOyB9XG4gICAgICBwYWRkaW5nOiRnYXAgJGd1dHRlcjsgXG4gICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgfVxuXG4gICAgICAmOm5vdChbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0pIHtcbiAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJjpub3QoLmhhcy1tYXJrZXIpIGJ1dHRvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRibHVlOyBcbiAgICB9XG4gICAgbWFyayB7XG4gICAgICBAaW5jbHVkZSBtYXJrLXJlc2V0KCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6MDsgbGVmdDowOyBcbiAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAmLmFjdGl2ZSB7IFxuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGFiLWNvbnRlbnQgeyBcbiAgICBwYWRkaW5nOiRndXR0ZXIgMDtcbiAgfSBcbn0iXX0= */