@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;
}

body {
  width: 100vw;
}
@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;
}

*:has(> .container-inline) {
  container-type: inline-size;
}

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;
}

header .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;
}
header .button.brochure svg {
  margin-right: calc(var(--gap) * 0.5);
  margin-left: 0;
  fill: #df3035;
}

.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;
  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;
  text-wrap: balance;
}
.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.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;
  gap: calc(var(--gap) * 0.5);
}
button-container .button {
  white-space: nowrap;
}

.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: var(--back-to-top-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: var(--secondary-light, #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(--scrollbar-width, 0px));
  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: calc(100vw - var(--scrollbar-width, 0px));
  }
}
@media (max-width: 980px) {
  .blowout:before {
    transform: initial;
    left: 0;
    margin-left: var(--gutter1-);
    width: calc(100vw - var(--srollbar-width, 0px));
  }
}
@media (min-width: 981px) {
  body:not(mobile) main .blowout:before {
    --translateX: 0;
    width: calc(100vw + var(--scrollbar-width, 0px));
    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(--scrollbar-width, 0px));
  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;
}

.center-all {
  justify-content: center;
  justify-items: center;
  padding-block: var(--spacer2);
  gap: var(--spacer1) !important;
}
.center-all > .text :is(h1, h2, h3, h4, h5, h6) {
  margin-bottom: 0;
  text-align: center;
}
.center-all > .text :is(h1, h2, h3, h4, h5, h6) span {
  color: var(--secondary);
}
.center-all article-list {
  max-width: 1100px;
  width: 100%;
  justify-items: center;
  justify-content: center;
  --article-min-width: 420px !important;
}

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;
  aspect-ratio: 371/97;
}
navigation-bar a.logo:has(svg.no-taglines) {
  aspect-ratio: initial;
}
:has(header.dark) navigation-bar:not(.invert) a.logo {
  --logo-text-colour: white;
}

navigation-bar:not(.invert) {
  --logo-text-colour: white;
}
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;
  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: var(--secondary-light, #e44f53);
  }
}
footer#footer a.current {
  color: var(--secondary-light, #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: var(--footer-br-colour, #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: #1e1c1c;
  --background-theme-two: #1e1c1c;
}
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);
  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%;
  gap: 1.5rem;
}
.article .container > * {
  order: 2;
}
.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, );
  margin-bottom: 0;
}
.article .container .subheading {
  font-size: 1.0625em;
  line-height: 1.6;
  color: var(--article-subheading-font-colour, #6a6a6a);
  max-width: 75ch;
  margin-bottom: 0;
}
.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:has(.author) .author {
  margin-top: auto;
  border-top: var(--gutter0) solid transparent;
}
.article .container:has(.author) .button {
  margin-top: initial;
}
.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));
  inset-inline-start: var(--gutter1-);
  margin-top: var(--gutter1-);
}
.article.bg-blue:not(.centre-stacked) .container {
  background-color: #131f6b;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-blue:not(.centre-stacked) .container .text,
.article.bg-blue:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-red:not(.centre-stacked) .container {
  background-color: #df3035;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-red:not(.centre-stacked) .container .text,
.article.bg-red:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-grey:not(.centre-stacked) .container {
  background-color: #f4f4f4;
  --heading-colour: var(--secondary);
}
.article.bg-yellow:not(.centre-stacked) .container {
  background-color: #f6f4db;
}
.article.bg-orange:not(.centre-stacked) .container {
  background-color: #ff6a00;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-orange:not(.centre-stacked) .container .text,
.article.bg-orange:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-green:not(.centre-stacked) .container {
  background-color: #50bc08;
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-green:not(.centre-stacked) .container .text,
.article.bg-green:not(.centre-stacked) .container .name {
  color: #FFFFFF;
}
.article.bg-black:not(.centre-stacked) .container {
  background-color: #1e1c1c;
}
.article.bg-primary .container {
  background-color: var(--primary);
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.article.bg-secondary .container {
  background-color: var(--secondary);
  --article-subheading-font-colour: #FFFFFF;
  --heading-colour: #FFFFFF;
}
.content-block.black article-list .article .container {
  border: none !important;
  --article-subheading-font-colour: #FFFFFF;
}
.content-block.black article-list .article .container .button {
  --font-colour: white;
  --background-colour: var(--secondary, #df3035);
  --border-colour: transparent;
  --hover-font-colour: #1e1c1c;
  --hover-background-colour: white;
  --hover-border-colour: transparent;
}
.content-block.black article-list.columns-2 {
  justify-self: center;
}
@media (min-width: 1001px) {
  .content-block.black article-list.columns-2 {
    max-width: 1000px;
  }
}

.article:has(div.container button-container .button:only-child) div.container {
  position: relative;
  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:has(div.container button-container .button:only-child) div.container:hover {
    border-color: var(--primary, #131f6b);
  }
}
.article:has(div.container button-container .button:only-child) button-container {
  position: initial;
}
.article:has(div.container button-container .button:only-child) button-container .button:only-child {
  position: initial;
}
.article:has(div.container button-container .button:only-child) button-container .button:only-child::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}
.article a.container {
  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.container:hover {
    border-color: var(--primary, #131f6b);
  }
}
.article button-container {
  margin-top: var(--gutter1);
}
.article button-container .button {
  font-size: small;
  text-align: center;
}
.article.uncropped-image .image {
  background-color: white;
}
.article.uncropped-image .image img {
  -o-object-fit: contain;
     object-fit: contain;
  padding: var(--gutter0);
  -o-object-position: center center;
     object-position: center center;
}
article-list:has(.image-text-side-by-side) {
  grid-template-columns: 1fr !important;
  display: flex;
  flex-direction: column;
}

.article.dir-rtl {
  direction: rtl;
}
.article.dir-rtl .content > * {
  direction: ltr;
}
.article:not([class*=bg-]) {
  --divider-line-colour: #f4f4f4;
}
.article.image-text-side-by-side .container {
  flex-direction: row;
  padding: 0;
}
.article.image-text-side-by-side .container .content {
  padding: var(--gutter1);
  padding-inline-start: 0;
}
.article.image-text-side-by-side .container .image {
  height: 100%;
  max-width: 33%;
  min-width: 120px;
  margin: 0;
  background-color: white;
  border-inline-end: 1px solid var(--divider-line-colour, #dcdcdc);
}
.article.image-text-side-by-side .container .image img {
  padding: var(--gutter1);
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
  -o-object-position: center center;
     object-position: center center;
}
.article.centre-stacked .container {
  background-color: transparent;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  text-align: center;
  border: none;
}
.article.centre-stacked .container .content {
  display: contents;
}
.article.centre-stacked .container .text * {
  text-wrap: balance;
}
.article.centre-stacked .image {
  max-width: 240px;
  left: 0;
  margin: 0;
  order: -1;
  min-height: 120px;
  max-height: 140px;
}
.article.centre-stacked .image img {
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
  -o-object-position: center center;
     object-position: center center;
}
.article.centre-stacked button-container {
  justify-content: center;
  margin-top: auto;
  padding-top: var(--gutter0);
}
@media (min-width: 1301px) {
  .article + .centre-stacked::before {
    content: "";
    height: 80%;
    left: 0;
    top: 50%;
    width: 1px;
    opacity: 0.2;
    transform: translateY(20%);
    border-left: 1px solid white;
  }
}
.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;
}

.article.layout-text-image-side-by-side:not([class=bg-]) .container,
.article.layout-text-image-side-by-side:not([class=bg-]) .content {
  padding: 0;
}

tag-line {
  display: flex;
  align-items: center;
  text-transform: uppercase;
  justify-content: center;
  gap: var(--gap);
  flex-wrap: wrap;
  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: var(--tagline-icon-colour, #df3035);
  display: block;
  width: 24px;
  height: 24px;
  margin-right: var(--gap);
}

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='%231E1C1C' 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;
  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 {
  margin-block-start: calc(0.5 * var(--dialog-gap));
  align-self: center;
}
: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.horizontal-blocks {
  box-shadow: initial !important;
  display: flex;
  align-items: center;
  padding-block: var(--spacer0);
}
.content-block.horizontal-blocks:has(.text + button-container) {
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--gutter1) var(--gutter0);
}
.content-block.horizontal-blocks:has(.text + button-container) .text {
  text-align: center;
  text-wrap: balance;
}
.content-block.horizontal-blocks:has(.text + button-container) button-container .button {
  font-size: small;
}
.content-block.horizontal-blocks:has(.text + button-container) .text,
.content-block.horizontal-blocks:has(.text + button-container) button-container {
  display: contents;
}
.content-block :is(h2, h3, h4, h5, h6) {
  margin-bottom: var(--gap);
}
.content-block.grey {
  background: #f4f4f4;
}
.content-block.red {
  background: #df3035;
}
.content-block.blue {
  background: #131f6b;
}
.content-block.black {
  background: #1e1c1c;
  color: var(--font-colour);
  --heading-colour: white;
  --font-colour: white;
}
.content-block.side-by-side-components {
  grid-template-columns: repeat(2, minmax(0px, 1fr));
  gap: 0;
}
.content-block.side-by-side-components > * {
  grid-column: auto;
  margin-top: 0;
  margin-bottom: 0;
  border-radius: 0 !important;
}
.content-block.side-by-side-components > *.container-inline {
  padding-block: var(--spacer1);
}
.content-block.side-by-side-components > *.ecoposte-banner {
  padding-top: var(--spacer1);
  align-content: flex-start;
}
main:has(> .content-block.side-by-side-components) {
  margin-top: 0 !important;
}
main:has(> .content-block.side-by-side-components) .side-by-side-components {
  padding-bottom: 0;
}

@media (width < 900px) {
  .content-block.side-by-side-components {
    grid-template-columns: 1fr;
  }
}

.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;
}

.experts-in-your-business {
  --secondary: #df3035;
  position: relative;
  align-content: flex-start;
}
side-bar .experts-in-your-business {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}
side-bar .experts-in-your-business .container-inline {
  padding: var(--gutter2) !important;
}
side-bar .experts-in-your-business .container-inline > .text {
  padding-top: 0;
}

.experts-in-your-business.themed .container-inline {
  padding: var(--gutter1) var(--gutter1) var(--gutter1) var(--gutter2);
}
.experts-in-your-business .text {
  padding-block-start: var(--gutter1);
}
.experts-in-your-business .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") !important;
}
.experts-in-your-business .text > h2 {
  margin-bottom: var(--gutter1);
}
.experts-in-your-business button-container {
  gap: var(--gap);
}
.experts-in-your-business button-container .button {
  margin: 0;
}
.experts-in-your-business figure.image.static {
  background-color: transparent;
  grid-column: 2;
  grid-row: 1/span 2;
  max-width: 260px;
  border-radius: 0;
  align-self: end;
  justify-self: flex-end;
}
.experts-in-your-business .container-inline {
  isolation: isolate;
  display: grid;
  gap: var(--gutter1);
  height: 100%;
  align-self: stretch;
}
.experts-in-your-business .container-inline > *:not(figure) {
  grid-column: 1;
}
@container (width < 500px) {
  .experts-in-your-business .container-inline figure.image.static {
    position: absolute;
    opacity: 0.1;
    z-index: -1;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC5jc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9ub3JtYWxpc2Vycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2NvcmUvX2luZGV4LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faW1hZ2Uuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL3N0eWxpbmcvX2FzcGVjdC1yYXRpby5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL3ZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvbWFyay5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvYnV0dG9uLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2NvcmUvY3VzdG9tLXByb3BlcnRpZXMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL3R5cG9ncmFwaHkuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvZm9udHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX3Jlc3BvbnNpdmUtZm9udHNpemUuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdW5pdHMuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19jb3JlL2xheW91dC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY3JlYXRlL19icmVha3BvaW50cy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYmFja2dyb3VuZC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fcG9zaXRpb24uc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9jb21wb25lbnQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvbmF2aWdhdGlvbi1iYXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fcGFsZXR0ZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvX2VsZW1lbnRzL2xvYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJvd3Nlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9kcm9wZG93bi1tZW51LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvc2Nyb2xsLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2hlYWRlci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9mb290ZXIuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NvbGxlY3Rpb25zL2ZvbnQvX2Nyb3Auc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvc2VjdGlvbnMvYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9iYWNrZ3JvdW5kLXZpZGVvLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3NlY3Rpb25zL2JyZWFkY3J1bWJzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9hbmNob3JzLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9zZWN0aW9ucy9zaWRlLWJhci5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9zb2NpYWwtbWVkaWEuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL192YXJpYWJsZXMvdHJhbnNpdGlvbi5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9wYXJ0aWFscy9hcnRpY2xlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL3BhcnRpYWxzL3RhZy1saW5lLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2Zvcm1zLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9fZWxlbWVudHMvZm9ybS5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9tb2RhbC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9kaWFsb2cuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL2NvbXBvbmVudHMvY29udGVudC1ibG9ja3MvX2luZGV4LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RleHQuc2NzcyIsImZpbGU6L1VzZXJzL21hcmtub3R0b24vUHJvamVjdHMvUmlnaHRvbiUyMEJsYWNrYnVybi9XZWJzaXRlL3NyYy9zYXNzL19lbGVtZW50cy9saXN0LnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL3RhYmxlLnNjc3MiLCJmaWxlOi9Vc2Vycy9tYXJrbm90dG9uL1Byb2plY3RzL1JpZ2h0b24lMjBCbGFja2J1cm4vV2Vic2l0ZS9zcmMvc2Fzcy9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2ltYWdlcy5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy90YWJiZWQtY29udGVudC5zY3NzIiwiZmlsZTovVXNlcnMvbWFya25vdHRvbi9Qcm9qZWN0cy9SaWdodG9uJTIwQmxhY2tidXJuL1dlYnNpdGUvc3JjL3Nhc3MvY29tcG9uZW50cy9jb250ZW50LWJsb2Nrcy9jdXN0b20vZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDMkJkOzs7Ozs7O0VBT0MsU0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0Esd0JBQUE7QUR6Qkg7O0FDNEJFO0VBQ0Msc0JBQUE7RUFDQSw4QkFBQTtBRHpCSDs7QUM0QkU7RUFFQyxtQkFBQTtBRDFCSDtBQ3lCRztFQUFVLFVBQUE7QUR0QmI7O0FDMEJFO0VBQ0MsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBRHZCSDs7QUMwQkU7RUFDQyxvQkFBQTtFQUNBLHFCQUFBO0FEdkJIOztBQzBCRTtFQUNDLGdCQUFBO0FEdkJIOztBQzJCRztFQUFVLGFBQUE7QUR2QmI7O0FDMEJFO0VBQ0MsY0FBQTtBRHZCSDs7QUMwQkU7RUFBYyxpQkFBQTtBRHRCaEI7O0FDd0JFO0VBQVUsY0FBQTtBRHBCWjs7QUNzQkU7RUFDQyxrQkFBQTtFQUNBLHdCQUFBO0FEbkJIO0FDb0JHO0VBQXVDLGFBQUE7QURqQjFDOztBQ29CRTtFQUFXLGFBQUE7QURoQmI7O0FDa0JFO0VBQVcsYUFBQTtBRGRiOztBQ3dCRTtFQUNDLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxXQUFBO0FEckJIOztBQ3dCRTtFQUNDLGtCQUFBO0FEckJIOztBQ2dDRTtFQUNDLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QUQ3Qkg7O0FDd0NFO0VBQ0MsWUFBQTtF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bEJrOUJSO0FBQ0Y7QUdqcENFO0Vld01BO0lBQ0UscUJBQUE7RWxCNDhCRjtBQUNGO0FrQnI4Qkk7RUFDRSxtQkF4TWE7QWxCK29DbkI7QWtCdDhCTTtFQUNFLDRDQUFBO0FsQnc4QlI7QWtCdjhCUTtFQUNFLDRCQUFBO0FsQnk4QlY7QWtCdjhCUTtFQUNFLDZDQUFBO0FsQnk4QlY7QWtCajlCSTtFQUNFLG1CQXhNYTtBbEIycENuQjtBa0JsOUJNO0VBQ0UsNENBQUE7QWxCbzlCUjtBa0JuOUJRO0VBQ0UsNEJBQUE7QWxCcTlCVjtBa0JuOUJRO0VBQ0UsNkNBQUE7QWxCcTlCVjtBa0I3OUJJO0VBQ0UsbUJBeE1hO0FsQnVxQ25CO0FrQjk5Qk07RUFDRSw0Q0FBQTtBbEJnK0JSO0FrQi85QlE7RUFDRSw0QkFBQTtBbEJpK0JWO0FrQi85QlE7RUFDRSw2Q0FBQTtBbEJpK0JWO0FrQnorQkk7RUFDRSxtQkF4TWE7QWxCbXJDbkI7QWtCMStCTTtFQUNFLDRDQUFBO0FsQjQrQlI7QWtCMytCUTtFQUNFLDRCQUFBO0FsQjYrQlY7QWtCMytCUTtFQUNFLDZDQUFBO0FsQjYrQlY7QWtCeCtCRTtFQUNFLDRCUnRHTztFUXVHUCw2QlJ2R087RVF3R1AsNkJSbklPO0VRb0lQLDBCUnBJTztFUXFJUCx3Q0QvTGE7QWpCeXFDakI7QWtCeitCSTtFQUNFLHlCQUFBO0FsQjIrQk47QWtCMStCTTs7RUFFRSwyQlIxSStCO0FWc25DdkM7O0FvQnh0Q0U7RUFDRSxXQUFBO0VBQ0YseUJBQUE7RUFDQSxXQUFBO0VDYUEsa0JBQUE7RUFTRSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsOENBQUE7RUhtT0EsbUJBQUE7QWxCcStCSjtBR2p1Q0U7RWlCSkE7SUZxUEksa0JBQUE7SUFDQSwyQlIxTXFCO0lRMk1yQixnREFBQTtFbEJvL0JKO0FBQ0Y7QUd4dUNFO0VpQkpBO0lGMFBJLGtCQUFBO0lBQ0EsT0FBQTtJQUNBLDRCUi9IaUM7SVFnSWpDLCtDQUFBO0VsQnMvQko7QUFDRjtBR3R2Q0U7RWVxUVM7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UmpZQztFVnUyQ1Q7RWtCbitCSTtJQUVFLHdGQUFBO0VsQm8rQk47QUFDRjtBRzErQ0U7RWVnZk07SUFDRSxjQUFBO0VsQjYvQlI7RWtCMy9CTTtJQUNFLGdCQUFBO0VsQjYvQlI7RWtCeC9CTTtJQUNFLGdCQUFBO0lBQ0EsZ0NBQUE7RWxCMC9CUjtFa0J4L0JNO0lBQ0UsY0FBQTtJQUNBLDRCUmhZQztJUWlZRCw2QlJqWUM7RVYyM0NUO0VrQnYvQkk7SUFFRSx3RkFBQTtFbEJ3L0JOO0FBQ0Y7O0FrQnYrQkU7RUFDRSxpQkFBQTtBbEIwK0JKO0FHbGdERTtFZXNoQkY7SUFNSSxpQkFBQTtFbEIwK0JGO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQmgrQkU7SUFDRSxxQkFBQTtFbEJrK0JKO0VrQjk5QkU7SUFDRSxxQkFBQTtFbEJnK0JKO0VrQjk5QkU7SUFDRSxxQkFBQTtFbEJnK0JKO0VrQjk5QkU7SUFDRSxxQkFBQTtFbEJnK0JKO0VrQjk5QkU7SUFDRSxxQkFBQTtFbEJnK0JKO0VrQjk5QkU7SUFDRSxxQkFBQTtFbEJnK0JKO0VrQjU5QkU7SUFDRSxxQkFBQTtFbEI4OUJKO0VrQjU5QkU7SUFDRSxxQkFBQTtFbEI4OUJKO0VrQjU5QkU7SUFDRSxxQkFBQTtFbEI4OUJKO0VrQjU5QkU7SUFDRSxxQkFBQTtFbEI4OUJKO0VrQjE5QkU7SUFDRSxxQkFBQTtFbEI0OUJKO0VrQjE5QkU7SUFDRSxxQkFBQTtFbEI0OUJKO0VrQjE5QkU7SUFDRSxxQkFBQTtFbEI0OUJKO0VrQng5QkU7SUFDRSxxQkFBQTtFbEIwOUJKO0VrQng5QkU7SUFDRSxxQkFBQTtFbEIwOUJKO0VrQnQ5QkU7SUFDRSxxQkFBQTtFbEJ3OUJKO0FBQ0Y7QUcxakRFO0VlMGdCRjtJQTRGSSxpQkFBQTtFbEJ3OUJGO0VrQnI5QkU7SUFD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QUNFLGNBQUE7QW5EKzNLUjs7QW1EMTNLRTtFQUNFLG9FQUFBO0FuRDYzS0o7QW1EMzNLRTtFQUNFLG1DekM2R087QVZneEtYO0ErQy80S0U7RUFFSSxzVUFBQTtBL0NnNUtOO0FtRDUzS0k7RUFDRSw2QnpDd0dLO0FWc3hLWDtBbUQzM0tFO0VBQ0UsZXpDbUJJO0FWMDJLUjtBbUQ1M0tJO0VBQ0UsU0FBQTtBbkQ4M0tOO0FtRDEzS0U7RUFDRSw2QkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esc0JBQUE7QW5ENDNLSjtBbUQxM0tFO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJ6Q2tGTztFeUNqRlAsWUFBQTtFQUNBLG1CQUFBO0FuRDQzS0o7QW1EMzNLSTtFQUNFLGNBQUE7QW5ENjNLTjtBbUQzM0tJO0VBQ0U7SUFDRSxrQkFBQTtJQUNBLFlBQUE7SUFDQSxXQUFBO0VuRDYzS047QUFDRiIsImZpbGUiOiJnbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLFxuYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSxcbmltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksXG5jZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSxcbmNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsXG5lbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSxcbnNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbjpyb290IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG4qLCAqOmFmdGVyLCAqOmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4qOmZvY3VzLCAqOmFmdGVyOmZvY3VzLCAqOmJlZm9yZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGJsb2NrLXNpemU6IDEwMCU7XG4gIGlubGluZS1zaXplOiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWluLWJsb2NrLXNpemU6IDEwMCU7XG4gIG1pbi1pbmxpbmUtc2l6ZTogMTAwJTtcbn1cblxuaHRtbCwgYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbnA6ZW1wdHksIHByZTplbXB0eSwgYmxvY2txdW90ZTplbXB0eSwgb2w6ZW1wdHksIHVsOmVtcHR5LCBsaTplbXB0eSwgbGVnZW5kOmVtcHR5LCBmaWdjYXB0aW9uOmVtcHR5LCBib2R5OmVtcHR5LCBhcnRpY2xlOmVtcHR5LCBuYXY6ZW1wdHksIGFzaWRlOmVtcHR5LCBzZWN0aW9uOmVtcHR5LCBoZWFkZXI6ZW1wdHksIGZvb3RlcjplbXB0eSwgYWRkcmVzczplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuc3ZnLCBzeW1ib2wge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyLCBzdW1tYXJ5OjptYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keSB7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICB3aWR0aDogMTAwJTtcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMGVtO1xuICAtd2Via2l0LW1hcmdpbi1hZnRlcjogMGVtO1xuICAtd2Via2l0LW1hcmdpbi1zdGFydDogMHB4O1xuICAtd2Via2l0LW1hcmdpbi1lbmQ6IDBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaHIge1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogMXB4O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IG5vbmU7XG59XG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciwgcTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lO1xufVxuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrO1xuICBwYWRkaW5nOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmJ1dHRvbiB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5idXR0b24sIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICBtYXJnaW46IDA7XG59XG5cbmJ1dHRvbiwgaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLCBzZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuYnV0dG9uLFxuW3R5cGU9YnV0dG9uXSxcblt0eXBlPXJlc2V0XSxcblt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmJ1dHRvbjpmb2N1cyxcblt0eXBlPWJ1dHRvbl06Zm9jdXMsXG5bdHlwZT1yZXNldF06Zm9jdXMsXG5bdHlwZT1zdWJtaXRdOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1yZXNldF06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT1jaGVja2JveF0sXG5bdHlwZT1yYWRpb10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG5bdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG5bZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmNvZGUsIGtiZCwgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1Yiwgc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5wcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuYm9keS5kZXZtb2RlIGltZzpub3QoW2FsdF0pIHtcbiAgYm9yZGVyOiAycHggcmVkIGRhc2hlZDtcbn1cblxuYm9keSB7XG4gIHdpZHRoOiAxMDB2dztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjFweCkge1xuICBib2R5IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cbn1cblxuOndoZXJlKCopIHtcbiAgc2Nyb2xsLW1hcmdpbi10b3A6IHZhcigtLW5hdmlnYXRpb24taGVpZ2h0LCAycmVtKTtcbn1cblxuLmFzeW5jLWhpZGUge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5cbm1haW46ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5maWd1cmUuaW1hZ2UsXG5waWN0dXJlLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuZmlndXJlLmltYWdlIGltZyxcbnBpY3R1cmUuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taW1hZ2UtcG9zaXRpb24sIGNlbnRlciAzMy4zMyUpO1xuICB3aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBoZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIG1heC13aWR0aDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbnZpZGVvLWNvbnRhaW5lciB7XG4gIC0tYXNwZWN0LXJhdGlvOiAxNi85O1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICB2aWRlby1jb250YWluZXIge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgdmlkZW8tY29udGFpbmVyID4gKiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG52aWRlby1jb250YWluZXIgaWZyYW1lLCB2aWRlby1jb250YWluZXIgY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuKjpoYXMoPiAuY29udGFpbmVyLWlubGluZSkge1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG59XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5NWZmO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KSAvIDIpO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5cbmRldGFpbHMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5zdW1tYXJ5IHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciwgc3VtbWFyeTo6bWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuaGVhZGVyIC5idXR0b24uYnJvY2h1cmUge1xuICAtLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA1cHggMHB4O1xuICAtLWljb24tc2l6ZTogMzJweDtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ib3JkZXItcmFkaXVzOiAwO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuaGVhZGVyIC5idXR0b24uYnJvY2h1cmUgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZmlsbDogI2RmMzAzNTtcbn1cblxuLmJ1dHRvbiB7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5KTtcbiAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1wYWRkaW5nOiA4cHggMjBweDtcbiAgLS1mb250LXNpemU6IDE2cHg7XG4gIC0tYm9yZGVyLXJhZGl1czogNTBweDtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSk7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IGluaXRpYWw7XG4gIC0taG92ZXItcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIC0taG92ZXItZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICAtLWhvdmVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAtLWljb24tc2l6ZTogMS4xZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIGJvcmRlciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpO1xufVxuLmJ1dHRvbiBzdmcge1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICBvcmRlcjogMztcbiAgZmlsbDogdmFyKC0tZmlsbCwgY3VycmVudENvbG9yKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpO1xufVxuLmJ1dHRvbiBzdmdbY2xhc3MqPWFycm93XSB7XG4gIC0taWNvbi1zaXplOiAwLjllbTtcbn1cbi5idXR0b24gc3ZnLmFycm93LWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBvcmRlcjogMTtcbn1cbi5idXR0b24gPiBzcGFuIHtcbiAgb3JkZXI6IDI7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cbi5idXR0b24uc21hbGwge1xuICAtLXBhZGRpbmc6IDZweCAxOHB4O1xuICAtLWZvbnQtc2l6ZTogMTJweDtcbn1cbi5idXR0b24uc21hbGwgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG4uYnV0dG9uLnNtYWxsIHN2Zy5hcnJvdy1sZWZ0IHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLmJ1dHRvbi5sYXJnZSB7XG4gIC0tcGFkZGluZzogMTJweCAyNHB4O1xuICAtLWZvbnQtc2l6ZTogMjRweDtcbn1cbi5idXR0b24ub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWJvcmRlci1jb2xvdXI6ICMxMzFmNmI7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLmJsdWUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICMxMzFmNmI7XG59XG4uYnV0dG9uLmJsdWUub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjMTMxZjZiO1xuICAtLWJvcmRlci1jb2xvdXI6ICMxMzFmNmI7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICMxMzFmNmI7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLnJlZCB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNkZjMwMzU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI2RmMzAzNTtcbn1cbi5idXR0b24ucmVkLm91dGxpbmUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1mb250LWNvbG91cjogI2RmMzAzNTtcbiAgLS1ib3JkZXItY29sb3VyOiAjZGYzMDM1O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjZGYzMDM1O1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi5ncmVlbiB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICM3NmJiMjg7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogIzc2YmIyODtcbn1cbi5idXR0b24uZ3JlZW4ub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjNzZiYjI4O1xuICAtLWJvcmRlci1jb2xvdXI6ICM3NmJiMjg7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICM3NmJiMjg7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLndoaXRlIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xufVxuLmJ1dHRvbi53aGl0ZS5vdXRsaW5lIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG4uYnV0dG9uLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNkY2RjZGM7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI2RjZGNkYztcbn1cbi5idXR0b24uZGlzYWJsZWQub3V0bGluZSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjZGNkY2RjO1xuICAtLWJvcmRlci1jb2xvdXI6ICNkY2RjZGM7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICNkY2RjZGM7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICNkY2RjZGM7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuYnV0dG9uOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taG92ZXItZm9udC1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWhvdmVyLWJvcmRlci1jb2xvdXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWhvdmVyLWJvcmRlci1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IHZhcigtLWhvdmVyLXBhZGRpbmcpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taG92ZXItZm9udC1zaXplKTtcbiAgfVxufVxuLmJ1dHRvbi5yZWQgc3ZnLnRpY2ssIC5idXR0b24ucmVkIHN2Zy5kb3dubG9hZCB7XG4gIC0tc3Ryb2tlOiAjZGYzMDM1O1xufVxuLmJ1dHRvbi5ibHVlIHN2Zy50aWNrLCAuYnV0dG9uLmJsdWUgc3ZnLmRvd25sb2FkIHtcbiAgLS1zdHJva2U6ICMxMzFmNmI7XG59XG4uYnV0dG9uLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b24ub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAtLXN0cm9rZTogI0ZGRkZGRjtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC5idXR0b246aG92ZXIucmVkIHN2Zy50aWNrLFxuICAuYnV0dG9uOmhvdmVyLnJlZCBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIucmVkLm91dGxpbmUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogI2RmMzAzNTtcbiAgfVxuICAuYnV0dG9uOmhvdmVyLmJsdWUgc3ZnLnRpY2ssXG4gIC5idXR0b246aG92ZXIuYmx1ZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjRkZGRkZGO1xuICB9XG4gIC5idXR0b246aG92ZXIuYmx1ZS5vdXRsaW5lIHN2Zy50aWNrLCAuYnV0dG9uOmhvdmVyLmJsdWUub3V0bGluZSBzdmcuZG93bmxvYWQge1xuICAgIC0tc3Ryb2tlOiAjMTMxZjZiO1xuICB9XG4gIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLnRpY2ssIC5idXR0b246aG92ZXIud2hpdGUgc3ZnLmRvd25sb2FkIHtcbiAgICAtLXN0cm9rZTogIzEzMWY2YjtcbiAgfVxufVxuXG5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBnYXA6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5idXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwcHg7XG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLCBpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuI2hvbGRpbmctcGFnZSBoZWFkZXIgc3ZnIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAjaG9sZGluZy1wYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuYm9keSNlcnJvci00MDQgaGVhZGVyIGgyIHtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbmJvZHkjZXJyb3ItNDA0IHNlYXJjaC1iYXIgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzEzMWY2Yjtcbn1cblxuYm9keSA+IC5pZGxlLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEtKTtcbiAgei1pbmRleDogMjtcbiAgLyogU3RhcnQgaGlkZGVuIGJlbG93IHZpZXdwb3J0ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLyogQW5pbWF0aW9uIHdpdGggZGVsYXllZCBzdGFydCAqL1xuICBhbmltYXRpb246IHNsaWRlLWluLWlkbGUtZGlhbG9nIGJvdGg7XG4gIGFuaW1hdGlvbi10aW1lbGluZTogc2Nyb2xsKCk7XG4gIGFuaW1hdGlvbi1yYW5nZTogY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSkgY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSArIGNsYW1wKDJyZW0sIDV2aCwgM3JlbSkgKiAyKTtcbn1cbmJvZHkgPiAuaWRsZS1kaWFsb2cgLmJ1dHRvbiB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG5Aa2V5ZnJhbWVzIHNsaWRlLWluLWlkbGUtZGlhbG9nIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTtcbiAgfVxufVxuI2NvbnRhY3QtbW9kYWwge1xuICAtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyOiAjZjRmNGY0O1xufVxuI2NvbnRhY3QtbW9kYWwgZm9ybSAuc3VibWl0LXJvdyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEpO1xufVxuXG5ib2R5ID4gLmJhY2stdG8tdG9wIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IHZhcigtLWd1dHRlcjEpO1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2stdG8tdG9wLWJhY2tncm91bmQsICMyOTJiNjgpO1xuICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB6LWluZGV4OiA5OTk5O1xuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm90dG9tIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG59XG5ib2R5ID4gLmJhY2stdG8tdG9wIHN2ZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogNTAlO1xuICB0b3A6IC00JTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGJvZHkgPiAuYmFjay10by10b3A6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgI2RmMzAzNSk7XG4gIH1cbn1cblxuZm9vdGVyI2Zvb3Rlci5pbi12aWV3IH4gLmJhY2stdG8tdG9wIHtcbiAgYm90dG9tOiAxMjBweDtcbn1cblxubmF2aWdhdGlvbi1iYXI6bm90KC5pbi12aWV3KSB+IC5iYWNrLXRvLXRvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpyb290IHtcbiAgLS1wcmltYXJ5OiAjMTMxZjZiO1xuICAtLXNlY29uZGFyeTogI2RmMzAzNTtcbiAgLS1icmVha3BvaW50LW1pbjogMzIwcHg7XG4gIC0tYnJlYWtwb2ludC1zbWFsbDogNDgwcHg7XG4gIC0tYnJlYWtwb2ludC1zbWFsbC1tZWRpdW06IDk4MHB4O1xuICAtLWJyZWFrcG9pbnQtbWVkaXVtOiAxMTIwcHg7XG4gIC0tYnJlYWtwb2ludC1sYXJnZTogMTQwMHB4O1xuICAtLWJyZWFrcG9pbnQtbWF4OiAxNjgwcHg7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0taGVhZGluZy1jb2xvdXI6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICAtLXN1Yi1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAtLXRyYW5zaXRpb24tZWFzZTogY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICAtLXRyYW5zaXRpb24tZGVsYXk6IDtcbiAgLS1icmVhZGNydW1iLWhlaWdodDogOTBweDtcbiAgLS1hbmNob3JzLWhlaWdodDogNjBweDtcbiAgLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldDogLTE1cHg7XG4gIC0tbWFpbi1tYXgtd2lkdGg6IDkwMHB4O1xuICAtLW5hdmlnYXRpb24taGVpZ2h0OiAxNDNweDtcbiAgLS1zaWRlYmFyLXdpZHRoOiBjbGFtcCgzMDBweCwgMzB2dywgNTAwcHgpO1xuICAtLWdhcDogMTZweDtcbiAgLS1ndXR0ZXI6IDN2dztcbiAgLS1zcGFjZXI6IDR2aDtcbiAgLS1ndXR0ZXIwOiBjbGFtcCg4cHgsIHZhcigtLWd1dHRlcikgKiAwLjUsIDEycHgpO1xuICAtLWd1dHRlcjAtOiBjYWxjKC0xICogY2xhbXAoOHB4LCB2YXIoLS1ndXR0ZXIpICogMC41LCAxMnB4KSk7XG4gIC0tc3BhY2VyMDogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSwgMzJweCk7XG4gIC0tc3BhY2VyMC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpLCAzMnB4KSk7XG4gIC0tZ3V0dGVyMTogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSwgMzJweCk7XG4gIC0tZ3V0dGVyMS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpLCAzMnB4KSk7XG4gIC0tc3BhY2VyMTogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDMsIDY0cHgpO1xuICAtLXNwYWNlcjEtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDMsIDY0cHgpKTtcbiAgLS1ndXR0ZXIyOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMiwgNDhweCk7XG4gIC0tZ3V0dGVyMi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMiwgNDhweCkpO1xuICAtLXNwYWNlcjI6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA2LCAxMTJweCk7XG4gIC0tc3BhY2VyMi06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogNiwgMTEycHgpKTtcbiAgLS1ndXR0ZXIzOiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMywgNjRweCk7XG4gIC0tZ3V0dGVyMy06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogMywgNjRweCkpO1xuICAtLXNwYWNlcjM6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiA5LCAxNjBweCk7XG4gIC0tc3BhY2VyMy06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogOSwgMTYwcHgpKTtcbiAgLS1ndXR0ZXI0OiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNCwgODBweCk7XG4gIC0tZ3V0dGVyNC06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1ndXR0ZXIpICogNCwgODBweCkpO1xuICAtLXNwYWNlcjQ6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxMiwgMjA4cHgpO1xuICAtLXNwYWNlcjQtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDEyLCAyMDhweCkpO1xuICAtLWd1dHRlcjU6IGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA1LCA5NnB4KTtcbiAgLS1ndXR0ZXI1LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA1LCA5NnB4KSk7XG4gIC0tc3BhY2VyNTogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE1LCAyNTZweCk7XG4gIC0tc3BhY2VyNS06IGNhbGMoLTEgKiBjbGFtcCgxNnB4LCB2YXIoLS1zcGFjZXIpICogMTUsIDI1NnB4KSk7XG4gIC0tZ3V0dGVyNjogY2xhbXAoMTZweCwgdmFyKC0tZ3V0dGVyKSAqIDYsIDExMnB4KTtcbiAgLS1ndXR0ZXI2LTogY2FsYygtMSAqIGNsYW1wKDE2cHgsIHZhcigtLWd1dHRlcikgKiA2LCAxMTJweCkpO1xuICAtLXNwYWNlcjY6IGNsYW1wKDE2cHgsIHZhcigtLXNwYWNlcikgKiAxOCwgMzA0cHgpO1xuICAtLXNwYWNlcjYtOiBjYWxjKC0xICogY2xhbXAoMTZweCwgdmFyKC0tc3BhY2VyKSAqIDE4LCAzMDRweCkpO1xuICAtLWNvbXB1dGVkLWd1dHRlcjogY2FsYygoKDEwMHZ3IC0gdmFyKC0tYnJlYWtwb2ludC1tYXgpKSAvIDIpKTtcbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgOnJvb3Qge1xuICAgIC0tc2lkZWJhci13aWR0aDogNTAwcHg7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAgIDpyb290IHtcbiAgICAgIC0tc2lkZWJhci13aWR0aDogMzAwcHg7XG4gICAgfVxuICB9XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIDpyb290IHtcbiAgICAtLWd1dHRlcjA6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAwLjUpICsgOHB4KTtcbiAgICAtLWd1dHRlcjAtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDAuNSkgKyA4cHgpKTtcbiAgICAtLXNwYWNlcjA6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAyKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyMC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMikgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXIxOiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMSkgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjEtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDEpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyMTogY2FsYygodmFyKC0tc3BhY2VyKSAqIDQpICsgMTZweCk7XG4gICAgLS1zcGFjZXIxLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiA0KSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjI6IGNhbGMoKHZhcigtLWd1dHRlcikgKiAyKSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyMi06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogMikgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXIyOiBjYWxjKCh2YXIoLS1zcGFjZXIpICogOCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjItOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDgpICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyMzogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDMpICsgMTZweCk7XG4gICAgLS1ndXR0ZXIzLTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiAzKSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjM6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAxMikgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjMtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDEyKSArIDE2cHgpKTtcbiAgICAtLWd1dHRlcjQ6IGNhbGMoKHZhcigtLWd1dHRlcikgKiA0KSArIDE2cHgpO1xuICAgIC0tZ3V0dGVyNC06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNCkgKyAxNnB4KSk7XG4gICAgLS1zcGFjZXI0OiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMTYpICsgMTZweCk7XG4gICAgLS1zcGFjZXI0LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLXNwYWNlcikgKiAxNikgKyAxNnB4KSk7XG4gICAgLS1ndXR0ZXI1OiBjYWxjKCh2YXIoLS1ndXR0ZXIpICogNSkgKyAxNnB4KTtcbiAgICAtLWd1dHRlcjUtOiBjYWxjKC0xICogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDUpICsgMTZweCkpO1xuICAgIC0tc3BhY2VyNTogY2FsYygodmFyKC0tc3BhY2VyKSAqIDIwKSArIDE2cHgpO1xuICAgIC0tc3BhY2VyNS06IGNhbGMoLTEgKiBjYWxjKCh2YXIoLS1zcGFjZXIpICogMjApICsgMTZweCkpO1xuICAgIC0tZ3V0dGVyNjogY2FsYygodmFyKC0tZ3V0dGVyKSAqIDYpICsgMTZweCk7XG4gICAgLS1ndXR0ZXI2LTogY2FsYygtMSAqIGNhbGMoKHZhcigtLWd1dHRlcikgKiA2KSArIDE2cHgpKTtcbiAgICAtLXNwYWNlcjY6IGNhbGMoKHZhcigtLXNwYWNlcikgKiAyNCkgKyAxNnB4KTtcbiAgICAtLXNwYWNlcjYtOiBjYWxjKC0xICogY2FsYygodmFyKC0tc3BhY2VyKSAqIDI0KSArIDE2cHgpKTtcbiAgfVxufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1zZW1pYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibGF0b1wiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwibW9udHNlcnJhdFwiO1xuICBzcmM6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1zZW1pYm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LXNlbWlib2xkLm90ZlwiKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IG1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyLCAjNmE2YTZhKTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5Ac3VwcG9ydHMgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgYm9keSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjRyZW0sIDEuNXZ3LCAxLjZyZW0pO1xuICB9XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NTBweCkge1xuICAgIGJvZHkge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgfVxuICB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjAxcHgpIHtcbiAgICBib2R5IHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIH1cbiAgfVxufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMy44MTI1ZW07XG4gIGZvbnQtc2l6ZTogY2xhbXAoMi41ZW0sIDV2dywgMy44MTI1ZW0pO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBsYXRvLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91ciwgdmFyKC0tZm9udC1jb2xvdXIpKTtcbiAgdGV4dC13cmFwOiBwcmV0dHk7XG59XG5oMS5zdWItaGVhZGluZyxcbmgyLnN1Yi1oZWFkaW5nLFxuaDMuc3ViLWhlYWRpbmcsXG5oNC5zdWItaGVhZGluZyxcbmg1LnN1Yi1oZWFkaW5nLFxuaDYuc3ViLWhlYWRpbmcge1xuICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbmgxIHNwYW4sXG5oMSBzdHJvbmcsXG5oMSBwLFxuaDIgc3BhbixcbmgyIHN0cm9uZyxcbmgyIHAsXG5oMyBzcGFuLFxuaDMgc3Ryb25nLFxuaDMgcCxcbmg0IHNwYW4sXG5oNCBzdHJvbmcsXG5oNCBwLFxuaDUgc3Bhbixcbmg1IHN0cm9uZyxcbmg1IHAsXG5oNiBzcGFuLFxuaDYgc3Ryb25nLFxuaDYgcCB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnEsXG5ibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBcIuKAnFwiIFwi4oCdXCIgXCLigJhcIiBcIuKAmVwiO1xufVxucTo6YmVmb3JlLFxuYmxvY2txdW90ZTo6YmVmb3JlIHtcbiAgY29udGVudDogb3Blbi1xdW90ZTtcbn1cbnE6OmFmdGVyLFxuYmxvY2txdW90ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBjbG9zZS1xdW90ZTtcbn1cblxuYSB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlcjtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbn1cbmEuZXh0ZXJuYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbmEuZXh0ZXJuYWwgc3ZnLmV4dGVybmFsLWxpbmsge1xuICBvcGFjaXR5OiAwLjY7XG4gIHdpZHRoOiAwLjhlbTtcbiAgaGVpZ2h0OiAwLjhlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuXG5vbCxcbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5saSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC42MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oci1jb2xvdXIsICNkY2RjZGMpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG59XG5cbi5ub3RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjViZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZTEzYztcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4ubm90ZSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjOTc4MDAyO1xufVxuLm5vdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiUGxlYXNlIE5vdGVcIjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzk3ODAwMjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5cbmJvZHkge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctYW5jaG9yczogMztcbiAgLS1yb3ctaGVhZGVyOiA0O1xuICAtLXJvdy1tYWluOiA1O1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxO1xuICAtLXJvdy1zaWRlYmFyOiA0IC8gc3BhbiAzO1xuICAtLXJvdy1mb290ZXI6IDEwMDtcbiAgLS1yb3dzOiBhdXRvO1xuICAtLWNvbHVtbi1sZWZ0OiAyO1xuICAtLWNvbHVtbi1tYWluOiAyIC8gc3BhbiAyO1xuICAtLWNvbHVtbi1yaWdodDogNDtcbiAgLS1jb2x1bW4tZnVsbDogMiAvIC0yO1xuICAtLWNvbHVtbi1ndXR0ZXI6IG1pbm1heCgwLCAxZnIpO1xuICAtLWNvbHVtbi1jb250ZW50OiBtaW5tYXgoMCwgY2FsYygxNjgwcHggLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSAtIHZhcigtLWd1dHRlcjQpKSk7XG4gIC0tY29sdW1uLXNpZGViYXI6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICAtLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1ndXR0ZXIpIHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBncmlkLWdhcDogMCB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiB2YXIoLS1yb3dzKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW5zKTtcbn1cbmJvZHkgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbn1cblxubmF2aWdhdGlvbi1iYXIge1xuICB6LWluZGV4OiA5OTk7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbmF2aWdhdGlvbik7XG59XG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gI2JyZWFkY3J1bWJzLWJhcixcbm5hdmlnYXRpb24tYmFyOm5vdCguaW4tdmlldykgfiAjYW5jaG9ycy1iYXIge1xuICAtLWFuY2hvcnMtaGVpZ2h0OiA1MHB4O1xufVxuXG4jYnJlYWRjcnVtYnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1icmVhZGNydW1icyk7XG4gIGhlaWdodDogdmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpO1xufVxuI2JyZWFkY3J1bWJzLWJhci5zdGlja3kge1xuICB0b3A6IHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KTtcbn1cblxuI2FuY2hvcnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1hbmNob3JzKTtcbiAgaGVpZ2h0OiB2YXIoLS1hbmNob3JzLWhlaWdodCk7XG59XG4jYW5jaG9ycy1iYXIuc3RpY2t5IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSAtIDFweCArIHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KSAqIDIpO1xufVxuXG4uaGVhZGVyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1oZWFkZXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLW1haW4pO1xuICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbn1cblxuI2Zvb3RlciB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctZm9vdGVyKTtcbn1cblxubWFpbiB7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbWFpbik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tbWFpbik7XG4gIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxubWFpbiA+ICosXG5tYWluIH4gc2VjdGlvbixcbm1haW4gfiBhc2lkZSxcbm1haW4gfiBkaXYsXG5tYWluIH4gc2VydmljZS1jZW50cmUtZmluZGVyLFxubWFpbiB+IG1hcmtldHMtc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbm1haW4gfiBkaXY6aGFzKGRpdiN0cnVlbmRvX2NvbnRhaW5lcikge1xuICBwYWRkaW5nOiAwO1xufVxubWFpbiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgcGljdHVyZSB7XG4gIC0tdHJhbnNsYXRlWDogMDtcbiAgd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1zY3JvbGxiYXItd2lkdGgsIDBweCkpO1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTY4MXB4KSB7XG4gIG1haW4gc2VydmljZS1jZW50cmUtZmluZGVyIHBpY3R1cmUge1xuICAgIGxlZnQ6IGNhbGMoKC0xICogdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSkgLSB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuc2lkZS1iYXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LXNpZGViYXIpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tY29sdW1uLXJpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbn1cbnNpZGUtYmFyID4gZGl2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpIHZhcigtLWd1dHRlcjEpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgodmFyKC0tc2lkZWJhci13aWR0aCksIDFmcikpO1xufVxuc2lkZS1iYXIgPiBkaXYuc3RpY2t5IHtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArIHZhcigtLWd1dHRlcjEpKTtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnNpZGUtYmFyID4gZGl2ID4gKi5yZWQge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZGYzMDM1O1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqLmJsdWUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjMTMxZjZiO1xufVxuc2lkZS1iYXIgPiBkaXYgPiAqLmdyZXkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjZjRmNGY0O1xuICAtLWJvcmRlci1jb2xvdXI6ICNkY2RjZGM7XG59XG5zaWRlLWJhciA+IGRpdiA+ICoud2hpdGUge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1jb2xvdXI6ICNmNGY0ZjQ7XG59XG5cbmFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgYm9keSB7XG4gICAgLS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tZ3V0dGVyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLWd1dHRlcik7XG4gICAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tY29sdW1uLWxlZnQ6IHZhcigtLWNvbHVtbi1mdWxsKTtcbiAgICAtLWNvbHVtbi1yaWdodDogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tcm93LXNpZGViYXI6IGF1dG87XG4gIH1cbiAgYm9keSA+ICoge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIGJvZHkgc2lkZS1iYXIge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgfVxuICBib2R5IHNpZGUtYmFyID4gZGl2IHtcbiAgICBncmlkLWdhcDogdmFyKC0tc3BhY2VyMSkgdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbiAgYm9keSBzaWRlLWJhciA+IGRpdi5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IGluaXRpYWw7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAzNTJweCkge1xuICBib2R5IHtcbiAgICAtLXNpZGViYXItd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi50aGVtZWQucmVkIHtcbiAgYmFja2dyb3VuZDogI2RmMzAzNTtcbn1cbi50aGVtZWQucmVkLmJsb3dvdXQgKyAudGhlbWVkLnJlZCB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xufVxuLnRoZW1lZC5yZWQuYmxvd291dCArIC50aGVtZWQucmVkLmxpZ2h0IHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogI2RjZGNkYztcbn1cbi50aGVtZWQucmVkLmJsb3dvdXQgKyAudGhlbWVkLnJlZC5kYXJrIHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLnRoZW1lZC5ibHVlIHtcbiAgYmFja2dyb3VuZDogIzEzMWY2Yjtcbn1cbi50aGVtZWQuYmx1ZS5ibG93b3V0ICsgLnRoZW1lZC5ibHVlIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG59XG4udGhlbWVkLmJsdWUuYmxvd291dCArIC50aGVtZWQuYmx1ZS5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLmJsdWUuYmxvd291dCArIC50aGVtZWQuYmx1ZS5kYXJrIHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLnRoZW1lZC5ncmV5IHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbi50aGVtZWQuZ3JleS5ibG93b3V0ICsgLnRoZW1lZC5ncmV5IHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG59XG4udGhlbWVkLmdyZXkuYmxvd291dCArIC50aGVtZWQuZ3JleS5saWdodCB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6ICNkY2RjZGM7XG59XG4udGhlbWVkLmdyZXkuYmxvd291dCArIC50aGVtZWQuZ3JleS5kYXJrIHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLnRoZW1lZC53aGl0ZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4udGhlbWVkLndoaXRlLmJsb3dvdXQgKyAudGhlbWVkLndoaXRlIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91cik7XG59XG4udGhlbWVkLndoaXRlLmJsb3dvdXQgKyAudGhlbWVkLndoaXRlLmxpZ2h0IHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogI2RjZGNkYztcbn1cbi50aGVtZWQud2hpdGUuYmxvd291dCArIC50aGVtZWQud2hpdGUuZGFyayB7XG4gIC0tYm9yZGVyLXRvcC1jb2xvdXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG4udGhlbWVkOm5vdCguYmxvd291dCkud2hpdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjRmNGY0O1xufVxuLnRoZW1lZDpub3QoLmJsb3dvdXQpLndoaXRlICsgLmJsb3dvdXQud2hpdGUsXG4udGhlbWVkOm5vdCguYmxvd291dCkud2hpdGUgKyA6bm90KC50aGVtZWQpIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMS0pO1xufVxuXG4uYmxvd291dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSk7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMzM2cHgpIHtcbiAgLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgbGVmdDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gdmFyKC0tc2Nyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLXNyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGJvZHk6bm90KG1vYmlsZSkgbWFpbiAuYmxvd291dDpiZWZvcmUge1xuICAgIC0tdHJhbnNsYXRlWDogMDtcbiAgICB3aWR0aDogY2FsYygxMDB2dyArIHZhcigtLXNjcm9sbGJhci13aWR0aCwgMHB4KSk7XG4gICAgbGVmdDogdmFyKC0tZ3V0dGVyMS0pO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIGFuZCAobWluLXdpZHRoOiAxNjgxcHgpIHtcbiAgYm9keTpub3QobW9iaWxlKSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygoLTEgKiB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpKSAtIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5ib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gIC0tdHJhbnNsYXRlWDogMDtcbiAgd2lkdGg6IGNhbGMoMTAwdncgKyB2YXIoLS1zY3JvbGxiYXItd2lkdGgsIDBweCkpO1xuICBsZWZ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tZ3V0dGVyMSkpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODFweCkge1xuICBib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYygoLTEgKiB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpKSAtIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxufVxuXG5iYWNrZ3JvdW5kLWltYWdlLFxuYmFja2dyb3VuZC12aWRlbyB7XG4gIHotaW5kZXg6IC0xO1xuICBncmlkLXJvdzogdmFyKC0tcm93LWJhY2tncm91bmQpO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbmJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbmJhY2tncm91bmQtdmlkZW8uYmVoaW5kLWhlYWRlciB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDQ7XG59XG5cbmltZ1tkYXRhLXNyY10sXG52aWRlb1tkYXRhLXNyY10ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgb3BhY2l0eTogMDtcbn1cbmltZ1tkYXRhLXNyY10ubG9hZGVkLFxudmlkZW9bZGF0YS1zcmNdLmxvYWRlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jZW50ZXItYWxsIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2VyMik7XG4gIGdhcDogdmFyKC0tc3BhY2VyMSkgIWltcG9ydGFudDtcbn1cbi5jZW50ZXItYWxsID4gLnRleHQgOmlzKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNlbnRlci1hbGwgPiAudGV4dCA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnkpO1xufVxuLmNlbnRlci1hbGwgYXJ0aWNsZS1saXN0IHtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtLWFydGljbGUtbWluLXdpZHRoOiA0MjBweCAhaW1wb3J0YW50O1xufVxuXG5tYWluIH4gKjpub3QoLnRoZW1lZCkgKyA6bm90KC50aGVtZWQpOm5vdCgjZm9vdGVyKTpub3Qoc2lkZS1iYXIpIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICNkY2RjZGMpO1xufVxuXG5tYWluID4gKi50aGVtZWQuY29udGVudC1ibG9jayB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbm1haW4gPiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxubWFpbiB+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3RlciksXG5ib2R5LmJhY2tncm91bmQtcG9zaXRpb25lZC1iZWhpbmQtaGVhZGVyIG1haW4gPiAqOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cblxubWFpbiA+ICo6Zmlyc3QtY2hpbGQ6bm90KC50aGVtZWQpLFxubWFpbiA+ICo6Zmlyc3QtY2hpbGQud2hpdGUge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI2RjZGNkYyk7XG59XG5cbm1haW4gfiAqOm5vdCgudGhlbWVkKSArIC50aGVtZWQ6bm90KC5ibG93b3V0KSxcbm1haW4gPiAqOm5vdCgudGhlbWVkKSArIC50aGVtZWQ6bm90KC5ibG93b3V0KSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG59XG5cbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xufVxuXG5tYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpICsgLmJsb3dvdXQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbn1cblxuLmhlYWRlciB+IG1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG5tYWluIH4gZGl2OmhhcygjQ29va2llYm90V2lkZ2V0KSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSB7XG4gIC0tbWFpbi1tYXgtd2lkdGg6IGF1dG87XG4gIC0tY29sdW1uLW1haW46IHZhcigtLWNvbHVtbi1mdWxsKTtcbn1cblxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1hbmNob3JzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA0O1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMztcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pICNhbmNob3JzLWJhci5zdGlja3kge1xuICB0b3A6IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkge1xuICAgIC0tcm93LXNpZGViYXI6IDMgLyBzcGFuIDM7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSkgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWJyZWFkY3J1bWJzLWJhcl0pIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgICB0b3A6IGNhbGModmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG59XG5cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctaGVhZGVyOiAzO1xuICAtLXJvdy1tYWluOiA0O1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtdmlkZW8uZnVsbCB7XG4gIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMztcbn1cbmJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgI2JyZWFkY3J1bWJzLWJhci5zdGlja3kge1xuICB0b3A6IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMyAvIHNwYW4gMztcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1hbmNob3JzLWJhcl0pIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyB2YXIoLS1ndXR0ZXIxKSk7XG4gIH1cbn1cblxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1oZWFkZXI6IDI7XG4gIC0tcm93LW1haW46IDM7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG59XG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLWltYWdlLmZ1bGwsXG5ib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA1O1xufVxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgLS1yb3ctYmFja2dyb3VuZDogMjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSB7XG4gICAgLS1yb3ctc2lkZWJhcjogMiAvIHNwYW4gMztcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1icmVhZGNydW1icy1iYXJdKTpub3QoW2RhdGEtY29tcG9uZW50cyo9YW5jaG9ycy1iYXJdKSBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9YnJlYWRjcnVtYnMtYmFyXSk6bm90KFtkYXRhLWNvbXBvbmVudHMqPWFuY2hvcnMtYmFyXSkgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYge1xuICAgIHRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGJvZHkucnVsZS1sYXN0LW1haW4tc2VjdGlvbi1pcy10aGVtZWQgc2lkZS1iYXIge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyLCAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbn1cbi5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sZWZ0LFxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLnJpZ2h0LCAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5sZWZ0LFxuLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAucmlnaHQge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gIC0tY29sdW1uLWNvbnRlbnQ6IG1pbm1heCgwLCBjYWxjKDE2ODBweCAtICh2YXIoLS1zaWRlYmFyLXdpZHRoKSAqIDIpKSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBib2R5ID4gLmxheW91dC1jb250ZW50LWxlZnQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgYm9keSA+IC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMi80O1xuICB9XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciAubGVmdCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvMztcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1haW4tbWF4LXdpZHRoKTtcbiAgfVxuICBib2R5ID4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLnJpZ2h0IHtcbiAgICBncmlkLWNvbHVtbjogMztcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB9XG4gIGJvZHkgPiAubGF5b3V0LWNvbnRlbnQtcmlnaHQtc2lkZWJhciwgYm9keSA+IC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tc2lkZWJhcik7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTIxcHgpIHtcbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1sZWZ0LXNpZGViYXIgLmxlZnQge1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICB9XG4gIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIC5yaWdodCB7XG4gICAgZ3JpZC1jb2x1bW46IDIvNDtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIgLmxlZnQge1xuICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gIH1cbiAgYm9keTpub3QoW2RhdGEtY29tcG9uZW50cyo9c2lkZS1iYXJdKSBtYWluIC5sYXlvdXQtY29udGVudC1yaWdodC1zaWRlYmFyIC5yaWdodCB7XG4gICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxuICBib2R5Om5vdChbZGF0YS1jb21wb25lbnRzKj1zaWRlLWJhcl0pIG1haW4gLmxheW91dC1jb250ZW50LXJpZ2h0LXNpZGViYXIsIGJvZHk6bm90KFtkYXRhLWNvbXBvbmVudHMqPXNpZGUtYmFyXSkgbWFpbiAubGF5b3V0LWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpO1xuICB9XG59XG5cbi5jb250ZW50LWJsb2NrID4gKiB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDcwMXB4KSB7XG4gIC5jb250ZW50LWJsb2NrIHtcbiAgICAtLWNvbHVtbi1jb3VudDogNjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS0yIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTMge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtNCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS01IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDU7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTYge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gNjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0yIHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTMge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItNCB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiA0O1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi01IHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDU7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTEge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTMtMiB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0zIHtcbiAgICBncmlkLWNvbHVtbjogMy9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTQge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gNDtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDQvc3BhbiAxO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0yIHtcbiAgICBncmlkLWNvbHVtbjogNC9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTMge1xuICAgIGdyaWQtY29sdW1uOiA0L3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTUtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDUvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0yIHtcbiAgICBncmlkLWNvbHVtbjogNS9zcGFuIDI7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC02LTEge1xuICAgIGdyaWQtY29sdW1uOiA2L3NwYW4gMTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDcwMHB4KSBhbmQgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gIC5jb250ZW50LWJsb2NrIHtcbiAgICAtLWNvbHVtbi1jb3VudDogNDtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS00IHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDM7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTQtMyB7XG4gICAgZ3JpZC1jb2x1bW46IDMvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTYge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMi0zLFxuICAuY29udGVudC1ibG9jayAuY29sLTItNCxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTUge1xuICAgIGdyaWQtY29sdW1uOiAyLy0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMy0yLFxuICAuY29udGVudC1ibG9jayAuY29sLTMtMyxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTQge1xuICAgIGdyaWQtY29sdW1uOiAzLy0xO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNC0xLFxuICAuY29udGVudC1ibG9jayAuY29sLTQtMixcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC01LTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNi0xIHtcbiAgICBncmlkLWNvbHVtbjogNC8tMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTUtMiB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDY5OXB4KSB7XG4gIC5jb250ZW50LWJsb2NrIHtcbiAgICAtLWNvbHVtbi1jb3VudDogMjtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTEtMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0zLTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNS0xIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxuICAuY29udGVudC1ibG9jayAuY29sLTItMSxcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC00LTEsXG4gIC5jb250ZW50LWJsb2NrIC5jb2wtNi0xIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNjk5cHgpIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuY29udGVudC1ibG9jayAuY29sLTEtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0xLTUgKyAuY29sLTYtMSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDY5OXB4KSBhbmQgKG1pbi13aWR0aDogNTAxcHgpIHtcbiAgLmNvbnRlbnQtYmxvY2sgLmNvbC0yLTUge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG4gIC5jb250ZW50LWJsb2NrIC5jb2wtMS01IHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgfVxufVxuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZXIwKSArIHZhcigtLWdhcCkpIDA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTAxMjRkO1xuICB6LWluZGV4OiA1O1xuICBnYXA6IHZhcigtLWd1dHRlcjEpO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnM6IHZhcigtLWdhcCk7XG4gIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiB3aGl0ZTtcbiAgLS1tYXJrZXItbGluZS10aGlja25lc3M6IDNweDtcbiAgLS1zcGFjZXItbGluZS10aGlja25lc3M6IDFweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBuYXZpZ2F0aW9uLWJhciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgei1pbmRleDogLTE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHJhbnNsYXRlWCwgLTUwJSkpO1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxubmF2aWdhdGlvbi1iYXIgPiAqOm5vdCguaW1hZ2UpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuYm9keVtkYXRhLWNvbXBvbmVudHMqPWJhY2tncm91bmQtaW1hZ2VdIG5hdmlnYXRpb24tYmFyLmhpZGUtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG59XG5ib2R5W2RhdGEtY29tcG9uZW50cyo9YmFja2dyb3VuZC1pbWFnZV0gbmF2aWdhdGlvbi1iYXIuaGlkZS1iYWNrZ3JvdW5kOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ib2R5W2RhdGEtY29tcG9uZW50cyo9YmFja2dyb3VuZC12aWRlb10gbmF2aWdhdGlvbi1iYXIuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgYmFja2dyb3VuZDogaW5pdGlhbDtcbn1cbmJvZHlbZGF0YS1jb21wb25lbnRzKj1iYWNrZ3JvdW5kLXZpZGVvXSBuYXZpZ2F0aW9uLWJhci5oaWRlLWJhY2tncm91bmQ6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbm5hdmlnYXRpb24tYmFyLmludmVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiAjMTMxZjZiO1xufVxubmF2aWdhdGlvbi1iYXIuaW52ZXJ0OjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIuaW52ZXJ0IGEubG9nbyBpbWdbc3JjKj1cInRhZ2xpbmUuc3ZnXCJdIHtcbiAgZmlsdGVyOiBpbnZlcnQoMC45KTtcbn1cbm5hdmlnYXRpb24tYmFyIGEubG9nbyB7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIG1heC13aWR0aDogMjgwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBhc3BlY3QtcmF0aW86IDM3MS85Nztcbn1cbm5hdmlnYXRpb24tYmFyIGEubG9nbzpoYXMoc3ZnLm5vLXRhZ2xpbmVzKSB7XG4gIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbn1cbjpoYXMoaGVhZGVyLmRhcmspIG5hdmlnYXRpb24tYmFyOm5vdCguaW52ZXJ0KSBhLmxvZ28ge1xuICAtLWxvZ28tdGV4dC1jb2xvdXI6IHdoaXRlO1xufVxuXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmludmVydCkge1xuICAtLWxvZ28tdGV4dC1jb2xvdXI6IHdoaXRlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBnYXA6IDhweDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCA+IGxpLnRvcC1sZXZlbC1saW5rOm5vdCg6bnRoLWxhc3QtY2hpbGQoMikpOm5vdCg6bnRoLWxhc3QtY2hpbGQoMykpOm5vdCg6bGFzdC1vZi10eXBlKTo6YmVmb3JlLFxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgPiBsaTpub3QoOmxhc3Qtb2YtdHlwZSk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiB2YXIoLS1zcGFjZXItbGluZS10aGlja25lc3MpO1xuICBoZWlnaHQ6IDQwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogY2FsYygtMSAqIHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcykgLyAyKTtcbiAgdG9wOiAzMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwYWNlci1saW5lLWNvbG91ciwgI2RmMzAzNSk7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLnBlcnNvbmFsaXNlZCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1nYXApO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgLS1mb250LXNpemU6IDAuOGVtO1xuICAtLXBhZGRpbmc6IDRweCAxMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk0MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgICAtLWZvbnQtc2l6ZTogMTZweDtcbiAgICAtLXBhZGRpbmc6IDhweCAyMHB4O1xuICAgIC0taWNvbi1zaXplOiAyMHB4O1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQgc3ZnIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIC0taWNvbi1zaXplOiAxLjFlbTtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5wZXJzb25hbGlzZWQgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSArIHNlY29uZGFyeS1tZW51IHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHtcbiAgICB0b3A6IHVuc2V0O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIC5idXR0b24sXG4gIG5hdmlnYXRpb24tYmFyIG5hdiAucGVyc29uYWxpc2VkIHBlcnNvbmFsaXNlLWV4cGVyaWVuY2UgYS5idXR0b24ucGVyc29uYWxpc2VkIHtcbiAgICAtLXBhZGRpbmc6IDhweDtcbiAgICAtLWljb24tc2l6ZTogMC44ZW07XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgPiB1bCA+IGxpLnRvcC1sZXZlbC1saW5rICsgLnNlYXJjaCB7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgLmxpbmsgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNGVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICBmaWxsOiAjRkZGRkZGO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rIHN2Zzpub3QoLmFycm93LXJpZ2h0KTpub3QoLmFycm93LWxlZnQpIHtcbiAgaGVpZ2h0OiAwLjhlbTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiAubGluay5vdmVydmlldyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IC5saW5rIHN2Zyxcbm5hdmlnYXRpb24tYmFyIG5hdiAuYnV0dG9uIHN2ZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSB7XG4gIC0tZm9udC1zaXplOiAwLjk1ZW07XG4gIG9yZGVyOiAyO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGluayBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDNweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpICogMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91ciwgI2RmMzAzNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGluayBhLmFjdGl2ZTo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmsgYS5jdXJyZW50OjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkudG9wLWxldmVsLWxpbmtbZGF0YS1uYXY9bWVudV0ge1xuICBvcmRlcjogMTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS50b3AtbGV2ZWwtbGlua1tkYXRhLW5hdj1zdWJtZW51XSB7XG4gIG9yZGVyOiAyO1xuICBkaXNwbGF5OiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuc2VhcmNoIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLnNlYXJjaCBzcGFuIHtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5zZWFyY2gsIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5tZW51IHtcbiAgb3JkZXI6IDM7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKSAvIDIpO1xuICBsZWZ0OiAtMnB4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBhIHNwYW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSAudG9wLWxldmVsLWxpbmtzIGxpLmNhcnQgc3ZnIHtcbiAgb3JkZXI6IDE7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxubGkuY2FydCBhW2RhdGEtdG90YWxdOjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10b3RhbCk7XG4gIG1pbi13aWR0aDogMmNoO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmc6IDAgMC40ZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgaGVpZ2h0OiAyY2g7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbiAgY29sb3I6IHdoaXRlO1xuICBsaW5lLWhlaWdodDogMC4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgb3JkZXI6IDI7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBsaS5jYXJ0IGFbZGF0YS10b3RhbF06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gIH1cbiAgbGkuY2FydCBhW2RhdGEtdG90YWxdOmhvdmVyOjphZnRlciB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gIH1cbiAgbGkuY2FydCBhW2RhdGEtdG90YWxdOmhvdmVyIHN2ZyB7XG4gICAgZmlsbDogI2RmMzAzNTtcbiAgfVxufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbGkuY2FydCBhOm5vdChbZGF0YS10b3RhbF0pOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTMxZjZiO1xuICB9XG4gIGxpLmNhcnQgYTpub3QoW2RhdGEtdG90YWxdKTpob3Zlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjRkZGRkZGO1xuICB9XG4gIGxpLmNhcnQgYTpub3QoW2RhdGEtdG90YWxdKTpob3ZlciBzdmcge1xuICAgIGZpbGw6ICNkZjMwMzU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU1MHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUgLnRvcC1sZXZlbC1saW5rcyBsaS5jYXJ0IHN2ZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBhIHtcbiAgICBwYWRkaW5nOiA4cHggMjBweDtcbiAgfVxuICBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGlua3MgbGkuY2FydCBhIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmxvYWRpbmc6OmJlZm9yZSB7XG4gIC0tc2l6ZTogMTJweDtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgd2hpdGUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBtYWluLW1lbnUubG9hZGluZzpob3Zlcjo6YmVmb3JlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUge1xuICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9yZGVyOiAxO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgei1pbmRleDogNjtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogY2FsYyh2YXIoLS1nYXApICogLTEpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSBhIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaSBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwOTVmZjtcbiAgfVxufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDUwJTtcbiAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyBjYWxjKHZhcigtLWdhcCkgKiAyKSk7XG4gIHdpZHRoOiAyMDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCBjYWxjKHZhcigtLWdhcCkgKiAtMC41KSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudSBsaTpudGgtb2YtdHlwZSgxKSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IGxpOmxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IGEge1xuICBwYWRkaW5nOiBjYWxjKGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgLyAyKSB2YXIoLS1nYXApO1xuICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgY29sb3I6IHdoaXRlO1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IGEuYXNzZXQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxubmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51IGEuYXNzZXQgc3ZnIHtcbiAgb3JkZXI6IC0xO1xuICBtYXJnaW46IDAgMC40ZW0gMCAwO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAwLjRlbTtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpIC5zdWItbWVudVtkYXRhLWxldmVsPVwiMVwiXSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgb3JkZXI6IDEwMDtcbn1cbjpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgbmF2aWdhdGlvbi1iYXIgbmF2IHNlY29uZGFyeS1tZW51ID4gdWwgbGkgLnN1Yi1tZW51W2RhdGEtbGV2ZWw9XCIxXCJdIGxpOmZpcnN0LW9mLXR5cGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICBuYXZpZ2F0aW9uLWJhciBuYXYgc2Vjb25kYXJ5LW1lbnUgPiB1bCBsaTpob3ZlciA+IGEge1xuICAgIGNvbG9yOiAjMDA5NWZmO1xuICB9XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpOmhvdmVyIC5zdWItbWVudSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1cbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsIGxpOmxhc3Qtb2YtdHlwZSAuc3ViLW1lbnUge1xuICByaWdodDogY2FsYygxMDAlICsgdmFyKC0tZ2FwKSkgIWltcG9ydGFudDtcbn1cbm5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsID4gbGkuaGFzLWNoaWxkcmVuOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogY2FsYygxMDAlICsgMXB4KTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC01MCUgKyBjYWxjKHZhcigtLWdhcCkgKiAtMC41KSkpIHJvdGF0ZSg0NWRlZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwJSwgNTAlIDUwJSwgMCAxMDAlKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSA+IHVsID4gbGkuaGFzLWNoaWxkcmVuOmhvdmVyOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gIG5hdmlnYXRpb24tYmFyIHtcbiAgICAtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnM6IHZhcigtLWdhcCk7XG4gIH1cbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudSB7XG4gICAgLS1mb250LXNpemU6IDAuOWVtO1xuICB9XG59XG5uYXZpZ2F0aW9uLWJhciBsaS5tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUgc3ZnIGxpbmUge1xuICBzdHJva2Utd2lkdGg6IDNweDtcbiAgc3Ryb2tlOiB2YXIoLS10b3AtbGV2ZWwtbGluay1jb2xvdXIpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUgc3ZnIGxpbmU6bnRoLWNoaWxkKDEpIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTUlIDMwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpO1xufVxubmF2aWdhdGlvbi1iYXIgYnV0dG9uLm1lbnUgc3ZnIGxpbmU6bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51IHN2ZyBsaW5lOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE1JSA3MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKTtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51LmFjdGl2ZSBzdmcgbGluZTpudGgtY2hpbGQoMSkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5uYXZpZ2F0aW9uLWJhciBidXR0b24ubWVudS5hY3RpdmUgc3ZnIGxpbmU6bnRoLWNoaWxkKDIpIHtcbiAgb3BhY2l0eTogMDtcbn1cbm5hdmlnYXRpb24tYmFyIGJ1dHRvbi5tZW51LmFjdGl2ZSBzdmcgbGluZTpudGgtY2hpbGQoMykge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKSAwO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgbGkubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDQwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgLmJ1dHRvbi5zZWFyY2gge1xuICAgIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgICAtLXBhZGRpbmc6IDRweCAxMHB4O1xuICB9XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGxpLm1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBsaS5tZW51IGJ1dHRvbi5tZW51IHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gIH1cbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGEubG9nbyB7XG4gIG1heC13aWR0aDogaW5pdGlhbDtcbiAgd2lkdGg6IDIwMHB4O1xuICBtaW4td2lkdGg6IGluaXRpYWw7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGluayxcbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIG5hdiBzZWNvbmRhcnktbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4sXG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgbGlbZGF0YS1uYXY9c3VibWVudV0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuZHJvcGRvd24tbWVudSB7XG4gIC0tbWluLWhlaWdodDogNDMwcHg7XG4gIC0tbWF4LWhlaWdodDogNjAwcHg7XG4gIC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoOiAyNzBweDtcbiAgLS1kcm9wZG93bi1pbWFnZS13aWR0aDogMzAwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2UtaGVpZ2h0OiA4MHB4O1xuICAtLWRyb3Bkb3duLW9wZW4tb2Zmc2V0OiA2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgLSB2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpIC0gMXB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGgpIDFmcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksIG1hcmdpbi10b3AgMC4zcyBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpO1xuICBmb250LXNpemU6IDE2cHg7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmFjdGl2ZSAudG9wLWxldmVsLWxpbmtzIC50b3AtbGV2ZWwtbGluayAubGluay5jdXJyZW50OjphZnRlciB7XG4gIG9wYWNpdHk6IDA7XG59XG5uYXZpZ2F0aW9uLWJhciBuYXYgbWFpbi1tZW51LmFjdGl2ZSBkcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZHJvcGRvd24tb3Blbi1vZmZzZXQpO1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG5kcm9wZG93bi1tZW51OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbWFya2VyLWxpbmUtdGhpY2tuZXNzKSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwcHg7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tbWVudSB7XG4gIC0tZHJvcGRvd24tb3Blbi1vZmZzZXQ6IHZhcigtLWdhcCk7XG4gIHdpZHRoOiB2YXIoLS1kcm9wZG93bi1ncm91cC1uYXYtd2lkdGgpICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLW1lbnUge1xuICAgIC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoOiBjYWxjKDEwMHZ3IC0gdmFyKC0tZ3V0dGVyMykpICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuZHJvcGRvd24tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogMTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjBcIl0ge1xuICB6LWluZGV4OiA1O1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjFcIl0ge1xuICB6LWluZGV4OiA0O1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjJcIl0ge1xuICB6LWluZGV4OiAzO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICB6LWluZGV4OiAyO1xufVxuZHJvcGRvd24tZ3JvdXBbZGF0YS1sZXZlbD1cIjRcIl0ge1xuICB6LWluZGV4OiAxO1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDAuOWVtO1xuICBoZWlnaHQ6IDAuOWVtO1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTY5Njk1O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuZHJvcGRvd24tZ3JvdXA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5kcm9wZG93bi1ncm91cDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuZHJvcGRvd24tZ3JvdXAgLmxpbmsge1xuICAtLWZvbnQtc2l6ZTogMC45ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcGFkZGluZzogNHB4IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmRyb3Bkb3duLWdyb3VwIC5saW5rLmN1cnJlbnQge1xuICBjb2xvcjogI2RmMzAzNTtcbn1cbmRyb3Bkb3duLWdyb3VwIC5saW5rLmFjdGl2ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgei1pbmRleDogMTtcbn1cbjpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZHJvcGRvd24tZ3JvdXAgLmxpbmsuYWN0aXZlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgbGVmdDogY2FsYygxMDAlIC0gNTBweCk7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG59XG5cbjpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRyb3Bkb3duLWdyb3VwIC5sYXN0IC5saW5rLmFjdGl2ZTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpIHJvdGF0ZSgwZGVnKSBza2V3KC00NWRlZywgMCk7XG59XG5cbmRyb3Bkb3duLWdyb3VwIC5saW5rLmhhcy1jaGlsZHJlbiBzdmcge1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIGRyb3Bkb3duLWdyb3VwIC5saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgfVxufVxuZHJvcGRvd24tZ3JvdXAgdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuZHJvcGRvd24tZ3JvdXAgdWwgbGkuZmlyc3Qge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwKTtcbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLmxhc3Qge1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBkcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyB+IC5maXJzdCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3IC5saW5rIHtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcgLmxpbms6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuZHJvcGRvd24tZ3JvdXAgdWwgbGkub3ZlcnZpZXcgLmxpbmsuYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuOnJvb3Q6bm90KFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdKSBkcm9wZG93bi1ncm91cCB1bCBsaS5vdmVydmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLmJhY2sge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZ2FwKTtcbn1cbjpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZHJvcGRvd24tZ3JvdXAgdWwgbGkuYmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmRyb3Bkb3duLWdyb3VwIHVsIGxpLmJhY2sgLmxpbmsgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjRlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMVwiXSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMVwiXSBsaS5iYWNrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmRyb3Bkb3duLWdyb3VwW2RhdGEtbGV2ZWw9XCIyXCJdIHtcbiAgd2lkdGg6IDk1JTtcbiAgbGVmdDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG5kcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIHdpZHRoOiBjYWxjKDk1JSArIDJweCk7XG4gIG9wYWNpdHk6IDA7XG4gIGxlZnQ6IGNhbGMoMTk1JSAtIDFweCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01JSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3M7XG59XG5kcm9wZG93bi1ncm91cC5hbGxvdy1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuZHJvcGRvd24tZ3JvdXAuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbmRyb3Bkb3duLWdyb3VwLmFjdGl2ZVtkYXRhLWxldmVsPVwiMlwiXSwgZHJvcGRvd24tZ3JvdXAuYWN0aXZlW2RhdGEtbGV2ZWw9XCIzXCJdIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbn1cbmRyb3Bkb3duLWdyb3VwOm5vdCguYWN0aXZlKVtkYXRhLWxldmVsPVwiMVwiXSwgZHJvcGRvd24tZ3JvdXA6bm90KC5hY3RpdmUpW2RhdGEtbGV2ZWw9XCIyXCJdLCBkcm9wZG93bi1ncm91cDpub3QoLmFjdGl2ZSlbZGF0YS1sZXZlbD1cIjNcIl0ge1xuICBsZWZ0OiAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbn1cbmJvZHk6bm90KC5tb2JpbGUpIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwOm5vdChbZGF0YS1sZXZlbD1cIjFcIl0pIC5saW5rIHtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgZHJvcGRvd24tZ3JvdXAge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpIHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCkgMCAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cywgMC41cztcbiAgdHJhbnNmb3JtOiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMFwiXSB7XG4gIHotaW5kZXg6IDE7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMVwiXSB7XG4gIHotaW5kZXg6IDI7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiMlwiXSB7XG4gIHotaW5kZXg6IDM7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiM1wiXSB7XG4gIHotaW5kZXg6IDQ7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cFtkYXRhLWxldmVsPVwiNFwiXSB7XG4gIHotaW5kZXg6IDU7XG59XG5ib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cCAubGluayB7XG4gIC0tZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWdyb3VwIHVsIGxpLm92ZXJ2aWV3LCBib2R5Lm1vYmlsZSBuYXZpZ2F0aW9uLWJhciBkcm9wZG93bi1ncm91cCB1bCBsaS5iYWNrIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuZHJvcGRvd24taW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgZ3JpZC1jb2x1bW46IDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1pdGVtczogZmxleC1lbmQ7XG59XG5kcm9wZG93bi1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmRyb3Bkb3duLWltYWdlIC5pbWFnZSB7XG4gIHdpZHRoOiBjbGFtcCh2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkgLyAyLCAzMHZ3LCB2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkpO1xuICBncmlkLXJvdzogMTtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIG9wYWNpdHk6IDA7XG59XG5kcm9wZG93bi1pbWFnZSAuaW1hZ2UuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbmRyb3Bkb3duLWltYWdlIC5pbWFnZS5hY3RpdmUgaW1nIHtcbiAgb3BhY2l0eTogMTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWltYWdlIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5pdGlhbDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbmJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyIGRyb3Bkb3duLWltYWdlIC5pbWFnZSB7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbn1cbi5oZWFkZXIgPiBoMSBzdXAge1xuICBmb250LXNpemU6IDAuNmVtO1xufVxuLmhlYWRlciA+IGgxIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjM3NWVtO1xuICBjb2xvcjogIzk2OTY5NTtcbn1cbi5oZWFkZXIgPiBoMSArICosIC5oZWFkZXIgPiBoMiArICoge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5oZWFkZXIgPiBoMSArIGgyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMCk7XG59XG4uaGVhZGVyID4gaDIge1xuICBjb2xvcjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5oZWFkZXIgPiBoMiBhIHtcbiAgLS1mb250LWNvbG91cjogdmFyKC0tc3ViLWhlYWRpbmctY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuaGVhZGVyID4gaDIgYTpob3ZlciB7XG4gICAgLS1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIH1cbn1cbi5oZWFkZXIgdGltZSB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG1hcmdpbjogdmFyKC0tZ3V0dGVyMSkgMDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdGFnLWNvbG91ciwgI2RmMzAzNSk7XG59XG4uaGVhZGVyIGJ1dHRvbi1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAtMSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5oZWFkZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHNwYW4ge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIH1cbn1cbi5oZWFkZXIgbm90aWNlLW1lc3NhZ2VzIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMCk7XG59XG4uaGVhZGVyLmRhcmsge1xuICAtLWhlYWRpbmctY29sb3VyOndoaXRlO1xuICAtLXN1Yi1oZWFkaW5nLWNvbG91cjp3aGl0ZTtcbn1cbi5oZWFkZXIuZGFyayAuYnV0dG9uLmJyb2NodXJlIHtcbiAgLS1mb250LWNvbG91cjp3aGl0ZTtcbn1cbi5oZWFkZXIuZGFyayAuYnV0dG9uLmJyb2NodXJlIHN2ZyB7XG4gIGZpbGw6IHdoaXRlO1xufVxuLmhlYWRlci5uby1kZXZpZGVyLWxpbmUgfiBtYWluIHtcbiAgLS1ib3JkZXItdG9wLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLmhlYWRlci5uby1kZXZpZGVyLWxpbmUgfiBtYWluID4gLmNvbnRlbnQtYmxvY2s6Zmlyc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xufVxuXG5mb290ZXIjZm9vdGVyIHtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDMwMHB4O1xufVxuZm9vdGVyI2Zvb3RlciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZm9vdGVyI2Zvb3RlciBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWxpZ2h0LCAjZTQ0ZjUzKTtcbiAgfVxufVxuZm9vdGVyI2Zvb3RlciBhLmN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWxpZ2h0LCAjZTQ0ZjUzKTtcbn1cbmZvb3RlciNmb290ZXIgYS5jdXJyZW50IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5mb290ZXIjZm9vdGVyIC5iYWNrLXRvLXRvcCB7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgbWFyZ2luOiBjYWxjKHZhcigtLWdhcCkgKiAtMSkgYXV0byB2YXIoLS1nYXApIGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFjay10by10b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbmZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbiAgZm9udC1zaXplOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5Ac3VwcG9ydHMgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUgc3BhbiB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxMnB4LCAxLjV2dywgMC40ZW0pO1xuICB9XG59XG5Ac3VwcG9ydHMgbm90ICh3aWR0aDogY2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NTBweCkge1xuICAgIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTYwMXB4KSB7XG4gICAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDAuNGVtO1xuICAgIH1cbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAudGFnLWxpbmUtc2lnbi1vZmYgdGFnLWxpbmUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLnRhZy1saW5lLXNpZ24tb2ZmIHRhZy1saW5lIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjEpO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5mb290ZXIjZm9vdGVyID4gbmF2IHVsIGxpICsgbGkge1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuZm9vdGVyI2Zvb3RlciA+IG5hdiB1bDpsYXN0LW9mLXR5cGUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMzM3B4LCAxZnIpKTtcbiAgZ3JpZC1nYXA6IDAgdmFyKC0tZ2FwKTtcbn1cbmZvb3RlciNmb290ZXIgPiBuYXYgdWw6bGFzdC1vZi10eXBlIGxpOmZpcnN0LW9mLXR5cGUge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbmZvb3RlciNmb290ZXIgLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5mb290ZXIjZm9vdGVyIC5oZWFkaW5nOjpiZWZvcmUsIGZvb3RlciNmb290ZXIgLmhlYWRpbmc6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvb3RlciNmb290ZXIgLmhlYWRpbmcgYSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW5tO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBncmlkLWdhcDogY2FsYyh2YXIoLS1nYXApICogMC41KSB2YXIoLS1nYXApO1xufVxuZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgc21hbGwsXG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyAuc21hbGwge1xuICBmb250LXNpemU6IDAuNjI1ZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5mb290ZXIjZm9vdGVyIGNvbXBhbnktZGV0YWlscyBzbWFsbCBicixcbmZvb3RlciNmb290ZXIgY29tcGFueS1kZXRhaWxzIC5zbWFsbCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmZvb3RlciNmb290ZXIgLmJhc2UgYS5sb2dvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjQwcHg7XG4gIHBvc2l0aW9uOiBpbml0aWFsO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ28gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ286OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZvb3Rlci1ici1jb2xvdXIsICNkZjMwMzUpO1xuICAgIGhlaWdodDogM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xLjVweDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGEueWVsbG8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgdmFyKC0tZ2FwKSk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgcmlnaHQ6IDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvOmhvdmVyIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLnllbGxvOmhvdmVyIHNwYW4ge1xuICAgIGNvbG9yOiAjRkZDQjA4O1xuICB9XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlIGFkbWluLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpO1xuICBsZWZ0OiAwO1xufVxuZm9vdGVyI2Zvb3RlciAuYmFzZSBhZG1pbi1saW5rcyBhIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIHtcbiAgLS1sb2dvLXNwYWNlcjogMjAwcHg7XG59XG5mb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEpIGludmVydCgxKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWxvZ28tc3BhY2VyKTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgY2FsYyh2YXIoLS1nYXApICogMikpO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogY2FsYyh2YXIoLS1sb2dvLXNwYWNlcikgKiAtMSk7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBmb290ZXIjZm9vdGVyIC5iYXNlOmhhcyguY2VwLWxvZ28pIC5jZXAtbG9nbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgZm9vdGVyI2Zvb3RlciA+IG5hdiB1bDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciBjb21wYW55LWRldGFpbHMgc21hbGwgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBmb290ZXIjZm9vdGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBmb290ZXIjZm9vdGVyID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciA+IG5hdiB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBmb290ZXIjZm9vdGVyID4gbmF2IHVsOmxhc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgZm9vdGVyI2Zvb3RlciAuYmFzZSBhLmxvZ28ge1xuICAgIG9yZGVyOiAxO1xuICAgIHdpZHRoOiAxNjBweDtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIGEubG9nbyBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBmb290ZXIjZm9vdGVyIC5iYXNlIHNvY2lhbC1tZWRpYSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMC0pO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xuICB9XG4gIGZvb3RlciNmb290ZXIgLmJhc2UgYWRtaW4tbGlua3Mge1xuICAgIG9yZGVyOiAzO1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG4gIH1cbn1cblxuLmNsLWNvbnNlbnQtc2V0dGluZ3Mge1xuICBsZWZ0OiB1bnNldCAhaW1wb3J0YW50O1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS1ndXR0ZXIzKSAqIDIuNzUpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgLmNsLWNvbnNlbnQtc2V0dGluZ3Mge1xuICAgIGJvdHRvbTogdmFyKC0tZ3V0dGVyNSkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcG9zaXRpb24sIGNlbnRlciAzMyUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxMzFmNmI7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICMyOTJiNjg7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwLjc7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pKTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLm5vbmU6OmFmdGVyIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLWltYWdlLnJlZCB7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICNkZjMwMzU7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICNkZjMwMzU7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS5ibGFjayB7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxZTFjMWM7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286ICMxZTFjMWM7XG59XG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZS50aWxlIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBhdXRvO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UudGlsZSBpbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2U6bm90KC50aWxlKSB7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xufVxuYm9keSA+IGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBibGFjayAyMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xufVxuXG5ib2R5Lm1vYmlsZSA+IGJhY2tncm91bmQtaW1hZ2UsIGJvZHkubW9iaWxlID4gYmFja2dyb3VuZC12aWRlbyB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG59XG5cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB2YXIoLS1wb3NpdGlvbiwgY2VudGVyIDMzJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IHZhcigtLWltYWdlLXBvc2l0aW9uLCBjZW50ZXIgMzMuMzMlKTtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuICBtYXgtd2lkdGg6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcbiAgbWF4LWhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8gdmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG4gIHdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIGhlaWdodDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2UtaGVpZ2h0LXNpemUsIDEwMCUpKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS13aWR0aC1zaXplLCAxMDAlKSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbmJvZHkgPiBiYWNrZ3JvdW5kLXZpZGVvOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSwgdHJhbnNwYXJlbnQpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bywgYmxhY2spKTtcbn1cblxuI2JyZWFkY3J1bWJzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIHRvcCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbiNicmVhZGNydW1icy1iYXIgdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbiAgd2lkdGg6IDEwMCU7XG59XG4jYnJlYWRjcnVtYnMtYmFyIHVsIGxpIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2JyZWFkY3J1bWJzLWJhciB1bCBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIC0xKTtcbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMTI1ZW07XG4gIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2JyZWFkY3J1bWJzLWJhciAubGluayBzdmcge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMC43ZW07XG4gIGhlaWdodDogMC43ZW07XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgI2JyZWFkY3J1bWJzLWJhciAubGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbiNicmVhZGNydW1icy1iYXIgLmxpbmsuY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxuI2JyZWFkY3J1bWJzLWJhciAubGluay5jdXJyZW50OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbmJvZHkubW9iaWxlID4gI2JyZWFkY3J1bWJzLWJhciB7XG4gIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNhbmNob3JzLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdG9wIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuI2FuY2hvcnMtYmFyIC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTY4MHB4KSB7XG4gIDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgI2FuY2hvcnMtYmFyIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjItKTtcbiAgfVxuICA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pICNhbmNob3JzLWJhciAuY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIH1cbn1cblxuOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSAjYW5jaG9ycy1iYXIge1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tZ3V0dGVyMikgKyBjYWxjKHZhcigtLWdhcCkgKiAwLjUpKTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjEtKTtcbn1cbjpyb290W2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0gI2FuY2hvcnMtYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiBpbml0aWFsO1xufVxuOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSAjYW5jaG9ycy1iYXIgLmNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xufVxuXG4jYW5jaG9ycy1iYXI6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xufVxuI2FuY2hvcnMtYmFyIGEge1xuICBncmlkLXJvdzogMTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiAjMTMxZjZiO1xufVxuI2FuY2hvcnMtYmFyIGEgKyBhIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWd1dHRlcjEpO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgI2FuY2hvcnMtYmFyIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG4jYW5jaG9ycy1iYXIgYTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpIDAuMnM7XG59XG4jYW5jaG9ycy1iYXIgYS5jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG59XG4jYW5jaG9ycy1iYXIgYS5jdXJyZW50OjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xufVxuXG5zaWRlLWJhciA+IGRpdiA+ICoge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB2YXIoLS1wcmltYXJ5LCAjMTMxZjZiKTtcbiAgb3JkZXI6IDM7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSk7XG59XG5zaWRlLWJhciA+IGRpdiA+ICo6bm90KC53aGl0ZSkge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG59XG5zaWRlLWJhciA+IGRpdiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIge1xuICBvcmRlcjogMTtcbn1cbnNpZGUtYmFyID4gZGl2IHNlcnZpY2UtY2VudHJlLWZpbmRlciB+ICNncmFkZXMtc2lkZWJhci1saXN0IHtcbiAgb3JkZXI6IDI7XG59XG5zaWRlLWJhciA+IGRpdiAuaGVhZGluZyB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjApO1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuc2lkZS1iYXIgPiBkaXYgPiBkaXYuc2lkZWJhci1sb2dvcyB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnJlbTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5zaWRlLWJhciA+IGRpdiA+IGRpdi5zaWRlYmFyLWxvZ29zIGltZyB7XG4gIG1heC13aWR0aDogNTAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuc2lkZS1iYXIgPiBkaXYgPiBkaXYuc2lkZWJhci1sb2dvcyBzdmcge1xuICBtYXgtd2lkdGg6IDE1MHB4O1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyxcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSxcbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBoMyBzcGFuLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGgzIHNwYW4sXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgaDMgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIGRpdixcbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBkaXYsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgZGl2IHtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5iYWNrZ3JvdW5kLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5iYWNrZ3JvdW5kLFxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5iYWNrZ3JvdW5kIHtcbiAgb3BhY2l0eTogMC4yO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogMTAwJSAwJTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2UgaW1nLFxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5pbWFnZSBpbWcsXG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIgLmltYWdlIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5zaWRlLWJhciAjbGliZXJ0eS1wb3dkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbn1cbnNpZGUtYmFyICNsaWJlcnR5LXBvd2RlciAuaW1hZ2Uge1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xufVxuc2lkZS1iYXIgI2xpYmVydHktcG93ZGVyIC5pbWFnZSBpbWcge1xuICB3aWR0aDogYXV0bztcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyB7XG4gIGJhY2tncm91bmQ6ICMzMzMyMzY7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogMjI1cHg7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyBoMyBzcGFuIHtcbiAgY29sb3I6ICNkZjMwMzU7XG59XG5zaWRlLWJhciAjcG93ZGVyLXR1YnMgLmJhY2tncm91bmQge1xuICBvcGFjaXR5OiAxO1xufVxuc2lkZS1iYXIgI3Bvd2Rlci10dWJzIC5pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDI1MHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbnNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gIHNpZGUtYmFyICNwb3dkZXItdHVicyBoMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDMwMHB4O1xuICB9XG4gIHNpZGUtYmFyICNwb3dkZXItdHVicyAuaW1hZ2Uge1xuICAgIGhlaWdodDogMzUwcHg7XG4gIH1cbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB7XG4gIC0tZ3JlZW5lci1ncmVlbjogIzRlY2IzZDtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSBoMyB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIGgzIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIC5pbWFnZSB7XG4gIGhlaWdodDogOTBweDtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSAuaW1hZ2UgaW1nIHtcbiAgd2lkdGg6IGF1dG87XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuc2lkZS1iYXIgI2dyZWVuZXItZnV0dXJlIHVsIGxpIHtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG5zaWRlLWJhciAjZ3JlZW5lci1mdXR1cmUgdWwgbGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JlZW5lci1ncmVlbik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogMDtcbiAgY29udGVudDogXCJcIjtcbn1cbnNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCBsaTphZnRlciB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDZweDtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA3cHg7XG4gIHRvcDogNnB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEyMHB4KSB7XG4gIHNpZGUtYmFyICNncmVlbmVyLWZ1dHVyZSB1bCB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3Njc2NztcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXJlbSBib3R0b207XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIwKTtcbn1cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHAge1xuICBmb250LXNpemU6IDJyZW07XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuQG1lZGlhICh3aWR0aCA+IDE0MDBweCkge1xuICAuc2lkZWJhci1ibG9ja1xcOmxvY2FsLWN0YSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy91cGxvYWRzL2ltYWdlcy8yMG1waC1zaWduLnBuZ1wiKTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTYwcHg7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2tcXDppc28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzRiZjAzO1xuICBib3JkZXI6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2lkZWJhci1ibG9ja1xcOmlzbyBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnNvY2lhbC1tZWRpYSB7XG4gIC0taWNvbi1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taWNvbi1zaXplOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuc29jaWFsLW1lZGlhIGEge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tZ2FwKTtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuc29jaWFsLW1lZGlhIGEgc3ZnIHtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgZmlsbDogdmFyKC0taWNvbi1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmZhY2Vib29rIHtcbiAgICAtLWljb24tY29sb3VyOiAjMTg3N2YyO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnR3aXR0ZXIge1xuICAgIC0taWNvbi1jb2xvdXI6ICMxZGExZjI7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuZ29vZ2xlIHtcbiAgICAtLWljb24tY29sb3VyOiAjNDI4NWY0O1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnlvdXR1YmUge1xuICAgIC0taWNvbi1jb2xvdXI6ICNmZjAwMDA7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIubGlua2VkaW4ge1xuICAgIC0taWNvbi1jb2xvdXI6ICMwMDdiYjU7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIuaW5zdGFncmFtIHtcbiAgICAtLWljb24tY29sb3VyOiAjYzMyYWEzO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnBpbnRlcmVzdCB7XG4gICAgLS1pY29uLWNvbG91cjogI2JkMDgxYztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5kYWlseW1vdGlvbiB7XG4gICAgLS1pY29uLWNvbG91cjogIzAwNjZEQztcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5zbmFwY2hhdCB7XG4gICAgLS1pY29uLWNvbG91cjogI2ZmZmMwMDtcbiAgfVxuICBzb2NpYWwtbWVkaWEgYTpob3Zlci5mbGlja3Ige1xuICAgIC0taWNvbi1jb2xvdXI6ICNmNDAwODM7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIudmltZW8ge1xuICAgIC0taWNvbi1jb2xvdXI6ICMxYWI3ZWE7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIudGh1bWJsZXIge1xuICAgIC0taWNvbi1jb2xvdXI6ICMzNTQ2NWQ7XG4gIH1cbiAgc29jaWFsLW1lZGlhIGE6aG92ZXIucmVkZGl0IHtcbiAgICAtLWljb24tY29sb3VyOiAjZmY0NTAwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLndoYXRzYXBwIHtcbiAgICAtLWljb24tY29sb3VyOiAjMjVkMzY2O1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLnNreXBlIHtcbiAgICAtLWljb24tY29sb3VyOiAjMDBhZmYwO1xuICB9XG4gIHNvY2lhbC1tZWRpYSBhOmhvdmVyLmRpc2NvcmQge1xuICAgIC0taWNvbi1jb2xvdXI6ICM3Mjg5ZGE7XG4gIH1cbn1cbnNvY2lhbC1tZWRpYSBhIHNwYW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYXJ0aWNsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjRmNGY0O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiAxLjVyZW07XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyID4gKiB7XG4gIG9yZGVyOiAyO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS41NjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciAuc3ViaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGNvbG9yOiB2YXIoLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXIsICM2YTZhNmEpO1xuICBtYXgtd2lkdGg6IDc1Y2g7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5zdWJoZWFkaW5nICsgLnRpbWVzdGFtcCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5pbnRyb2R1Y3Rpb24ge1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIG1heC13aWR0aDogNzVjaDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmJ1dHRvbiB7XG4gIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cbi5hcnRpY2xlIC5jb250YWluZXI6aGFzKC5hdXRob3IpIC5hdXRob3Ige1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBib3JkZXItdG9wOiB2YXIoLS1ndXR0ZXIwKSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5hcnRpY2xlIC5jb250YWluZXI6aGFzKC5hdXRob3IpIC5idXR0b24ge1xuICBtYXJnaW4tdG9wOiBpbml0aWFsO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciB0aW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciB7XG4gIC0tcGhvdG8tc2l6ZTogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAubmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzEzMWY2YjtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBvcmRlcjogMTtcbiAgbWluLWhlaWdodDogdmFyKC0tcGhvdG8tc2l6ZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLm5hbWUgZW0ge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLnRpbWVzdGFtcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3JkZXI6IDI7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLnRpbWVzdGFtcCxcbi5hcnRpY2xlIC5jb250YWluZXIgLmF1dGhvciAudGltZXN0YW1wIH4gLm5hbWUge1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXBob3RvLXNpemUpIC8gMik7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLmltYWdlIHtcbiAgd2lkdGg6IHZhcigtLXBob3RvLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXBob3RvLXNpemUpO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tcGhvdG8tc2l6ZSkgLyAyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG59XG4uYXJ0aWNsZSAuY29udGFpbmVyIC5hdXRob3IgLmltYWdlIH4gKiB7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1waG90by1zaXplKSArIHZhcigtLWdhcCkpO1xufVxuLmFydGljbGUgLmNvbnRhaW5lciA+IC5pbWFnZSB7XG4gIG9yZGVyOiAxO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbiAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQsIDE4MHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWd1dHRlcjMpKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1ndXR0ZXIxLSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLWd1dHRlcjEtKTtcbn1cbi5hcnRpY2xlLmJnLWJsdWU6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctYmx1ZTpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIC50ZXh0LFxuLmFydGljbGUuYmctYmx1ZTpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIC5uYW1lIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1yZWQ6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZjMwMzU7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctcmVkOm5vdCguY2VudHJlLXN0YWNrZWQpIC5jb250YWluZXIgLnRleHQsXG4uYXJ0aWNsZS5iZy1yZWQ6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAubmFtZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctZ3JleTpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgLS1oZWFkaW5nLWNvbG91cjogdmFyKC0tc2Vjb25kYXJ5KTtcbn1cbi5hcnRpY2xlLmJnLXllbGxvdzpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjRkYjtcbn1cbi5hcnRpY2xlLmJnLW9yYW5nZTpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmEwMDtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1vcmFuZ2U6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAudGV4dCxcbi5hcnRpY2xlLmJnLW9yYW5nZTpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIC5uYW1lIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1ncmVlbjpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwYmMwODtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1ncmVlbjpub3QoLmNlbnRyZS1zdGFja2VkKSAuY29udGFpbmVyIC50ZXh0LFxuLmFydGljbGUuYmctZ3JlZW46bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciAubmFtZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmFydGljbGUuYmctYmxhY2s6bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTFjMWM7XG59XG4uYXJ0aWNsZS5iZy1wcmltYXJ5IC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0taGVhZGluZy1jb2xvdXI6ICNGRkZGRkY7XG59XG4uYXJ0aWNsZS5iZy1zZWNvbmRhcnkgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWhlYWRpbmctY29sb3VyOiAjRkZGRkZGO1xufVxuLmNvbnRlbnQtYmxvY2suYmxhY2sgYXJ0aWNsZS1saXN0IC5hcnRpY2xlIC5jb250YWluZXIge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICNGRkZGRkY7XG59XG4uY29udGVudC1ibG9jay5ibGFjayBhcnRpY2xlLWxpc3QgLmFydGljbGUgLmNvbnRhaW5lciAuYnV0dG9uIHtcbiAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICMxZTFjMWM7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWhvdmVyLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xufVxuLmNvbnRlbnQtYmxvY2suYmxhY2sgYXJ0aWNsZS1saXN0LmNvbHVtbnMtMiB7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDFweCkge1xuICAuY29udGVudC1ibG9jay5ibGFjayBhcnRpY2xlLWxpc3QuY29sdW1ucy0yIHtcbiAgICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgfVxufVxuXG4uYXJ0aWNsZTpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkgZGl2LmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmFydGljbGU6aGFzKGRpdi5jb250YWluZXIgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQpIGRpdi5jb250YWluZXI6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIH1cbn1cbi5hcnRpY2xlOmhhcyhkaXYuY29udGFpbmVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkKSBidXR0b24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGluaXRpYWw7XG59XG4uYXJ0aWNsZTpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uOm9ubHktY2hpbGQge1xuICBwb3NpdGlvbjogaW5pdGlhbDtcbn1cbi5hcnRpY2xlOmhhcyhkaXYuY29udGFpbmVyIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbjpvbmx5LWNoaWxkKSBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMjtcbn1cbi5hcnRpY2xlIGEuY29udGFpbmVyIHtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLmFydGljbGUgYS5jb250YWluZXI6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIH1cbn1cbi5hcnRpY2xlIGJ1dHRvbi1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5hcnRpY2xlIGJ1dHRvbi1jb250YWluZXIgLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogc21hbGw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hcnRpY2xlLnVuY3JvcHBlZC1pbWFnZSAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hcnRpY2xlLnVuY3JvcHBlZC1pbWFnZSAuaW1hZ2UgaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMCk7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cbmFydGljbGUtbGlzdDpoYXMoLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlKSB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5hcnRpY2xlLmRpci1ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5hcnRpY2xlLmRpci1ydGwgLmNvbnRlbnQgPiAqIHtcbiAgZGlyZWN0aW9uOiBsdHI7XG59XG4uYXJ0aWNsZTpub3QoW2NsYXNzKj1iZy1dKSB7XG4gIC0tZGl2aWRlci1saW5lLWNvbG91cjogI2Y0ZjRmNDtcbn1cbi5hcnRpY2xlLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlIC5jb250YWluZXIge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiAwO1xufVxuLmFydGljbGUuaW1hZ2UtdGV4dC1zaWRlLWJ5LXNpZGUgLmNvbnRhaW5lciAuY29udGVudCB7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbn1cbi5hcnRpY2xlLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlIC5jb250YWluZXIgLmltYWdlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDMzJTtcbiAgbWluLXdpZHRoOiAxMjBweDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWlubGluZS1lbmQ6IDFweCBzb2xpZCB2YXIoLS1kaXZpZGVyLWxpbmUtY29sb3VyLCAjZGNkY2RjKTtcbn1cbi5hcnRpY2xlLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlIC5jb250YWluZXIgLmltYWdlIGltZyB7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBtYXJnaW46IDA7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIC5jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lO1xufVxuLmFydGljbGUuY2VudHJlLXN0YWNrZWQgLmNvbnRhaW5lciAuY29udGVudCB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuLmFydGljbGUuY2VudHJlLXN0YWNrZWQgLmNvbnRhaW5lciAudGV4dCAqIHtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLmFydGljbGUuY2VudHJlLXN0YWNrZWQgLmltYWdlIHtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAwO1xuICBvcmRlcjogLTE7XG4gIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICBtYXgtaGVpZ2h0OiAxNDBweDtcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIC5pbWFnZSBpbWcge1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBtYXJnaW46IDA7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cbi5hcnRpY2xlLmNlbnRyZS1zdGFja2VkIGJ1dHRvbi1jb250YWluZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgcGFkZGluZy10b3A6IHZhcigtLWd1dHRlcjApO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEzMDFweCkge1xuICAuYXJ0aWNsZSArIC5jZW50cmUtc3RhY2tlZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogODAlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwJSk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTtcbiAgfVxufVxuLmFydGljbGVbZGF0YS1jb250YWlucyo9dGl0bGVdW2RhdGEtY29udGFpbnMqPXRpbWVzdGFtcF1bZGF0YS1jb250YWlucyo9YXV0aG9yXVtkYXRhLWNvbnRhaW5zKj1idXR0b25dW2RhdGEtY29udGFpbnMqPWltYWdlXTpub3QoW2RhdGEtY29udGFpbnMqPXN1YmhlYWRpbmddKTpub3QoW2RhdGEtY29udGFpbnMqPWludHJvZHVjdGlvbl0pIC5jb250YWluZXIgLnRpbWVzdGFtcCB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXRpdGxlXVtkYXRhLWNvbnRhaW5zKj1pbWFnZV06bm90KFtkYXRhLWNvbnRhaW5zKj10aW1lc3RhbXBdKTpub3QoW2RhdGEtY29udGFpbnMqPWF1dGhvcl0pOm5vdChbZGF0YS1jb250YWlucyo9YnV0dG9uXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1zdWJoZWFkaW5nXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1pbnRyb2R1Y3Rpb25dKSAuY29udGFpbmVyIC5oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5hcnRpY2xlW2RhdGEtY29udGFpbnMqPXRpdGxlXVtkYXRhLWNvbnRhaW5zKj1pbWFnZV06bm90KFtkYXRhLWNvbnRhaW5zKj10aW1lc3RhbXBdKTpub3QoW2RhdGEtY29udGFpbnMqPWF1dGhvcl0pOm5vdChbZGF0YS1jb250YWlucyo9YnV0dG9uXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1zdWJoZWFkaW5nXSk6bm90KFtkYXRhLWNvbnRhaW5zKj1pbnRyb2R1Y3Rpb25dKSAuY29udGFpbmVyID4gLmltYWdlIHtcbiAgLS1pbWFnZS1oZWlnaHQ6IDEzMHB4O1xufVxuXG4uYXJ0aWNsZVtkYXRhLWNvbnRhaW5zKj1zZXJ2aWNlQ2VudHJlc10gLmNvbnRhaW5lciBkaXYge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLmFydGljbGVbZGF0YS1jb250YWlucyo9c2VydmljZUNlbnRyZXNdIC5jb250YWluZXIgaDQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYXJ0aWNsZS5sYXlvdXQtdGV4dC1pbWFnZS1zaWRlLWJ5LXNpZGU6bm90KFtjbGFzcz1iZy1dKSAuY29udGFpbmVyLFxuLmFydGljbGUubGF5b3V0LXRleHQtaW1hZ2Utc2lkZS1ieS1zaWRlOm5vdChbY2xhc3M9YmctXSkgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xufVxuXG50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLWdhcCk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnRhZy1saW5lIHNwYW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDAuNWVtO1xuICBjb2xvcjogd2hpdGU7XG4gIGdyaWQtcm93OiAxO1xuICBsaW5lLWhlaWdodDogMjtcbn1cbnRhZy1saW5lIHN2ZyB7XG4gIGNvbG9yOiB2YXIoLS10YWdsaW5lLWljb24tY29sb3VyLCAjZGYzMDM1KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbn1cblxuc2lkZS1iYXIgZm9ybSAuZnJlZWZvcm0tZm9ybS1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUwYmMwODtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luOiAwIC0xNXB4IHZhcigtLWdhcCk7XG59XG5zaWRlLWJhciBmb3JtIC5zdWJtaXQtcm93IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cblxuZm9ybSBzZWxlY3Qge1xuICAtLWZvbnQtY29sb3VyOiAjNmE2YTZhO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjRkZGRkZGO1xuICAtLWJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIC0tYm9yZGVyLWNvbG91cjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmcpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIHZhcigtLWdhcCkpIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzFFMUMxQycgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnLyUzRSUzQy9zdmclM0VcIik7XG59XG5mb3JtIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbmZvcm0gc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbmZvcm0gc2VsZWN0OmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gc2VsZWN0LmF1dG9jb21wbGV0ZTpub3QoW3ZhbHVlPVwiXCJdKTpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKSB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6ICNGRkZGRkY7XG4gIC0tYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgLS1ib3JkZXItY29sb3VyOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tcGFkZGluZzogdmFyKC0tZ2FwKSB2YXIoLS1nYXApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjogdmFyKC0tYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOjpwbGFjZWhvbGRlciB7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuZm9ybSBpbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9cmFkaW9dKTpmb2N1cyB7XG4gIG91dGxpbmUtY29sb3I6ICMxMzFmNmI7XG59XG5mb3JtIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1yYWRpb10pOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmZvcm0gaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXJhZGlvXSkuYXV0b2NvbXBsZXRlOm5vdChbdmFsdWU9XCJcIl0pOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5mb3JtIHRleHRhcmVhIHtcbiAgLS1mb250LWNvbG91cjogIzZhNmE2YTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI0ZGRkZGRjtcbiAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAtLWJvcmRlci1jb2xvdXI6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1ib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgLS1wYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZvcm0gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZS1jb2xvcjogIzEzMWY2Yjtcbn1cbmZvcm0gdGV4dGFyZWE6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuZm9ybSB0ZXh0YXJlYS5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmZvcm0gaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlcixcbmZvcm0gdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1mb250LWNvbG91ciwgaW5oZXJpdCk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDBweCAxMDAwcHggdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsIHdoaXRlKSBpbnNldDtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gbGFiZWwgKyBkaXYge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbmZvcm1bZGF0YS1mcmVlZm9ybV0gLmZyZWVmb3JtLXJvdyArIC5mcmVlZm9ybS1yb3cgPiBkaXYge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuZm9ybVtkYXRhLWZyZWVmb3JtXSAuZnJlZWZvcm0tY29sdW1uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuc2lkZS1iYXIgZm9ybSBsYWJlbCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbnNpZGUtYmFyIGZvcm0gbGFiZWwgfiBkaXYge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmZvcm0jbG9naW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuZm9ybSNsb2dpbiA+IGxhYmVsIH4gbGFiZWwge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuZm9ybSNsb2dpbiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZm9ybSNsb2dpbiBkaXYgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkZjMwMzU7XG4gIH1cbn1cbmZvcm0jbG9naW4gYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ2FwKTtcbn1cblxuZm9ybSNyZXNldC1wYXNzd29yZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5mb3JtI3Jlc2V0LXBhc3N3b3JkIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG59XG5cbnJlcXVpcmVkLW5vdGljZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWNlLWNvbG91ciwgIzUwYmMwOCk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG59XG5yZXF1aXJlZC1ub3RpY2Ugc3BhbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiBjYWxjKDEwMCUgKyBjYWxjKHZhcigtLWdhcCkgKiAwLjUpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNHB4IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgLTUwJSk7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgcmVxdWlyZWQtbm90aWNlOmhvdmVyIHNwYW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWZvcm0tc3VjY2VzcyxcbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZm9ybS1lcnJvcnMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3MsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mcmVlZm9ybS1mb3JtLWVycm9ycyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWZvcm0tZXJyb3JzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2MDFweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzQwcHgsIDFmcikpO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdzpmaXJzdC1jaGlsZCB7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmZpcnN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5sYXN0LW5hbWUsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbXBhbnktbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmNvbnRhY3Qtbm8sIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5maXJzdC1uYW1lLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lmxhc3QtbmFtZSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5lbWFpbCxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5jb21wYW55LW5hbWUsXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29udGFjdC1ubyxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy55LXJxZzE4MWstZCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnksXG4gIGZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDIvc3BhbiA1O1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5zdWJtaXQtcm93LFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnN1Ym1pdC1yb3cge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgYnV0dG9uW3R5cGU9c3VibWl0XSxcbiAgZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgYnV0dG9uW3R5cGU9c3VibWl0XSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIH1cbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgaDIsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBoMiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGgyIHN2Zy5lbWFpbCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGgyIHN2Zy5lbWFpbCB7XG4gIHdpZHRoOiAxZW07XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG4gIGhlaWdodDogMWVtO1xuICBmaWxsOiAjZGYzMDM1O1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1jb2x1bW46IDEvc3BhbiAyO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWluc3RydWN0aW9ucyxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0taW5zdHJ1Y3Rpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5kZXRhaWxzb2ZlbnF1aXJ5IHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbixcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSAuZnJlZWZvcm0tY29sdW1uIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4sXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4ge1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsOm5vdCguZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCksXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93IC5mcmVlZm9ybS1jb2x1bW4gbGFiZWw6bm90KC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc2VydmljZS1jZW50cmUtY29udGFjdCwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmxlYWQtc3RhdHVzLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuaW50ZXJuYWwtbm90ZXMsIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5vcmRlci12YWx1ZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuc2VydmljZS1jZW50cmUtY29udGFjdCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cubGVhZC1zdGF0dXMsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmludGVybmFsLW5vdGVzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgLmZyZWVmb3JtLXJvdy5vcmRlci12YWx1ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwsXG5mb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIC5mb3JtLWZpZWxkcyBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBncmlkLWNvbHVtbjogMTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgbGFiZWwuZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCBpbnB1dCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQ6Y2hlY2tlZCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIGxhYmVsLmZyZWVmb3JtLWlucHV0LW9ubHktbGFiZWwgaW5wdXQ6Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MGJjMDg7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHNlbGVjdCxcbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZm9ybS1maWVsZHMgdGV4dGFyZWEsXG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHNlbGVjdCxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZvcm0tZmllbGRzIHRleHRhcmVhLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZm9ybS1maWVsZHMgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pIHtcbiAgLS1ib3JkZXItY29sb3VyOiBub25lO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSAuZnJlZWZvcm0tZXJyb3JzLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuZnJlZWZvcm0tZXJyb3JzIHtcbiAgY29sb3I6ICNkZjMwMzU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuNjI1ZW07XG4gIHBhZGRpbmc6IDJweCB2YXIoLS1nYXApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlIC0gNHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmMzAzNTtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gIGZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXSBidXR0b25bdHlwZT1zdWJtaXRdLFxuICBmb3JtW2RhdGEtaGFuZGxlPXBvd2RlckNvbnRhY3RdIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSxcbmZvcm1bZGF0YS1oYW5kbGU9cG93ZGVyQ29udGFjdF0gLmZyZWVmb3JtLWlucHV0W3JlcXVpcmVkXTpub3QoOnZhbGlkKSB+IHJlcXVpcmVkLW5vdGljZSB7XG4gIC0tbm90aWNlLWNvbG91cjogI2RmMzAzNTtcbn1cbmZvcm1bZGF0YS1oYW5kbGU9Y29udGFjdFVzXTpub3QoOnZhbGlkKSBidXR0b25bdHlwZT1zdWJtaXRdLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XTpub3QoOnZhbGlkKSBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjOTY5Njk1O1xuICAtLWJvcmRlci1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICM5Njk2OTU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG59XG5mb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLnNlcnZpY2UtY2VudHJlLFxuZm9ybVtkYXRhLWhhbmRsZT1wb3dkZXJDb250YWN0XSAuc2VydmljZS1jZW50cmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDFweCkge1xuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgzNDBweCwgMWZyKSk7XG4gIH1cbiAgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93OmZpcnN0LWNoaWxkIHtcbiAgICBncmlkLXJvdzogMTtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZmlyc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93Lmxhc3QtbmFtZSwgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LmVtYWlsLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29tcGFueS1uYW1lLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuY29udGFjdC1ubywgZm9ybVtkYXRhLWhhbmRsZT1jb250YWN0VXNdIC5mb3JtLWZpZWxkcyAuZnJlZWZvcm0tcm93LnktcnFnMTgxay1kLCBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cucHJvZHVjdCB7XG4gICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgfVxuICBmb3JtW2RhdGEtaGFuZGxlPWNvbnRhY3RVc10gLmZvcm0tZmllbGRzIC5mcmVlZm9ybS1yb3cuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgZ3JpZC1jb2x1bW46IDIvLTE7XG4gICAgZ3JpZC1yb3c6IDIvc3BhbiA2O1xuICB9XG59XG5cbmJvZHkjZWRpdCBmb3JtIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbn1cbmJvZHkjZWRpdCBmb3JtIC5zdWJtaXQtcm93IHtcbiAgb3JkZXI6IDIwO1xufVxuYm9keSNlZGl0IGZvcm0gLmZyZWVmb3JtLXJvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5LFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMsXG5ib2R5I2VkaXQgZm9ybSAuaW50ZXJuYWwtbm90ZXMsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5lbWFpbCAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxlYWQtc3RhdHVzIC5mcmVlZm9ybS1jb2x1bW4gdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAubGVhZC1zdGF0dXMgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5pbnRlcm5hbC1ub3RlcyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5vcmRlci12YWx1ZSAuZnJlZWZvcm0tY29sdW1uIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiBzZWxlY3QsXG5ib2R5I2VkaXQgZm9ybSAuc3VibWl0LXJvdyAuZnJlZWZvcm0tY29sdW1uIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnN1Ym1pdC1yb3cgLmZyZWVmb3JtLWNvbHVtbiBpbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cbmJvZHkjZWRpdCBmb3JtIC5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgZ3JpZC1yb3c6IDEvc3BhbiA2O1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUsXG5ib2R5I2VkaXQgZm9ybSAubGFzdC1uYW1lLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsLFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QsXG5ib2R5I2VkaXQgZm9ybSAuc2VydmljZS1jZW50cmUtY29udGFjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmZpcnN0LW5hbWUgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAuZmlyc3QtbmFtZSBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmxhc3QtbmFtZSB0ZXh0YXJlYSxcbmJvZHkjZWRpdCBmb3JtIC5sYXN0LW5hbWUgaW5wdXQsXG5ib2R5I2VkaXQgZm9ybSAuZW1haWwgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLmVtYWlsIGlucHV0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3Qgc2VsZWN0LFxuYm9keSNlZGl0IGZvcm0gLnByb2R1Y3QgdGV4dGFyZWEsXG5ib2R5I2VkaXQgZm9ybSAucHJvZHVjdCBpbnB1dCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHNlbGVjdCxcbmJvZHkjZWRpdCBmb3JtIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0IHRleHRhcmVhLFxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuYm9keSNlZGl0IGZvcm0gLmRldGFpbHNvZmVucXVpcnkgdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuYm9keSNlZGl0IGZvcm0gLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCxcbmJvZHkjZWRpdCBmb3JtIC5sZWFkLXN0YXR1cyAuZnJlZWZvcm0tY29sdW1uIGxhYmVsLFxuYm9keSNlZGl0IGZvcm0gLmludGVybmFsLW5vdGVzIC5mcmVlZm9ybS1jb2x1bW4gbGFiZWwsXG5ib2R5I2VkaXQgZm9ybSAub3JkZXItdmFsdWUgLmZyZWVmb3JtLWNvbHVtbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxubW9kYWwtd3JhcHBlciB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLW1pbi13aWR0aDozMDBweDtcbiAgLS1tYXgtd2lkdGg6MTEyMHB4O1xuICAtLXdpZHRoOmNsYW1wKHZhcigtLW1pbi13aWR0aCksIDkwdncsIGZpdC1jb250ZW50KTtcbiAgLS1taW4taGVpZ2h0OjYwMHB4O1xuICAtLW1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIHZhcigtLWd1dHRlcjIpKTtcbiAgLS1oZWlnaHQ6Y2xhbXAodmFyKC0tbWluLWhlaWdodCksIDkwdncsIGZpdC1jb250ZW50KTtcbiAgLS1jbG9zZS1idXR0b24tc2l6ZTogMzBweDtcbiAgLS1uYXYtYnV0dG9uLXNpemU6IDQwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdyYXBwZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuQHN1cHBvcnRzICgtLXY6LXdlYmtpdC1maWxsLWF2YWlsYWJsZSApIHtcbiAgbW9kYWwtd3JhcHBlciB7XG4gICAgLS1tYXgtaGVpZ2h0Oi13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXIubG9hZGluZyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpIDAuM3M7XG59XG5tb2RhbC13cmFwcGVyLmxvYWRpbmcgbW9kYWwtY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJ2aCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksIHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjg5NSwgMC4wMywgMC42ODUsIDAuMjIpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgd2lkdGg6IHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5jbG9zZSBzdmcge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIC0tZmlsbDp2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xufVxubW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIGNpcmNsZSwgbW9kYWwtd3JhcHBlciBidXR0b24uY2xvc2Ugc3ZnIHBhdGgge1xuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIG1vZGFsLXdyYXBwZXIgYnV0dG9uLmNsb3NlOmhvdmVyIHN2ZyB7XG4gICAgLS1maWxsOndoaXRlO1xuICAgIC0tc3Ryb2tlOnZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIH1cbn1cbm1vZGFsLXdyYXBwZXIgYnV0dG9uLm5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1uYXYtYnV0dG9uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLW5hdi1idXR0b24tc2l6ZSk7XG4gIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1uYXYtYnV0dG9uLXNpemUpIC8gMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHtcbiAgbGVmdDogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQge1xuICByaWdodDogdmFyKC0tZ3V0dGVyMSk7XG59XG5tb2RhbC13cmFwcGVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHN2ZyB7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogNTAlO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgbW9kYWwtd3JhcHBlciBidXR0b24ubmF2aWdhdGlvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbm1vZGFsLWNvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSAwLjNzLCB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIDAuM3M7XG4gIHdpZHRoOiB2YXIoLS13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0taGVpZ2h0KTtcbiAgbWF4LWhlaWdodDogdmFyKC0tbWF4LWhlaWdodCk7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29udGFpbmVyLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW46IHZhcigtLWd1dHRlcjEpO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICBtb2RhbC1jb250YWluZXIge1xuICAgIC0td2lkdGg6IDYwdnc7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDogdmFyKC0tbWluLXdpZHRoKTtcbiAgICAtLWhlaWdodDogODB2dztcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1taW4taGVpZ2h0KTtcbiAgfVxufVxubW9kYWwtY29udGFpbmVyOmVtcHR5IHtcbiAgd2lkdGg6IGNhbGModmFyKC0tbWF4LXdpZHRoKSAvIDIpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbWF4LWhlaWdodCkgLyAyKTtcbn1cbm1vZGFsLWNvbnRhaW5lcjplbXB0eTphZnRlciB7XG4gIC0tc2l6ZTogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgIzk2OTY5NSk7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xufVxuQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbm1vZGFsLWNvbnRhaW5lciA+IGJ1dHRvbi5jbG9zZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3JkZXI6IC0xO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgdG9wOiBpbml0aWFsO1xuICByaWdodDogaW5pdGlhbDtcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2xvc2UtYnV0dG9uLXNpemUpIC8gMik7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSAvIDIpO1xufVxuXG5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbm1vZGFsLWNvbnRlbnQgPiAqIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5tb2RhbC13cmFwcGVyW2RhdGEtdHlwZT1pbWFnZV0gLmltYWdlIHtcbiAgbWF4LWhlaWdodDogY2FsYyh2YXIoLS1tYXgtaGVpZ2h0KSAtIHZhcigtLWd1dHRlcjYpKTtcbiAgYm9yZGVyOiBub25lO1xufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9aW1hZ2VdIC5pbWFnZSBpbWcge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tZ3V0dGVyMykgLSB2YXIoLS1ndXR0ZXI0KSk7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogYXV0bztcbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9ZGVmYXVsdF0gbW9kYWwtY29udGVudCA+IGltZ1tzcmMqPVwiLnN2Z1wiXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxNi85KSB7XG4gIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgbW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9dmlkZW9dIG1vZGFsLWNvbnRhaW5lciBpZnJhbWUsIG1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbm1vZGFsLXdyYXBwZXJbZGF0YS10eXBlPXZpZGVvXSBtb2RhbC1jb250YWluZXIgbW9kYWwtY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cblxuLm9wZW4taW4tbW9kYWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG4ub3Blbi1pbi1tb2RhbDphZnRlciB7XG4gIC0tc2l6ZTogMjBweDtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogdmFyKC0tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgd2hpdGUpO1xuICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkZXItcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbn1cbi5vcGVuLWluLW1vZGFsLmxvYWRpbmcge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5vcGVuLWluLW1vZGFsLmxvYWRpbmc6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbn1cblxuaW1nLm9wZW4taW4tbW9kYWwsIC5vcGVuLWluLW1vZGFsIGltZyB7XG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xuICAtbW96LXVzZXItZHJhZzogbm9uZTtcbiAgLW8tdXNlci1kcmFnOiBub25lO1xuICB1c2VyLWRyYWc6IG5vbmU7XG59XG5cbjpyb290IHtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldDogMXJlbTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyOiAwIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KTtcbiAgLS1kaWFsb2ctdHJhbnNsYXRlLWxlYXZlOiAwIGNhbGMoLTEgKiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLW9mZnNldCkpO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb246IDAuNHM7XG4gIC0tZGlhbG9nLWdhcDogdmFyKC0tZ3V0dGVyMik7XG4gIC0tZGlhbG9nLWNvbnRlbnQtbWF4LXdpZHRoOiAxMDgwcHg7XG4gIC0tZGlhbG9nLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvdXI6IHdoaXRlO1xuICAtLWRpYWxvZy1iYWNrZHJvcC1jb2xvdXI6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuZGlhbG9nLm1vZGFsIHtcbiAgYm9yZGVyOiBub25lO1xuICBvdmVyZmxvdzogaW5pdGlhbDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNsYXRlOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWVudGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG92ZXJsYXksIGRpc3BsYXksIHRyYW5zbGF0ZSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbik7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMGR2aDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xufVxuZGlhbG9nLm1vZGFsICosXG5kaWFsb2cubW9kYWwgKjo6YmVmb3JlLFxuZGlhbG9nLm1vZGFsICo6OmFmdGVyLCBkaWFsb2cubW9kYWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuZGlhbG9nLm1vZGFsOjpiYWNrZHJvcCB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG92ZXJsYXksIGRpc3BsYXksIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pO1xuICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpYWxvZy1iYWNrZHJvcC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwO1xufVxuZGlhbG9nLm1vZGFsIC5kaWFsb2dcXDpjb250ZW50cyB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgYm9yZGVyLXJhZGl1czogMC42ZW07XG4gIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgcGFkZGluZzogdmFyKC0tZGlhbG9nLWdhcCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpYWxvZy1jb250ZW50LWJhY2tncm91bmQtY29sb3VyKTtcbiAgd2lkdGg6IG1pbigxMDAlLCB2YXIoLS1kaWFsb2ctY29udGVudC1tYXgtd2lkdGgpKTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbmRpYWxvZy5tb2RhbFtvcGVuXSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zbGF0ZTogMCAwO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuQHN0YXJ0aW5nLXN0eWxlIHtcbiAgZGlhbG9nLm1vZGFsW29wZW5dIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1sZWF2ZSk7XG4gIH1cbn1cbmRpYWxvZy5tb2RhbFtvcGVuXTo6YmFja2Ryb3Age1xuICBvcGFjaXR5OiAxO1xufVxuQHN0YXJ0aW5nLXN0eWxlIHtcbiAgZGlhbG9nLm1vZGFsW29wZW5dOjpiYWNrZHJvcCB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuZGlhbG9nLm1vZGFsIGJ1dHRvbi5kaWFsb2dcXDpjbG9zZSB7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYygwLjUgKiB2YXIoLS1kaWFsb2ctZ2FwKSk7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbjpyb290OmhhcyhkaWFsb2cubW9kYWxbb3Blbl0pIFtkYXRhLW1vZGFsXSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY29udGVudC1ibG9jayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29sdW1uLWNvdW50KSwgMWZyKTtcbn1cbi5jb250ZW50LWJsb2NrOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb250ZW50LWJsb2NrLmJsb3dvdXQudGhlbWVkIH4gLmNvbnRlbnQtYmxvY2s6bm90KC5ibG93b3V0KS50aGVtZWQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbn1cbi5jb250ZW50LWJsb2NrOm5vdCguYmxvd291dCkudGhlbWVkOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApO1xufVxuLmNvbnRlbnQtYmxvY2sgKyAuY29udGVudC1ibG9jayB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjZGNkY2RjKTtcbn1cbi5jb250ZW50LWJsb2NrLmhvcml6b250YWwtYmxvY2tzIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrLmhvcml6b250YWwtYmxvY2tzOmhhcygudGV4dCArIGJ1dHRvbi1jb250YWluZXIpIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIxKSB2YXIoLS1ndXR0ZXIwKTtcbn1cbi5jb250ZW50LWJsb2NrLmhvcml6b250YWwtYmxvY2tzOmhhcygudGV4dCArIGJ1dHRvbi1jb250YWluZXIpIC50ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG4uY29udGVudC1ibG9jay5ob3Jpem9udGFsLWJsb2NrczpoYXMoLnRleHQgKyBidXR0b24tY29udGFpbmVyKSBidXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICBmb250LXNpemU6IHNtYWxsO1xufVxuLmNvbnRlbnQtYmxvY2suaG9yaXpvbnRhbC1ibG9ja3M6aGFzKC50ZXh0ICsgYnV0dG9uLWNvbnRhaW5lcikgLnRleHQsXG4uY29udGVudC1ibG9jay5ob3Jpem9udGFsLWJsb2NrczpoYXMoLnRleHQgKyBidXR0b24tY29udGFpbmVyKSBidXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG4uY29udGVudC1ibG9jayA6aXMoaDIsIGgzLCBoNCwgaDUsIGg2KSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4uY29udGVudC1ibG9jay5ncmV5IHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbi5jb250ZW50LWJsb2NrLnJlZCB7XG4gIGJhY2tncm91bmQ6ICNkZjMwMzU7XG59XG4uY29udGVudC1ibG9jay5ibHVlIHtcbiAgYmFja2dyb3VuZDogIzEzMWY2Yjtcbn1cbi5jb250ZW50LWJsb2NrLmJsYWNrIHtcbiAgYmFja2dyb3VuZDogIzFlMWMxYztcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xufVxuLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMHB4LCAxZnIpKTtcbiAgZ2FwOiAwO1xufVxuLmNvbnRlbnQtYmxvY2suc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMgPiAqIHtcbiAgZ3JpZC1jb2x1bW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cbi5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzID4gKi5jb250YWluZXItaW5saW5lIHtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2VyMSk7XG59XG4uY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyA+ICouZWNvcG9zdGUtYmFubmVyIHtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlcjEpO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxubWFpbjpoYXMoPiAuY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cykge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5tYWluOmhhcyg+IC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzKSAuc2lkZS1ieS1zaWRlLWNvbXBvbmVudHMge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhICh3aWR0aCA8IDkwMHB4KSB7XG4gIC5jb250ZW50LWJsb2NrLnNpZGUtYnktc2lkZS1jb21wb25lbnRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG4udGV4dCBhIHtcbiAgLS1mb250LWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAudGV4dCBhOmhvdmVyIHtcbiAgICAtLWZvbnQtY29sb3VyOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG4udGV4dCBhIGEuYnV0dG9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udGV4dCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNERjMwMzUnIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9J3doaXRlJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi50ZXh0IHVsID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSkgKiAxLjgpO1xufVxuLnRleHQgdWwgPiBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tbGluZS1zdHlsZS1zcGFjaW5nLCB2YXIoLS1nYXApKTtcbn1cbi50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdG9wOiAwLjFlbTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xuICBoZWlnaHQ6IHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKTtcbn1cbi50ZXh0IG9sIHtcbiAgY291bnRlci1yZXNldDogY291bnRlcjtcbn1cbi50ZXh0IG9sID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1saXN0LXN0eWxlLW9mZnNldCwgMCk7XG59XG4udGV4dCBvbCA+IGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpO1xufVxuLnRleHQgb2wgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihjb3VudGVyKSBcIi5cIjtcbiAgY291bnRlci1pbmNyZW1lbnQ6IGNvdW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1saXN0LXN0eWxlLWNvbG91ciwgdmFyKC0tcHJpbWFyeSkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07XG59XG4udGV4dCBwOmVtcHR5LCAudGV4dCBwID4gYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRleHQgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLnRleHQgPiAqIHVsLCAudGV4dCA+ICogb2wge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1nYXApO1xufVxuLnRleHQgaDIsIC50ZXh0IGgzLCAudGV4dCBoNCwgLnRleHQgaDUsIC50ZXh0IGg2IHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbn1cbi50ZXh0IC5oZWFkaW5nLWgzIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeSwgI2RmMzAzNSk7XG59XG4udGV4dCBbc3R5bGUqPVwidGV4dC1hbGlnbjogY2VudGVyXCJdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udGV4dCAucXVvdGVzIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWdhcCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi50ZXh0IGZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogdmFyKC0tZ2FwKTtcbn1cbi50ZXh0IGZpZ3VyZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4udGV4dCBociB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjApICFpbXBvcnRhbnQ7XG59XG4udGV4dCAubm90ZSB7XG4gIG1hcmdpbjogY2FsYyh2YXIoLS1nYXApICogMikgMDtcbn1cblxuLmRhcmsge1xuICAtLWhyLWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAtLWxpc3Qtc3R5bGUtY29sb3VyOiB3aGl0ZTtcbn1cbi5kYXJrIC50ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xuICAtLWhlYWRpbmctY29sb3VyOndoaXRlO1xufVxuLmRhcmsgLnRleHQgYS5idXR0b24ge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbn1cbi5kYXJrIC50ZXh0IGE6bm90KC5idXR0b24pIHtcbiAgLS1mb250LWNvbG91cjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAuZGFyayAudGV4dCBhOm5vdCguYnV0dG9uKTpob3ZlciB7XG4gICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gIH1cbn1cbi5kYXJrLnJlZCAudGV4dCB1bCA+IGxpOjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNGRkZGRkYnIGN4PSc4JyBjeT0nOCcgcj0nOCcvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM0RGMzAzNScgc3Ryb2tlLXdpZHRoPScxLjQnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNMy41IDguNGwyLjcgMi43IDYuMy02LjMnLyUzRSUzQy9zdmclM0VcIik7XG59XG4uZGFyay5ibHVlIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0ZGRkZGRicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMTMxRjZCJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLmNvbnRhaW5zLXN2Z3MgLnRleHQgZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIHZhcigtLWdhcCk7XG59XG4uY29udGFpbnMtc3ZncyAudGV4dCBmaWd1cmUgaW1nIHtcbiAgaGVpZ2h0OiAxMjBweDtcbn1cblxudGFibGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCk7XG59XG50YWJsZS1jb250YWluZXIgPiBkaXYge1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgZGlzcGxheTogZ3JpZDtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjpub3QoOmhvdmVyKSB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjllbTtcbiAgaGVpZ2h0OiAwLjllbTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmxlLWNvbnRhaW5lciA+IGRpdjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTY5Njk1O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxudGFibGUtY29udGFpbmVyID4gZGl2Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnRhYmxlLWNvbnRhaW5lciBoMyB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBncmlkLXJvdzogMTtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0teCkpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0teCkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGJvZHkgdHIgdGQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggI2RjZGNkYyBkYXNoZWQ7XG59XG50YWJsZS1jb250YWluZXIgdGFibGUudGFibGUuZmFrZSB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbnRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZS5mYWtlIHRoZWFkIHRyIHRoOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItcmlnaHQ6IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgZGFzaGVkO1xufVxudGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGhlYWQgdHIgdGg6bm90KDpmaXJzdC1vZi10eXBlKSwgdGFibGUtY29udGFpbmVyIHRhYmxlLnRhYmxlLmZha2UgdGJvZHkgdHIgdGQ6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbkBzdXBwb3J0cyAod3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scikge1xuICB0YWJsZS1jb250YWluZXIuZW5hYmxlLXZlcnRpY2FsLWhlYWRpbmdzIHRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7XG4gICAgbWF4LXdpZHRoOiA1MHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdyaWQtcm93OiAxO1xuICBncmlkLWNvbHVtbjogMjtcbiAgZGlzcGxheTogbm9uZTtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgYnV0dG9uLm5hdmlnYXRpb24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgYnV0dG9uLm5hdmlnYXRpb24gKyBidXR0b24ge1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbn1cbnRhYmxlLWNvbnRhaW5lciBuYXYgKyBkaXYge1xuICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG59XG50YWJsZS1jb250YWluZXIuc2Nyb2xsZWQtcmlnaHQgYnV0dG9uLm5leHQsIHRhYmxlLWNvbnRhaW5lci5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxudGFibGUtY29udGFpbmVyLmVuYWJsZS1zY3JvbGwtYnV0dG9ucyBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgLS1idXR0b24tc2l6ZTogNDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGNvbG9yOiAjNmE2YTZhO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxudGFibGUtY29udGFpbmVyIGJ1dHRvbi5uYXZpZ2F0aW9uLm5leHQgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbnRhYmxlLWNvbnRhaW5lciBidXR0b24ubmF2aWdhdGlvbiBzdmcge1xuICB3aWR0aDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmxlLWNvbnRhaW5lciBidXR0b24ubmF2aWdhdGlvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbnRhYmxlLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG50YWJsZS50YWJsZSB0aGVhZCB0ciB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApO1xuICBjb2xvcjogd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG50YWJsZS50YWJsZSB0aGVhZCB0ciB0aDpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOmxhc3Qtb2YtdHlwZSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LW9mLXR5cGUge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM2YTZhNmE7XG59XG50YWJsZS50YWJsZSB0Ym9keSB0ciB0ZCBhIHtcbiAgY29sb3I6ICMxMzFmNmI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgdGFibGUudGFibGUgdGJvZHkgdHIgdGQgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkZjMwMzU7XG4gIH1cbn1cbnRhYmxlLnRhYmxlIHRib2R5IHRyIHRkIHN2ZyB7XG4gIC0tZmlsbDogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnLmNyb3NzIHtcbiAgLS1maWxsOiAjZGYzMDM1O1xufVxudGFibGUudGFibGUgdGJvZHkgdHIgdGQgc3ZnLnRpY2sge1xuICAtLWZpbGw6ICM1MGJjMDg7XG59XG50YWJsZS50YWJsZSB0ciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnRhYmxlLnRhYmxlIHRyOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xufVxudGFibGUudGFibGUgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG50YWJsZS50YWJsZS5hbHRlcm5hdGluZy1yb3ctY29sb3VycyB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbnRhYmxlLnRhYmxlLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRib2R5IHRyIHRkOmxhc3Qtb2YtdHlwZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmRhcmsgdGFibGUtY29udGFpbmVyID4gaDMsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50ID4gaDMge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGFyayB0YWJsZS1jb250YWluZXIgPiBkaXYsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50ID4gZGl2IHtcbiAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG59XG4uZGFyayB0YWJsZS1jb250YWluZXIgdGFibGUudGFibGUgdHIgdGgsIC5kYXJrLmNvbnRlbnQtYmxvY2sgLnRhYi1jb250ZW50IHRhYmxlLnRhYmxlIHRyIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0ciwgLmRhcmsuY29udGVudC1ibG9jayAudGFiLWNvbnRlbnQgdGFibGUudGFibGUgdHIge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5kYXJrIHRhYmxlLWNvbnRhaW5lciB0YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB0YWJsZS50YWJsZSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cblxuZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjRmNGY0O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xufVxuZmlndXJlLmltYWdlLnN0YXRpYyBpbWcge1xuICAtLWltYWdlLWhlaWdodC1zaXplOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljIGZpZ2NhcHRpb24ge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLm5vLWNhcHRpb24ge1xuICBib3JkZXI6IG5vbmU7XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2Uge1xuICAtLWFzcGVjdC1yYXRpbzogMTYvOTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuICAtLWFzcGVjdC1yYXRpbzogaW5oZXJpdDtcbn1cbmZpZ3VyZS5pbWFnZS5zdGF0aWMuY3JvcC1pbWFnZSBmaWdjYXB0aW9uIHtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICBmaWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2Uge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgZmlndXJlLmltYWdlLnN0YXRpYy5jcm9wLWltYWdlID4gKiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5maWd1cmUuaW1hZ2Uuc3RhdGljLmNyb3AtaW1hZ2UgaW1nIHtcbiAgLS1pbWFnZS1oZWlnaHQtc2l6ZTogMTAwJTtcbn1cblxuLmltYWdlLmxvYWQtaW4tdmlldyBpbWcge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpO1xufVxuLmltYWdlLmxvYWQtaW4tdmlldyBpbWc6bm90KFtzcmNdKSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbmltYWdlcy1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjApO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heChjYWxjKHZhcigtLW1haW4tbWF4LXdpZHRoKSAvICh2YXIoLS1pbWFnZXMtcGVyLXJvdykgKyAxKSksIDFmcikpO1xufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2Uge1xuICAtLWFzcGVjdC1yYXRpbzogNC8zO1xuICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIC0tYXNwZWN0LXJhdGlvOiBpbmhlcml0O1xufVxuQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiA0LzMpIHtcbiAgaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2Uge1xuICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cbiAgaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgPiAqIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbn1cbmltYWdlcy1jb250YWluZXIuY3JvcC1pbWFnZXMgLmltYWdlIGltZyB7XG4gIC0taW1hZ2UtaGVpZ2h0LXNpemU6IDEwMCU7XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEvMSkge1xuICBpbWFnZXMtY29udGFpbmVyLmNyb3AtaW1hZ2VzIC5pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxufVxuaW1hZ2VzLWNvbnRhaW5lci5jcm9wLWltYWdlcyAuaW1hZ2UgZmlnY2FwdGlvbiB7XG4gIGJvdHRvbTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbnRhYmJlZC1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG59XG50YWJiZWQtY29udGVudCA+IG5hdiBidXR0b24ge1xuICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbn1cbnRhYmJlZC1jb250ZW50ID4gbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG50YWJiZWQtY29udGVudCA+IG5hdiBidXR0b24gc3ZnIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnkge1xuICBkaXNwbGF5OiBub25lO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tcHJpbWFyeSwgIzEzMWY2Yik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1nYXApO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGJvcmRlci1yYWRpdXMgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnk6Om1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5LCB0YWJiZWQtY29udGVudCBzdW1tYXJ5IC5oZWFkaW5nIHtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbnRhYmJlZC1jb250ZW50IHN1bW1hcnkgLmhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxudGFiYmVkLWNvbnRlbnQgc3VtbWFyeSBzdmcge1xuICBoZWlnaHQ6IDhweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgdG9wOiBjYWxjKDUwJSAtIDRweCk7XG59XG50YWJiZWQtY29udGVudCBzdW1tYXJ5OmhvdmVyLCB0YWJiZWQtY29udGVudCBkZXRhaWxzW29wZW5dIHN1bW1hcnk6aG92ZXIge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiMxYzJkOWM7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQge1xuICBncmlkLWdhcDogdmFyKC0tc3BhY2VyMCkgMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQ6bm90KFtoaWRkZW5dKSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLmhlYWRpbmctaDQge1xuICBmb250LXNpemU6IDEuNTYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogI2RmMzAzNTtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAuaGVhZGluZy1oNSB7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIuaGFsdmVzIHtcbiAgbWF4LXdpZHRoOiA0MCU7XG4gIG1hcmdpbjogMCA1JSAwIDA7XG59XG50YWJiZWQtY29udGVudCAudGFiLWNvbnRlbnQgLnRhYmxlLWNvbnRhaW5lci5oYWx2ZXM6bnRoLW9mLXR5cGUoMm4pIHtcbiAgbWFyZ2luOiAwIDAgMCA1JTtcbn1cbnRhYmJlZC1jb250ZW50IC50YWItY29udGVudCAudGFibGUtY29udGFpbmVyLnRoaXJkcyB7XG4gIG1heC13aWR0aDogMzAlO1xufVxudGFiYmVkLWNvbnRlbnQgLnRhYi1jb250ZW50IC50YWJsZS1jb250YWluZXIudGhpcmRzOm50aC1vZi10eXBlKDNuIC0gMSkge1xuICBtYXJnaW46IDAgNSU7XG59XG50YWJiZWQtY29udGVudCB0YWJsZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmJlZC1jb250ZW50Om5vdChbZGF0YS1zdHlsZT1cIjNcIl0pLmluLXZpZXcgPiBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEzMDBweCksIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcge1xuICAgIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nID4gbmF2IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIHN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCB7XG4gICAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCA+ICoge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICB0YWJiZWQtY29udGVudDpub3QoLm1hcmtldHMpLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gc3VtbWFyeSB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjojMGYxOTU2O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQ6bm90KC5tYXJrZXRzKS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Om5vdCgubWFya2V0cykuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyB7XG4gIGdyaWQtZ2FwOiB2YXIoLS1nYXApICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyA+IG5hdiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyBzdW1tYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2VyMCkgdmFyKC0tZ3V0dGVyMSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgPiAqIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgb3BhY2l0eTogMDtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCI0XCJdLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHMgLnRhYi1jb250ZW50IGZpZ3VyZS5pbWFnZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICAtLWJhY2tncm91bmQtY29sb3VyOiMwZjE5NTY7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjRcIl0uYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHN2ZyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiNFwiXS5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIC50YWItY29udGVudCA+ICoge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIHtcbiAgICBncmlkLWdhcDogdmFyKC0tZ2FwKSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyA+IG5hdiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlcjApIHZhcigtLWd1dHRlcjEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlscyAudGFiLWNvbnRlbnQgPiAqIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzIC50YWItY29udGVudCBmaWd1cmUuaW1hZ2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgdGFiYmVkLWNvbnRlbnQubWFya2V0cy5hbGxvdy1icmVha3BvaW50LXJlc3R5bGluZyBkZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6IzBmMTk1NjtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICB9XG4gIHRhYmJlZC1jb250ZW50Lm1hcmtldHMuYWxsb3ctYnJlYWtwb2ludC1yZXN0eWxpbmcgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IHN2ZyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuICB0YWJiZWQtY29udGVudC5tYXJrZXRzLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIGRldGFpbHNbb3Blbl0gLnRhYi1jb250ZW50ID4gKiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSB7XG4gIC0tc2lkZS1uYXYtd2lkdGg6IDIwMHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXNpZGUtbmF2LXdpZHRoKSAxZnI7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgdG9wOiBjYWxjKHZhcigtLWJyZWFkY3J1bWItaGVpZ2h0KSArIHZhcigtLWFuY2hvcnMtaGVpZ2h0KSAtIHZhcigtLWd1dHRlcjEpKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIxXCJdID4gbmF2IGJ1dHRvbiB7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1nYXApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjFcIl0gPiBuYXYgYnV0dG9uICsgYnV0dG9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG59XG5cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdID4gbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b24ge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAyKSB2YXIoLS1ndXR0ZXIyKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjJcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b246aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnksICNkZjMwMzUpO1xuICB9XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSAudGFiLWNvbnRlbnQge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZXIxKSB2YXIoLS1ndXR0ZXIxKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNmNGY0ZjQsIHdoaXRlKTtcbn1cbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIyXCJdLmludmlldyBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LCAjZGYzMDM1KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXTpub3QoLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nKVtkYXRhLWNvdW50PVwiMlwiXSBbcm9sZT10YWJdIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcCk7XG4gIH1cbn1cblxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICBwYWRkaW5nOiB2YXIoLS1nYXApIHZhcigtLWd1dHRlcjEpO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgYnV0dG9uIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdID4gbmF2IGJ1dHRvbjpub3QoW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgICBjb2xvcjogI2RmMzAzNTtcbiAgfVxufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXY6bm90KC5oYXMtbWFya2VyKSBidXR0b25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG59XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiM1wiXSA+IG5hdiBtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG4gIHBhZGRpbmc6IGluaXRpYWw7XG4gIHRyYW5zaXRpb246IGluaXRpYWw7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHdpZHRoOiA1MCU7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gPiBuYXYgbWFyay5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xufVxudGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT1cIjNcIl0gLnRhYi1jb250ZW50IHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgMDtcbn1cblxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyB7XG4gIC0tc2Vjb25kYXJ5OiAjZGYzMDM1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5zaWRlLWJhciAuZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbnNpZGUtYmFyIC5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUge1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIyKSAhaW1wb3J0YW50O1xufVxuc2lkZS1iYXIgLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyAuY29udGFpbmVyLWlubGluZSA+IC50ZXh0IHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MudGhlbWVkIC5jb250YWluZXItaW5saW5lIHtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMik7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0IHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tZ3V0dGVyMSk7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGZpbGw9JyUyM0RGMzAzNScgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMS40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTMuNSA4LjRsMi43IDIuNyA2LjMtNi4zJy8lM0UlM0Mvc3ZnJTNFXCIpICFpbXBvcnRhbnQ7XG59XG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIC50ZXh0ID4gaDIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgYnV0dG9uLWNvbnRhaW5lciB7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgYnV0dG9uLWNvbnRhaW5lciAuYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xufVxuLmV4cGVydHMtaW4teW91ci1idXNpbmVzcyBmaWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGdyaWQtY29sdW1uOiAyO1xuICBncmlkLXJvdzogMS9zcGFuIDI7XG4gIG1heC13aWR0aDogMjYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGFsaWduLXNlbGY6IGVuZDtcbiAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUge1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUgPiAqOm5vdChmaWd1cmUpIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG59XG5AY29udGFpbmVyICh3aWR0aCA8IDUwMHB4KSB7XG4gIC5leHBlcnRzLWluLXlvdXItYnVzaW5lc3MgLmNvbnRhaW5lci1pbmxpbmUgZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBOb3JtYWxpc2Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2Vcbi8vLyBAYXV0aG9yIEF1dGhvcnMgbmFtZVxuLy8vIEBzZWUgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcblxuJG5vcm1hbGlzZSAgICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRiYXNlLWVsZW1lbnRzICAgICA6IHRydWUgIWRlZmF1bHQ7XG4kc2VjdGlvbi1lbGVtZW50cyAgOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci1lbGVtZW50cyAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRncm91cGluZy1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGFibGUtZWxlbWVudHMgICAgOiB0cnVlICFkZWZhdWx0O1xuJGZvcm0tZWxlbWVudHMgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbiRlbWJlZGRlZC1lbGVtZW50cyA6IHRydWUgIWRlZmF1bHQ7XG4kdGV4dC1lbGVtZW50cyAgICAgOiB0cnVlICFkZWZhdWx0O1xuJGRldi1lbGVtZW50cyAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcblxuQGlmICRub3JtYWxpc2Uge1xuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBCYXNlIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkYmFzZS1lbGVtZW50cyB7XG5cblx0XHRodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsXG5cdFx0YmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSxcblx0XHRpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLFxuXHRcdGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLFxuXHRcdGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsXG5cdFx0ZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksXG5cdFx0c2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cdFx0fVxuXG5cdFx0OnJvb3Qge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblx0XHR9XG5cblx0XHQqLCAqOmFmdGVyLCAqOmJlZm9yZSB7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9O1xuXHRcdFx0Ym94LXNpemluZzppbmhlcml0O1xuXHRcdH1cblxuXHRcdGh0bWwgeyBcblx0XHRcdGhlaWdodDoxMDAlOyBcblx0XHRcdGZvbnQtc2l6ZTo2Mi41JTsgXG5cdFx0XHRibG9jay1zaXplOiAxMDAlO1xuXHRcdFx0aW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ym9keSB7IFxuXHRcdFx0bWluLWJsb2NrLXNpemU6IDEwMCU7XG5cdFx0XHRtaW4taW5saW5lLXNpemU6IDEwMCU7XG5cdFx0fVxuXG5cdFx0aHRtbCwgYm9keSB7XG5cdFx0XHRtaW4taGVpZ2h0OjEwMCU7XG5cdFx0fVxuXG5cdFx0cCwgcHJlLCBibG9ja3F1b3RlLCBvbCwgdWwsIGxpLCBsZWdlbmQsIGZpZ2NhcHRpb24sIGJvZHksIGFydGljbGUsIG5hdiwgYXNpZGUsIHNlY3Rpb24sIGhlYWRlciwgZm9vdGVyLCBhZGRyZXNzIHtcblx0XHRcdCY6ZW1wdHkgeyBkaXNwbGF5Om5vbmU7IH1cblx0XHR9XG5cblx0XHRhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdHN2Zywgc3ltYm9sIHsgb3ZlcmZsb3c6dmlzaWJsZTsgfVxuXG5cdFx0ZGV0YWlscyB7IGRpc3BsYXk6IGJsb2NrO1x0fVxuXG5cdFx0c3VtbWFyeSB7XG5cdFx0XHRkaXNwbGF5OiBsaXN0LWl0ZW07XG5cdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcblx0XHRcdCY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIsICY6Om1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfVxuXHRcdH1cblxuXHRcdHRlbXBsYXRlIHsgZGlzcGxheTogbm9uZTtcdH1cblxuXHRcdFtoaWRkZW5dIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gU2VjdGlvbiBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHNlY3Rpb24tZWxlbWVudHMge1xuXG5cdFx0Ym9keSB7XG5cdFx0XHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblxuXHRcdGFkZHJlc3Mge1xuXHRcdFx0Zm9udC1zdHlsZTpub3JtYWw7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gSGVhZGVyIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkaGVhZGVyLWVsZW1lbnRzIHtcblxuXHRcdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRcdFx0LXdlYmtpdC1tYXJnaW4tYmVmb3JlOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWFmdGVyOjBlbTtcblx0XHRcdC13ZWJraXQtbWFyZ2luLXN0YXJ0OjBweDtcblx0XHRcdC13ZWJraXQtbWFyZ2luLWVuZDowcHg7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIEdyb3VwaW5nIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZ3JvdXBpbmctZWxlbWVudHMge1xuXG5cdFx0aHIge1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRoZWlnaHQ6MXB4O1xuXHRcdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRibG9ja3F1b3RlLCBxIHtcblx0XHRcdHF1b3Rlczogbm9uZTtcblx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGNvbnRlbnQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cHJlIHtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcblx0XHRcdGZvbnQtc2l6ZTogMWVtO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0XHRjb2xvcjogYmxhY2s7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5OTtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBUYWJsZSBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRhYmxlLWVsZW1lbnRzIHtcblxuXHRcdHRhYmxlIHtcblx0XHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0XHRib3JkZXItc3BhY2luZzogMDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBGb3JtIEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZm9ybS1lbGVtZW50cyB7XG5cblx0XHRidXR0b24ge1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFx0aW5wdXQsIG9wdGdyb3VwLFx0c2VsZWN0LFx0dGV4dGFyZWEge1xuXHRcdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0XHRmb250LXNpemU6IDEwMCU7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4xNTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRidXR0b24sXHRpbnB1dCB7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHRidXR0b24sXHRzZWxlY3Qge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0fVxuXG5cdFx0YnV0dG9uLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdLFxuXHRcdFt0eXBlPVwicmVzZXRcIl0sXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0XHRib3JkZXI6bm9uZTtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XHQmOmZvY3VzIHsgb3V0bGluZTowOyB9XG5cdFx0fVxuXG5cdFx0YnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuXHRcdFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5cdFx0W3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cblx0XHRidXR0b246LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5cdFx0W3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblx0XHRbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG5cdFx0XHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG5cdFx0fVxuXG5cdFx0ZmllbGRzZXQge1xuXHRcdFx0cGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuXHRcdH1cblxuXHRcdGxlZ2VuZCB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdH1cblxuXHRcdHByb2dyZXNzIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHRcdFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5cdFx0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdFt0eXBlPVwic2VhcmNoXCJdIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0ycHg7XG5cdFx0fVxuXG5cdFx0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuXHRcdFx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRcdH1cblx0XHQ6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuXHRcdFx0Zm9udDogaW5oZXJpdDtcblx0XHR9XG5cblx0XHRbZGlzYWJsZWRdIHtcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHR9XG5cblx0fVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXHQvLyBFbWJlZGRlZCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJGVtYmVkZGVkLWVsZW1lbnRzIHtcblxuXHRcdGltZyB7XG5cdFx0XHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdFx0fVxuXG5cdH1cblxuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblx0Ly8gVGV4dCBFbGVtZW50c1xuXHQvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuXHRAaWYgJHRleHQtZWxlbWVudHMge1xuXG5cdFx0ZW0ge1xuXHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblx0XHR9XG5cblx0XHRhYmJyW3RpdGxlXSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG5cdFx0fVxuXG5cdFx0Yiwgc3Ryb25nIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblxuXHRcdGNvZGUsXHRrYmQsIHNhbXAge1xuXHRcdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuXHRcdFx0Zm9udC1zaXplOiAxZW07XG5cdFx0fVxuXG5cdFx0c21hbGwge1xuXHRcdFx0Zm9udC1zaXplOiA4MCU7XG5cdFx0fVxuXG5cdFx0c3ViLCBzdXAge1xuXHRcdFx0Zm9udC1zaXplOiA3NSU7XG5cdFx0XHRsaW5lLWhlaWdodDogMDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblx0XHR9XG5cblx0XHRzdWIge1xuXHRcdFx0Ym90dG9tOiAtMC4yNWVtO1xuXHRcdH1cblxuXHRcdHN1cCB7XG5cdFx0XHR0b3A6IC0wLjVlbTtcblx0XHR9XG5cblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRyZXNpemU6bm9uZTtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdH1cblxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG5cdC8vIERldmVsb3BtZW50IEVsZW1lbnRzXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG5cdEBpZiAkZGV2LWVsZW1lbnRzIHtcblxuXHRcdHByZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuXHRcdFx0Y29sb3I6YmxhY2s7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOjE2cHg7XG5cdFx0XHRwYWRkaW5nOjE2cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6OTk5O1xuXHRcdH1cblx0XHRcblx0XHRib2R5LmRldm1vZGUge1xuXHRcdFx0aW1nOm5vdChbYWx0XSkge1xuXHRcdFx0XHRib3JkZXI6IDJweCByZWQgZGFzaGVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2xvYmFsIFN0eWxpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5IHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBAaW5jbHVkZSBicmVhay1vdXQobWluKSB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG59XG5cbjp3aGVyZSgqKSB7XG4gIHNjcm9sbC1tYXJnaW4tdG9wOiB2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMnJlbSk7XG59XG5cbi5hc3luYy1oaWRlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG5tYWluOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuZmlndXJlLmltYWdlLFxucGljdHVyZS5pbWFnZSB7XG4gIEBpbmNsdWRlIGltYWdlLXNyY3NldCgpO1xufVxuXG52aWRlby1jb250YWluZXIge1xuICBAaW5jbHVkZSB2aWRlby1jb250YWluZXIoKTtcbn1cblxuKjpoYXMoPiAuY29udGFpbmVyLWlubGluZSkge1xuICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG59XG5cbm1hcmsge1xuICBAaW5jbHVkZSBtYXJrKCk7XG59XG5cbmRldGFpbHMge1xuICBvdXRsaW5lOiBub25lO1xufVxuc3VtbWFyeSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgJjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcixcbiAgJjo6bWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbmhlYWRlciAuYnV0dG9uIHtcbiAgJi5icm9jaHVyZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWJyb2NodXJlKCk7XG4gIH1cbn1cblxuLmJ1dHRvbiB7XG4gIEBpbmNsdWRlIGJ1dHRvbigpO1xuICAmLnJlZCBzdmcge1xuICAgICYudGljayxcbiAgICAmLmRvd25sb2FkIHtcbiAgICAgIC0tc3Ryb2tlOiAjeyRyZWR9O1xuICAgIH1cbiAgfVxuICAmLmJsdWUgc3ZnIHtcbiAgICAmLnRpY2ssXG4gICAgJi5kb3dubG9hZCB7XG4gICAgICAtLXN0cm9rZTogI3skYmx1ZX07XG4gICAgfVxuICB9XG4gICYub3V0bGluZSBzdmcge1xuICAgICYudGljayxcbiAgICAmLmRvd25sb2FkIHtcbiAgICAgIC0tc3Ryb2tlOiAjeyR3aGl0ZX07XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAmLnJlZCB7XG4gICAgICBzdmcudGljayxcbiAgICAgIHN2Zy5kb3dubG9hZCB7XG4gICAgICAgIC0tc3Ryb2tlOiAjeyR3aGl0ZX07XG4gICAgICB9XG4gICAgICAmLm91dGxpbmUgc3ZnIHtcbiAgICAgICAgJi50aWNrLFxuICAgICAgICAmLmRvd25sb2FkIHtcbiAgICAgICAgICAtLXN0cm9rZTogI3skcmVkfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmJsdWUge1xuICAgICAgc3ZnLnRpY2ssXG4gICAgICBzdmcuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skd2hpdGV9O1xuICAgICAgfVxuICAgICAgJi5vdXRsaW5lIHN2ZyB7XG4gICAgICAgICYudGljayxcbiAgICAgICAgJi5kb3dubG9hZCB7XG4gICAgICAgICAgLS1zdHJva2U6ICN7JGJsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYud2hpdGUgc3ZnIHtcbiAgICAgICYudGljayxcbiAgICAgICYuZG93bmxvYWQge1xuICAgICAgICAtLXN0cm9rZTogI3skYmx1ZX07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBidXR0b24tY29udGFpbmVyKCk7XG59XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDBweDtcbn1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG4jaG9sZGluZy1wYWdlIHtcbiAgaGVhZGVyIHN2ZyB7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgfVxuICBAaW5jbHVkZSBicmVhay1pbignc21hbGwtbWVkaXVtJykge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICB9XG59XG5cbmJvZHkjZXJyb3ItNDA0IHtcbiAgaGVhZGVyIGgyIHtcbiAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICB9XG4gIHNlYXJjaC1iYXIge1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXIwO1xuICAgIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgIH1cbiAgfVxufVxuXG5ib2R5ID4gLmlkbGUtZGlhbG9nIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgYm94LXNoYWRvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIGJvdHRvbTogJGd1dHRlci07XG4gIHotaW5kZXg6IDI7XG5cbiAgLyogU3RhcnQgaGlkZGVuIGJlbG93IHZpZXdwb3J0ICovXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLyogQW5pbWF0aW9uIHdpdGggZGVsYXllZCBzdGFydCAqL1xuICBhbmltYXRpb246IHNsaWRlLWluLWlkbGUtZGlhbG9nIGJvdGg7XG4gIGFuaW1hdGlvbi10aW1lbGluZTogc2Nyb2xsKCk7XG4gIGFuaW1hdGlvbi1yYW5nZTogY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSkgY2FsYyh2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMHB4KSArIGNhbGMoY2xhbXAoMnJlbSwgNXZoLCAzcmVtKSAqIDIpKTtcblxuICAuYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSh3aGl0ZSwgMC41KTtcbiAgfVxuXG4gIEBrZXlmcmFtZXMgc2xpZGUtaW4taWRsZS1kaWFsb2cge1xuICAgIHRvIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcmVtKTtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCAjY29udGFjdC1tb2RhbCB7XG4gICAgLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cjogI3skZ3JleTN9O1xuICAgIGZvcm0gLnN1Ym1pdC1yb3cge1xuICAgICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcbiAgICB9XG4gIH1cbn1cblxuYm9keSA+IC5iYWNrLXRvLXRvcCB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAkZ3V0dGVyO1xuICByaWdodDogJGd1dHRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFjay10by10b3AtYmFja2dyb3VuZCwgJGJsdWUyKTtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogOTk5OTtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGJvdHRvbSAkdHJhbnNpdGlvbjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBzdmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IDUwJTtcbiAgICB0b3A6IC00JTtcbiAgfVxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWxpZ2h0LCAkcmVkKTtcbiAgfVxufVxuXG5mb290ZXIjZm9vdGVyLmluLXZpZXcgfiAuYmFjay10by10b3Age1xuICBib3R0b206IDEyMHB4O1xufVxuXG5uYXZpZ2F0aW9uLWJhcjpub3QoLmluLXZpZXcpIH4gLmJhY2stdG8tdG9wIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIG91dCgkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRicmVha3BvaW50ICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW4oJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6I3skYnJlYWtwb2ludH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JG1pbn0pIGFuZCAobWF4LXdpZHRoOiN7JG1heH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbWFnZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAncG9zaXRpb24nO1xuXG5AbWl4aW4gc3Jjc2V0KCRwb3NpdGlvbjpmYWxzZSkge1xuXG4gIGRpc3BsYXkgICAgICAgICAgICAgOiBibG9jaztcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IHZhcigtLXBvc2l0aW9uLCBjZW50ZXIgMzMlKTtcblx0YmFja2dyb3VuZC1zaXplICAgICA6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdCAgIDogbm8tcmVwZWF0O1xuXHRvdmVyZmxvdyAgICAgICAgICAgIDogaGlkZGVuO1xuXG5cdEBpZiAkcG9zaXRpb24gPT0gJ2V4cGFuZGVkJyB7IFxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLmV4cGFuZGVkO1xuXHR9IEBlbHNlIGlmICRwb3NpdGlvbiA9PSAnYmxvd291dCcgeyBcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5ibG93b3V0O1xuXHR9IEBlbHNlIHtcblx0XHRwb3NpdGlvbiA6IHJlbGF0aXZlOyBcblx0fVxuXHRcbiAgaW1nIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBibG9jaztcbiAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICBvYmplY3QtZml0ICAgICAgOiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb24gOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG5cdFx0d2lkdGggICAgICAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuXHRcdGhlaWdodCAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7IFxuXHRcdG1heC13aWR0aCAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRtYXgtaGVpZ2h0ICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuXHRcdHRvcCAgICAgICAgICAgICA6IDA7IFxuXHRcdGxlZnQgICAgICAgICAgICA6IDA7XG5cdH1cblxuXHRAY29udGVudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEFzcGVjdCBSYXRpbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhc3BlY3QtcmF0aW9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKDE2LzkpXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHJhdGlvIDogJzE2LzknKSB7XG5cbiAgLS1hc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX07XG4gIGFzcGVjdC1yYXRpbzogdmFyKC0tYXNwZWN0LXJhdGlvKTtcblxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86ICN7c3RyaW5nLnVucXVvdGUoJHJhdGlvKX0pIHtcbiAgICBhc3BlY3QtcmF0aW86aW5pdGlhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlLyh2YXIoLS1hc3BlY3QtcmF0aW8pKSk7XG4gICAgaGVpZ2h0OiAwO1xuICAgID4gKiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSBcbiAgfVxufSIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ2NvbGxlY3Rpb25zL3N0eWxpbmcvYXNwZWN0LXJhdGlvJyBhcyAqO1xuXG5AbWl4aW4gY29udGFpbmVyKCRyYXRpbzonMTYvOScpIHtcblx0XG5cdEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkcmF0aW8pO1xuXG5cdGRpc3BsYXkgICAgICAgICAgOiBibG9jaztcblx0cG9zaXRpb24gICAgICAgICA6IHJlbGF0aXZlO1xuXHR3aWR0aCAgICAgICAgICAgIDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvciA6IGJsYWNrO1xuXG5cdGlmcmFtZSwgY2FudmFzIHtcblx0XHRwb3NpdGlvbiA6IGFic29sdXRlO1xuXHRcdGRpc3BsYXkgIDogYmxvY2s7XG5cdFx0dG9wICAgICAgOiAwOyBcblx0XHRsZWZ0ICAgICA6IDA7XG5cdFx0aGVpZ2h0ICAgOiAxMDAlICFpbXBvcnRhbnQ7IFxuXHRcdHdpZHRoICAgIDogMTAwJSAhaW1wb3J0YW50O1xuXHR9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcblxuQG1peGluIG1hcmsoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXJzLW1hcms7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYygjeyRib3JkZXItcmFkaXVzfSAvIDIpO1xuICBwYWRkaW5nOjAgNXB4O1xuICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbjtcbn1cblxuQG1peGluIG1hcmstcmVzZXQoKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiBpbml0aWFsO1xuICBwYWRkaW5nOmluaXRpYWw7XG4gIHRyYW5zaXRpb246IGluaXRpYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93XG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50XG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLlxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucyxcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93blxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZVxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLlxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZTogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyOiAjMjkyYjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTM6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQ6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNTogIzAwOTVmZjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4vLyAkcmVkICAgIDogI0UwM0E0MDsgLy8gU2Vjb25kYXJ5XG4kcmVkOiAjZGYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZVxuJGdyZXk6ICM5Njk2OTU7XG4kZ3JleTI6ICM2YTZhNmE7IC8vIEZvbnRcbiRncmV5MzogI2Y0ZjRmNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NDogI2RjZGNkYztcbiRncmV5NTogI2IxYjFiMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTY6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuJGdyZWVuOiAjNTBiYzA4O1xuJGdyZWVuMjogIzc2YmIyODsgLy8gRVNHIGdyZWVuXG4keWVsbG93OiAjZjZmNGRiOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyOiAjZmNiMDAyO1xuJG9yYW5nZTogI2ZmNmEwMDtcbiRvcmFuZ2UyOiAjZGE4YjBmO1xuJGJsYWNrOiAjMWUxYzFjO1xuXG4kbWFyazogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJHByaW1hcnk6IHZhcigtLXByaW1hcnksICN7JGJsdWV9KTtcbiRzZWNvbmRhcnk6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnIHdpdGggKFxuICAkYmx1ZTogJGJsdWUsXG4gICRyZWQ6ICRyZWQsXG4gICRncmV5OiAkZ3JleSxcbiAgJHllbGxvdzogJHllbGxvdyxcbiAgJG9yYW5nZTogJG9yYW5nZSxcbiAgJGdyZWVuOiAkZ3JlZW4sXG4gICRibGFjazogJGJsYWNrXG4pO1xuXG4kbWFwOiAoXG4gIGJsdWU6ICRibHVlLFxuICByZWQ6ICRyZWQsXG4gIGdyZXk6ICRncmV5MyxcbiAgeWVsbG93OiAkeWVsbG93LFxuICBvcmFuZ2U6ICRvcmFuZ2UsXG4gIGdyZWVuOiAkZ3JlZW4sXG4gIGJsYWNrOiAkYmxhY2ssXG4pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJ1dHRvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdzdHlsaW5nJyBhcyAqO1xuXG5AbWl4aW4gYnV0dG9uKCRjb2xvdXI6IHZhcigtLXByaW1hcnkpKSB7XG4gIC8vIFN0YXRpYyBTdHlsaW5nXG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRjb2xvdXJ9O1xuICAtLWJvcmRlci1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLXBhZGRpbmc6IDhweCAyMHB4O1xuICAtLWZvbnQtc2l6ZTogMTZweDtcbiAgLS1ib3JkZXItcmFkaXVzOiA1MHB4O1xuXG4gIC8vIEhvdmVyIC8gQWN0aXZlIHN0eWxpbmdcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI3skY29sb3VyfTtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0taG92ZXItYm9yZGVyLWNvbG91cjogaW5pdGlhbDtcbiAgLS1ob3Zlci1wYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1ob3Zlci1mb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZSk7XG4gIC0taG92ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cbiAgLS1pY29uLXNpemU6IDEuMWVtO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKSxcbiAgICBib3JkZXIgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdHJhbnNpdGlvbi1lYXNlKTtcblxuICAvLyBJY29uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBzdmcge1xuICAgIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBvcmRlcjogMztcbiAgICBmaWxsOiB2YXIoLS1maWxsLCBjdXJyZW50Q29sb3IpO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLXRyYW5zaXRpb24tZWFzZSksIHN0cm9rZSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UpO1xuXG4gICAgJltjbGFzcyo9J2Fycm93J10ge1xuICAgICAgLS1pY29uLXNpemU6IDAuOWVtO1xuICAgIH1cbiAgICAmLmFycm93LWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICA+IHNwYW4ge1xuICAgIG9yZGVyOiAyO1xuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcbiAgfVxuXG4gIC8vIFZhcmlhbnQgRGVjbGFyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICYuc21hbGwge1xuICAgIEBpbmNsdWRlIHNtYWxsO1xuICB9XG4gICYubGFyZ2Uge1xuICAgIEBpbmNsdWRlIGxhcmdlO1xuICB9XG4gICYub3V0bGluZSB7XG4gICAgQGluY2x1ZGUgb3V0bGluZS10aGVtZSgkYmx1ZSk7XG4gIH1cblxuICAmLmJsdWUge1xuICAgIEBpbmNsdWRlIHNvbGlkLXRoZW1lKCRibHVlLCB3aGl0ZSk7XG4gICAgJi5vdXRsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJGJsdWUsICR3aGl0ZSk7XG4gICAgfVxuICB9XG4gICYucmVkIHtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkcmVkLCB3aGl0ZSk7XG4gICAgJi5vdXRsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG91dGxpbmUtdGhlbWUoJHJlZCwgJHdoaXRlKTtcbiAgICB9XG4gIH1cbiAgJi5ncmVlbiB7XG4gICAgQGluY2x1ZGUgc29saWQtdGhlbWUoJGdyZWVuMiwgd2hpdGUpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRncmVlbjIsICR3aGl0ZSk7XG4gICAgfVxuICB9XG4gICYud2hpdGUge1xuICAgIEBpbmNsdWRlIHNvbGlkLXRoZW1lKCR3aGl0ZSwgJHByaW1hcnkpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCR3aGl0ZSwgJHByaW1hcnkpO1xuICAgIH1cbiAgfVxuICAmLmRpc2FibGVkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBAaW5jbHVkZSBzb2xpZC10aGVtZSgkZ3JleTQpO1xuICAgICYub3V0bGluZSB7XG4gICAgICBAaW5jbHVkZSBvdXRsaW5lLXRoZW1lKCRncmV5NCk7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgU3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1ob3Zlci1mb250LWNvbG91cik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taG92ZXItYm9yZGVyLWNvbG91cik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0taG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgcGFkZGluZzogdmFyKC0taG92ZXItcGFkZGluZyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1ob3Zlci1mb250LXNpemUpO1xuICB9XG59XG5cbi8vLyBMYXJnZSBCdXR0b24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhlc2UgZXh0ZW5kIHRoZSBzdHlsaW5nIG9mIG1hcmt1cCBlbGVtZW50cyB3aXRoIHRoZSAuYnV0dHRvbiBjbGFzc1xuLy8vIEBjb250ZW50IGlzIHBhc3NlZCB0aHJvdWdoIGlzIGZvciB0aGUgaG92ZXIgc3RhdGUgb25seS5cbi8vLyBAZXhhbXBsZVxuLy8vIC5idXR0b24ge1xuLy8vICAgQGluY2x1ZGUgYnV0dG9uLWxhcmdlIHtcbi8vLyAgICAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6IGdyZWVuO1xuLy8vICAgICAtLWZvbnQtY29sb3VyICAgICA6IHJlZDtcbi8vLyAgIH1cbi8vLyB9XG5cbkBtaXhpbiBsYXJnZSB7XG4gIC0tcGFkZGluZzogMTJweCAyNHB4O1xuICAtLWZvbnQtc2l6ZTogMjRweDtcbiAgQGNvbnRlbnQ7XG59XG5cbi8vLyBTbWFsbCBCdXR0b24gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gVGhlc2UgZXh0ZW5kIHRoZSBzdHlsaW5nIG9mIG1hcmt1cCBlbGVtZW50cyB3aXRoIHRoZSAuYnV0dHRvbiBjbGFzc1xuLy8vIEBjb250ZW50IGlzIHBhc3NlZCB0aHJvdWdoIGlzIGZvciB0aGUgaG92ZXIgc3RhdGUgb25seS5cbi8vLyBAZXhhbXBsZVxuLy8vIC5idXR0b24ge1xuLy8vICAgQGluY2x1ZGUgYnV0dG9uLXNtYWxsIHtcbi8vLyAgICAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6IGdyZWVuO1xuLy8vICAgICAtLWZvbnQtY29sb3VyICAgICA6IHJlZDtcbi8vLyAgIH1cbi8vLyB9XG5cbkBtaXhpbiBzbWFsbCB7XG4gIC0tcGFkZGluZzogNnB4IDE4cHg7XG4gIC0tZm9udC1zaXplOiAxMnB4O1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6ICRnYXAwO1xuICAgICYuYXJyb3ctbGVmdCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgIH1cbiAgfVxuXG4gIEBjb250ZW50O1xufVxuXG4vLy8gVmFyaWVudCBTdHlsaW5nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gc29saWQtdGhlbWUoJHN0YXRpYzogJHByaW1hcnksICRob3Zlcjogd2hpdGUpIHtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skc3RhdGljfTtcbiAgLS1mb250LWNvbG91cjogI3skaG92ZXJ9O1xuICAtLWhvdmVyLWJhY2tncm91bmQtY29sb3VyOiAjeyRob3Zlcn07XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7JHN0YXRpY307XG59XG5cbkBtaXhpbiBvdXRsaW5lLXRoZW1lKCRzdGF0aWM6ICRwcmltYXJ5LCAkaG92ZXI6IHRyYW5zcGFyZW50KSB7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuICAtLWZvbnQtY29sb3VyOiAjeyRzdGF0aWN9O1xuICAtLWJvcmRlci1jb2xvdXI6ICN7JHN0YXRpY307XG4gIC0taG92ZXItYmFja2dyb3VuZC1jb2xvdXI6ICN7JHN0YXRpY307XG4gIC0taG92ZXItZm9udC1jb2xvdXI6ICN7aWYoJGhvdmVyID09IHRyYW5zcGFyZW50LCAkc3RhdGljLCAkaG92ZXIpfTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbn1cblxuLy8vIEJ1dHRvbiBDb250YWluZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG1peGluIGNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8vIG1hcmdpbi1sZWZ0OiRnYXAwLTtcbiAgLy8gd2lkdGg6Y2FsYygxMDAlICsgI3skZ2FwfSk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ2FwOiAkZ2FwMDtcbiAgLmJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQmVzcG9rZSBCdXR0b25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWl4aW4gYnJvY2h1cmUge1xuICAtLWZvbnQtY29sb3VyOiAjeyRibHVlfTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tcGFkZGluZzogNXB4IDBweDtcbiAgLS1pY29uLXNpemU6IDMycHg7XG4gIC0tYm9yZGVyLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gIC0tYm9yZGVyLXJhZGl1czogMDtcbiAgLS1ob3Zlci1mb250LWNvbG91cjogI3skcmVkfTtcbiAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG5cbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZmlsbDogJHJlZDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2V2IHZhbHVlcyBkZWZpbmVkIGJlbG93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2VcblxuLy8gVGhlc2UgdGhyZWUgdmFsdWVzIHdpbGwgYWN0IGEgY29uc3RhbnQgYmFzZWxpbmUgZm9yIGFsbCBmb2xsb3dpbmcgdW5pdCBkZWxjYXJhdGlvbnMuXG5cbi8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiRnYXAgOiAxNnB4ICFkZWZhdWx0O1xuJGJhc2UtZ2FwIDogJGdhcDtcblxuLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4kc3BhY2VyIDogNHZoICFkZWZhdWx0OyBcbiRiYXNlLXNwYWNlciA6ICRzcGFjZXI7IFxuXG4vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4kZ3V0dGVyIDogM3Z3ICFkZWZhdWx0O1xuJGJhc2UtZ3V0dGVyIDogJGd1dHRlcjsgXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc2JvbHV0ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuXG5AZnVuY3Rpb24gZ2FwKCRhbW91bnQgOiAxKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMSApIHsgXG4gICAgQHJldHVybiB2YXIoLS1nYXApOyBcbiAgfSBAZWxzZSB7IFxuICAgIEByZXR1cm4gY2FsYyh2YXIoLS1nYXApICogI3skYW1vdW50fSk7IFxuICB9XG59XG5cbiRnYXAwIDogZ2FwKDAuNSk7ICRnYXAwLSA6IGdhcCgtMC41KTtcbiRnYXAgIDogZ2FwKDEpOyAgICRnYXAtICA6IGdhcCgtMSk7XG4kZ2FwMiA6IGdhcCgyKTsgICAkZ2FwMi0gOiBnYXAoLTIpO1xuJGdhcDMgOiBnYXAoMyk7ICAgJGdhcDMtIDogZ2FwKC0zKTtcbiRnYXA0IDogZ2FwKDQpOyAgICRnYXA0LSA6IGdhcCgtNCk7XG4kZ2FwNSA6IGdhcCg1KTsgICAkZ2FwNS0gOiBnYXAoLTUpO1xuJGdhcDYgOiBnYXAoNik7ICAgJGdhcDYtIDogZ2FwKC02KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlbGF0aXZlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIF9keW5hbWljLXVuaXQoJGN1c3RvbS1wcm9wZXJ0eSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuXG4gIC8vIENhbGMgTWV0aG9kXG4gICRyZXN1bHQgOiBjYWxjKCgjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSkgKyAje2lmKCRtaW4gPT0gMCwgMHB4LCAkbWluKX0pO1xuICBcbiAgLy8gQ2xhbXAgTWV0aG9kXG4gIEBpZiAoICR1c2UtY2xhbXAgKSB7XG4gICAgQGlmICggJGFtb3VudCA9PSAwICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7bWF0aC5kaXYoJG1pbiwgMil9LCAjeyRjdXN0b20tcHJvcGVydHl9ICogMC41LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIGlmICggJGFtb3VudCA9PSAxICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0sICN7JG1heH0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9LCAjeyRtYXh9KTtcbiAgICB9XG4gIH0gXG5cbiAgQGlmICggJHVzZS1uZWdhdGl2ZSApIHtcbiAgICAkcmVzdWx0IDogY2FsYygtMSAqICN7JHJlc3VsdH0pO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xuXG59IFxuXG4vLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBzcGFjZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tc3BhY2VyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRzcGFjZXIwIDogdmFyKC0tc3BhY2VyMCk7ICRzcGFjZXIwLSA6IHZhcigtLXNwYWNlcjAtKTtcbiRzcGFjZXIgIDogdmFyKC0tc3BhY2VyMSk7ICRzcGFjZXItICA6IHZhcigtLXNwYWNlcjEtKTtcbiRzcGFjZXIyIDogdmFyKC0tc3BhY2VyMik7ICRzcGFjZXIyLSA6IHZhcigtLXNwYWNlcjItKTtcbiRzcGFjZXIzIDogdmFyKC0tc3BhY2VyMyk7ICRzcGFjZXIzLSA6IHZhcigtLXNwYWNlcjMtKTtcbiRzcGFjZXI0IDogdmFyKC0tc3BhY2VyNCk7ICRzcGFjZXI0LSA6IHZhcigtLXNwYWNlcjQtKTtcbiRzcGFjZXI1IDogdmFyKC0tc3BhY2VyNSk7ICRzcGFjZXI1LSA6IHZhcigtLXNwYWNlcjUtKTtcbiRzcGFjZXI2IDogdmFyKC0tc3BhY2VyNik7ICRzcGFjZXI2LSA6IHZhcigtLXNwYWNlcjYtKTtcblxuLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4vLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIGd1dHRlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1ndXR0ZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJGd1dHRlcjAgOiB2YXIoLS1ndXR0ZXIwKTsgJGd1dHRlcjAtIDogdmFyKC0tZ3V0dGVyMC0pO1xuJGd1dHRlciAgOiB2YXIoLS1ndXR0ZXIxKTsgJGd1dHRlci0gIDogdmFyKC0tZ3V0dGVyMS0pO1xuJGd1dHRlcjIgOiB2YXIoLS1ndXR0ZXIyKTsgJGd1dHRlcjItIDogdmFyKC0tZ3V0dGVyMi0pO1xuJGd1dHRlcjMgOiB2YXIoLS1ndXR0ZXIzKTsgJGd1dHRlcjMtIDogdmFyKC0tZ3V0dGVyMy0pO1xuJGd1dHRlcjQgOiB2YXIoLS1ndXR0ZXI0KTsgJGd1dHRlcjQtIDogdmFyKC0tZ3V0dGVyNC0pO1xuJGd1dHRlcjUgOiB2YXIoLS1ndXR0ZXI1KTsgJGd1dHRlcjUtIDogdmFyKC0tZ3V0dGVyNS0pO1xuJGd1dHRlcjYgOiB2YXIoLS1ndXR0ZXI2KTsgJGd1dHRlcjYtIDogdmFyKC0tZ3V0dGVyNi0pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ3VzdG9tIFByb3BlcnRpZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuQHVzZSAnc2FzczptYXRoJztcblxuOnJvb3Qge1xuXG4gIC8vIENvbG91cnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tcHJpbWFyeSAgICAgICAgIDogI3skYmx1ZX07IFxuICAtLXNlY29uZGFyeSAgICAgICA6ICN7JHJlZH07IFxuXG4gIC8vIEJyZWFrcG9pbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuICAgIC0tYnJlYWtwb2ludC0jeyRuYW1lfSA6ICN7JHZhbHVlfTtcbiAgfVxuXG4gIC8vIEZvbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBcbiAgLS1mb250LWNvbG91ciAgICAgICAgOiAjeyRmb250LWNvbG91cn07XG4gIC0taGVhZGluZy1jb2xvdXIgICAgIDogI3t2YXIoLS1wcmltYXJ5LCAkYmx1ZSl9O1xuICAtLXN1Yi1oZWFkaW5nLWNvbG91ciA6ICN7dmFyKC0tc2Vjb25kYXJ5LCAkcmVkKX07XG5cbiAgLy8gVHJhbnNpdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLS10cmFuc2l0aW9uLWR1cmF0aW9uIDogI3skdHJhbnNpdGlvbi1kdXJhdGlvbn07XG4gIC0tdHJhbnNpdGlvbi1lYXNlICAgICA6ICN7JHRyYW5zaXRpb24tZWFzZX07XG4gIC0tdHJhbnNpdGlvbi1kZWxheSAgICA6ICN7JHRyYW5zaXRpb24tZGVsYXl9O1xuXG4gIC8vIExheW91dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC0tYnJlYWRjcnVtYi1oZWlnaHQgOiA5MHB4O1xuICAtLWFuY2hvcnMtaGVpZ2h0IDogNjBweDtcbiAgLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldCA6IC0xNXB4O1xuICAtLW1haW4tbWF4LXdpZHRoIDogOTAwcHg7XG4gIC0tbmF2aWdhdGlvbi1oZWlnaHQ6IDE0M3B4O1xuXG4gIC0tc2lkZWJhci13aWR0aCA6IGNsYW1wKCN7JHNpZGViYXItd2lkdGggLSBtYXRoLmRpdigkc2lkZWJhci13aWR0aCwgMTAwKSAqIDQwfSwgMzB2dywgI3skc2lkZWJhci13aWR0aH0pO1xuICBcbiAgQHN1cHBvcnRzIG5vdCAoIHdpZHRoOmNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgIC0tc2lkZWJhci13aWR0aCA6ICN7JHNpZGViYXItd2lkdGh9O1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKGxhcmdlKSB7XG4gICAgICAtLXNpZGViYXItd2lkdGggOiAzMDBweDtcbiAgICB9XG4gIH1cblxuICAvLyBVbml0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLWdhcCAgICA6ICN7JGJhc2UtZ2FwfTtcbiAgLS1ndXR0ZXIgOiAjeyRiYXNlLWd1dHRlcn07XG4gIC0tc3BhY2VyIDogI3skYmFzZS1zcGFjZXJ9O1xuIFxuICAvLy8gU2V0IHRoZSBndXR0ZXJzIGFuZCBzcGFjZXJzIHdpdGggY2xhbXAgXG4gIC8vLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9jbGFtcFxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIDYge1xuXG4gICAgLS1ndXR0ZXIjeyRpfSAgOiAje2d1dHRlcigkaSl9OyBcbiAgICAtLWd1dHRlciN7JGl9LSA6ICN7Z3V0dGVyKCRpLCAkdXNlLW5lZ2F0aXZlIDogdHJ1ZSl9O1xuXG4gICAgJHNwYWNlci1ncm93dGggOiBpZigkaSA9PSAwLCAxLCAkaSAqIDMpO1xuICAgIC0tc3BhY2VyI3skaX0gIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgpfTsgXG4gICAgLS1zcGFjZXIjeyRpfS0gOiAje3NwYWNlcigkc3BhY2VyLWdyb3d0aCwgJHVzZS1uZWdhdGl2ZSA6IHRydWUpfTtcbiAgfVxuICBcbiAgLy8vIFNldHMgdGhlIGd1dHRlcnMgYW5kIHNwYWNlcnMgdXNpbmcgdGhlIGNhbGMgXG4gIC8vLyBtZXRob2QgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBjbGFtcFxuICBAc3VwcG9ydHMgbm90ICggd2lkdGg6Y2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCA2IHtcblxuICAgICAgLS1ndXR0ZXIjeyRpfSAgOiAje2d1dHRlcigkaSwgJHVzZS1jbGFtcCA6IGZhbHNlICl9OyBcbiAgICAgIC0tZ3V0dGVyI3skaX0tIDogI3tndXR0ZXIoJGksICR1c2UtY2xhbXAgOiBmYWxzZSwgJHVzZS1uZWdhdGl2ZSA6IHRydWUgKX07XG5cbiAgICAgICRzcGFjZXItZ3Jvd3RoIDogaWYoJGkgPT0gMCwgMiwgJGkgKiA0KTtcbiAgICAgIC0tc3BhY2VyI3skaX0gIDogI3tzcGFjZXIoJHNwYWNlci1ncm93dGgsICR1c2UtY2xhbXAgOiBmYWxzZSApfTsgXG4gICAgICAtLXNwYWNlciN7JGl9LSA6ICN7c3BhY2VyKCRzcGFjZXItZ3Jvd3RoLCAkdXNlLWNsYW1wIDogZmFsc2UsICR1c2UtbmVnYXRpdmUgOiB0cnVlICl9O1xuICAgIH0gICAgXG4gIH1cblxuICAvLy8gVGhpcyBpcyB0aGUgY2FsY3VsYXRlZCB3aWR0aCBvZiBhIHNpbmdsZSBndXR0ZXIgdGhhdCBvY2N1cnMgd2hlbiB0aGUgdXNlcnNcbiAgLy8vIHZpZXdwb3J0IGlzIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnQuIFByaW1hcmx5IHVzZWQgdG9cbiAgLy8vIG9mZnNldCBvdmVyYmxvd24gY29udGVudCBmb3IgcHJldmVudGluZyBob3Jpem9udGFsIHNjcm9sbGluZyBvbiB0aGUgPGJvZHk+LlxuICAvLyAtLWNvbXB1dGVkLWd1dHRlciA6IGNhbGMoKCgxMDB2dyAtICN7dmFyKC0tYnJlYWtwb2ludC1tYXgpfSkgLyAyKSAtICN7dmFyKC0tZ3V0dGVyMil9KTtcbiAgLS1jb21wdXRlZC1ndXR0ZXIgOiBjYWxjKCgoMTAwdncgLSAje3ZhcigtLWJyZWFrcG9pbnQtbWF4KX0pIC8gMikpO1xuXG5cbn0iLCIvLy8gR2xvYmFsIHR5cG9ncmFwaGljIHN0eWxpbmcgdGhhdCBlZmZlY3RzIGV2ZXJ5dGhpbmcuXG4vLy8gSWYgeW91IHdhbnQgdG8gdXBkYXRlIHN0eWxpbmcgZm9yIGNvbnRlbnQgYmxvY2sgdGV4dCBmaWVsZHMsIGludHJvZHVjdGlvbiBmaWVsZHMsXG4vLy8gb3IgYW55dGhpbmcgYXNzaWduZWQgYSAudGV4dCBjbGFzcyBvbiBpdCdzIGNvbnRhaW5lciB0aGVuIGVkaXQgdGhpcyBmaWxlOlxuLy8vIEBzZWUgL3NyYy9zYXNzL2NvbXBvbmVudHMvdGV4dFxuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbGF0byc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1ib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLWJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tYm9sZC5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdsYXRvJztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXNlbWlib2xkLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2xhdG8nO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL2xhdG8tcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbGF0by1yZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9sYXRvLXJlZ3VsYXIub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnbW9udHNlcnJhdCc7XG4gIHNyYzogdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdtb250c2VycmF0JztcbiAgc3JjOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9mb250cy9tb250c2VycmF0LW1lZGl1bS1pdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtbWVkaXVtLWl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCcuLi8uLi8uLi9hc3NldHMvZm9udHMvbW9udHNlcnJhdC1tZWRpdW0taXRhbGljLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnO1xuICBzcmM6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgIHVybCgnLi4vLi4vLi4vYXNzZXRzL2ZvbnRzL21vbnRzZXJyYXQtc2VtaWJvbGQub3RmJykgZm9ybWF0KCdvcGVudHlwZScpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuYm9keSB7XG4gIEBpbmNsdWRlIGZvbnQtbW9udHNlcnJhdCgpO1xuICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIsICRmb250LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAkZm9udC1saW5lLWhlaWdodDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnRzaXplKCRmb250LXNpemUtbWluLCAkZm9udC1zaXplLW1heCk7XG59XG5cbmgxIHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oMTtcbn1cbmgyIHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbn1cbmgzIHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oMztcbn1cbmg0IHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oNDtcbn1cbmg1IHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oNTtcbn1cbmg2IHtcbiAgQGluY2x1ZGUgaGVhZGluZy1oNjtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpO1xuICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIsIHZhcigtLWZvbnQtY29sb3VyKSk7XG4gIHRleHQtd3JhcDogcHJldHR5O1xuXG4gICYuc3ViLWhlYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpO1xuICAgIEBpbmNsdWRlIGZvbnQtbGF0byhzZW1pLWJvbGQpO1xuICB9XG5cbiAgc3BhbixcbiAgc3Ryb25nLFxuICBwIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgfVxufVxuXG5xLFxuYmxvY2txdW90ZSB7XG4gIHF1b3RlczogJ+KAnCcgJ+KAnScgJ+KAmCcgJ+KAmSc7XG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTtcbiAgfVxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogY2xvc2UtcXVvdGU7XG4gIH1cbn1cblxuYSB7XG4gIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlcjtcbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgJi5leHRlcm5hbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBzdmcuZXh0ZXJuYWwtbGluayB7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB3aWR0aDogMC44ZW07XG4gICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgIH1cbiAgfVxufVxuXG5vbCxcbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG5saSB7XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xuICB9XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiBmb250LXNpemUoMTApO1xuICBsaW5lLWhlaWdodDogMS44O1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWhyLWNvbG91ciwgJGdyZXk0KTtcbiAgbWFyZ2luLXRvcDogJHNwYWNlcjA7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZXIwO1xufVxuXG4ubm90ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY1YmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmUxM2M7XG4gIHBhZGRpbmc6ICRndXR0ZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogIzk3ODAwMjtcbiAgfVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdQbGVhc2UgTm90ZSc7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjOTc4MDAyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEZvbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ2NvbG91cnMnIGFzICo7XG5cbiRjb2xvdXIgICAgICA6ICRncmV5MjtcbiRzaXplICAgICAgICA6IDEuNXJlbSAhZGVmYXVsdDtcbiRzaXplLW1pbiAgICA6IDEuNHJlbSAhZGVmYXVsdDsgXG4kc2l6ZS1tYXggICAgOiAxLjZyZW0gIWRlZmF1bHQ7IFxuJGxpbmUtaGVpZ2h0IDogMS42ICFkZWZhdWx0OyBcblxuJHNpemUtaDEgICAgIDogNi4xZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMS1taW4gOiA0ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMiAgICAgOiAzLjJlbSAhZGVmYXVsdDtcbiRzaXplLWgzICAgICA6IDIuNWVtICFkZWZhdWx0O1xuJHNpemUtaDQgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNSAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiRzaXplLWg2ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuICBcbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gTGF0byBGb250XG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoaXMgZm9udCBpdCBwcmltYXJpbHkgdXNlZCBmb3IgaGVhZGluZ3MgKDxoKj4gdGFncylcbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LWxhdG8oYm9sZClcblxuQG1peGluIGxhdG8oJHdlaWdodDpyZWd1bGFyKSB7XG5cbiAgZm9udC1mYW1pbHk6bGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG4gIEBpZiAoICR3ZWlnaHQgPT0gJ3JlZ3VsYXInKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ3NlbWktYm9sZCcgb3IgJHdlaWdodCA9PSAnc2VtaWJvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gTW9udHNlcnJhdCBGb250XG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIFRoaXMgaXMgdGhlIGJhc2UgZm9udCB1c2VkIGZvciBhbGwgc3RhbmRhcmQgY29weSB0aHJvdWdob3V0IHRoZSBzaXRlLlxuLy8vIEBleGFtcGxlIEBpbmNsdWRlIGZvbnQtbW9udHNlcnJhdCgpXG5cbkBtaXhpbiBtb250c2VycmF0KCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5Om1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIFxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnaXRhbGljJykge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9IEBlbHNlIGlmICggJHdlaWdodCA9PSAnYm9sZCcpIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfVxuXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIFJlc3BvbnNpdmUgRm9udHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3Jlc3BvbnNpdmUtZm9udHNpemVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJy4uL2hlbHBlcnMvYnJlYWsnO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5cbkBtaXhpbiByZXNwb25zaXZlLWZvbnRzaXplKCRtaW4sICRtYXgsICRzY2FsZXIgOiAxLjV2dywgJGJyZWFrcG9pbnRzIDogKG1pbjo5NTBweCwgbWF4OjE2MDBweCkpIHtcbiAgXG5cdC8vIFJlc3BvbnNpdmUgZm9udHNpemVcbiAgQHN1cHBvcnRzICggd2lkdGg6Y2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG4gICAgZm9udC1zaXplOmNsYW1wKCN7JG1pbn0sICN7JHNjYWxlcn0sICN7JG1heH0pOyAgIFxuXHR9XG5cblx0Ly8gUmVzcG9uc2l2ZSBmb250c2l6ZSBmYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0ICdjbGFtcCdcblx0QHN1cHBvcnRzIG5vdCAod2lkdGg6Y2xhbXAoMXB4LCA1dncsIDEwcHgpKSB7XG5cdFx0QGluY2x1ZGUgYnJlYWsuaW4obWFwLmdldCgkYnJlYWtwb2ludHMsICdtaW4nKSkgeyBmb250LXNpemU6JG1pbjsgfVxuXHRcdEBpbmNsdWRlIGJyZWFrLm91dChtYXAuZ2V0KCRicmVha3BvaW50cywgJ21heCcpKSB7IGZvbnQtc2l6ZTokbWF4OyB9XG5cdH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDIsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgzLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNCwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDUsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg2LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJ0b3BcIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpLCAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJib3R0b21cIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpLCAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2Vcbi8vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJrbm90dG9uL2RvZ2dpc3R5bGUvYmxvYi9tYXN0ZXIvbGlicmFyeS9zcmMvY3JlYXRlL191bml0cy5zY3NzXG5cbi8vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHZhbHVlcyBkZWZpbmVkIGJlbG93LiBcblxuQGZvcndhcmQgJ2NyZWF0ZS91bml0cycgd2l0aCAoXG5cbiAgLy8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuICAvLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbiAgLy8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuICAvLy8gQHJlc3VsdCA6ICRnYXAwLCAkZ2FwLCAkZ2FwMiwgJGdhcDMsICRnYXA0LCAkZ2FwNSAsICRnYXA2LCAkZ2FwMC0sICRnYXAtLCAkZ2FwMi0sICRnYXAzLSwgJGdhcDQtLCAkZ2FwNS0gYW5kICRnYXA2LVxuICBcbiAgJGdhcCA6IDE2cHgsXG5cbiAgLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbiAgLy8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4gIC8vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbiAgLy8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG4gIC8vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbiAgLy8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiAgLy8vIEByZXN1bHQgOiAkc3BhY2VyMCwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlciwgJHNwYWNlcjQsICRzcGFjZXI1LCAkc3BhY2VyNiwgJHNwYWNlcjAtLCAkc3BhY2VyLSwgJHNwYWNlci0sICRzcGFjZXItLCAkc3BhY2VyNC0sICRzcGFjZXI1LSBhbmQgJHNwYWNlcjYtXG4gIFxuICAkc3BhY2VyIDogNHZoLCBcblxuICAvLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuICAvLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuICAvLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuICAvLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4gIC8vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuICAvLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4gIC8vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuICAvLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuICAvLy8gQHJlc3VsdCA6ICRndXR0ZXIwLCAkZ3V0dGVyLCAkZ3V0dGVyMiwgJGd1dHRlcjMsICRndXR0ZXI0LCAkZ3V0dGVyNSwgJGd1dHRlcjYsICRndXR0ZXIwLSwgJGd1dHRlci0sICRndXR0ZXIyLSwgJGd1dHRlcjMtLCAkZ3V0dGVyNC0sICRndXR0ZXI1LSBhbmQgJGd1dHRlcjYtXG4gIFxuICAkZ3V0dGVyIDogM3Z3LCBcblxuKTtcblxuJGJvcmRlci1yYWRpdXMgOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA2cHgpO1xuJHNpZGViYXItd2lkdGggOiA1MDBweDsiLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIExheW91dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gTGF5b3V0IHN0eWxpbmcgc2hvdWxkIGJlIHVzZWQgdG8gYWRqdXN0IGxheW91dCBwcm9wZXJ0aWVzIG9ubHkuXG4vLyBXaGVyZSBwb3NzaWJsZSwgaXQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIG1hbmFnZSB0aGUgYWVzdGV0aWNzIG9mIGEgcGFnZS5cbi8vIEluc3RlYWQgb25seSB3aWR0aHMsIGhlaWdodCwgZGlzcGxheSwgZ3JpZCwgcG9zaXRpb24sIHBhZGRpbmcsIG1hcmdpbnMsIG9yZGVyLCBhbmQgYWxpa2Vcbi8vIHNob3VsZCBiZSB0aGUgcHJvcGVydGllcyBkZWZpbmVkIGluIHRoZXNlIGZpbGVzLiBLZWVwIHRoZSBsYXlvdXRzIGhlcmUgYW5kXG4vLyBjb21wbmVudCBzdHlsaW5nIGluIHRoZWlyIHJlc3BlY3RpdmUgZmlsZXMuXG5cbkBtaXhpbiBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCkge1xuICAtLXRyYW5zbGF0ZVg6IDA7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3ICsgdmFyKC0tc2Nyb2xsYmFyLXdpZHRoLCAwcHgpKTtcbiAgbGVmdDogI3skZ3V0dGVyLX07XG4gIEBpbmNsdWRlIGJyZWFrLW91dChtYXgpIHtcbiAgICBsZWZ0OiBjYWxjKCgtMSAqIHZhcigtLWNvbXB1dGVkLWd1dHRlcikpIC0gI3skZ3V0dGVyfSk7XG4gIH1cbn1cblxuJGNvbXBvbmVudC10aGVtZXM6IChcbiAgJ3JlZCc6ICRyZWQsXG4gICdibHVlJzogJGJsdWUsXG4gICdncmV5JzogJGdyZXkzLFxuICAnd2hpdGUnOiAkd2hpdGUsXG4pO1xuXG5ib2R5IHtcbiAgLy8gR3JpZCBQb3NpdGlvbnNcbiAgLy8gSSdtIHVzaW5nIG51bWJlcnMgcmF0aGVyIHRoYW4gZ3JpZCBhc3JlYXMgYmVjYXVzZSB0aGUgcG9zaXRpb25pbmcgZG9lc24ndFxuICAvLyBuZWVkIHRvIGJlIGFueSBtb3JlIGNvbXBsZXggdGhhbiBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDQgZGVwZW5kaW5nIG9uXG4gIC8vIHRoZSBsYXlvdXQgcmVxdWlyZW1lbnRzLiBUaGlzIGlzIGVzc2VudGlhbGx5IGRvbmUgdG8gaGFuZGxlIGNpcmNvbXN0YW5jZXNcbiAgLy8gd2hlcmUgc29tZSBwYWdlcyBkb24ndCByZXF1aXJlIGEgYnJlYWRjcnVtYiBiYXIgb3IgYW5jaG9yIGJhci5cblxuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctYW5jaG9yczogMztcbiAgLS1yb3ctaGVhZGVyOiA0O1xuICAtLXJvdy1tYWluOiA1O1xuICAtLXJvdy1iYWNrZ3JvdW5kOiAxO1xuICAtLXJvdy1zaWRlYmFyOiA0IC8gc3BhbiAzO1xuICAtLXJvdy1mb290ZXI6IDEwMDtcbiAgLS1yb3dzOiBhdXRvO1xuXG4gIC0tY29sdW1uLWxlZnQ6IDI7XG4gIC0tY29sdW1uLW1haW46IDIgLyBzcGFuIDI7XG4gIC0tY29sdW1uLXJpZ2h0OiA0O1xuICAtLWNvbHVtbi1mdWxsOiAyIC8gLTI7XG4gIC0tY29sdW1uLWd1dHRlcjogbWlubWF4KDAsIDFmcik7XG4gIC0tY29sdW1uLWNvbnRlbnQ6IG1pbm1heCgwLCBjYWxjKCN7JG1lZGlhLW1heH0gLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSAtICN7JGd1dHRlcjR9KSk7XG4gIC0tY29sdW1uLXNpZGViYXI6IHZhcigtLXNpZGViYXItd2lkdGgpO1xuICAtLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1ndXR0ZXIpIHZhcigtLWNvbHVtbi1zaWRlYmFyKSB2YXIoLS1jb2x1bW4tY29udGVudCkgdmFyKC0tY29sdW1uLXNpZGViYXIpIHZhcigtLWNvbHVtbi1ndXR0ZXIpO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1pbi13aWR0aDogJG1lZGlhLW1pbjtcbiAgZ3JpZC1nYXA6IDAgJGd1dHRlcjtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiB2YXIoLS1yb3dzKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW5zKTtcblxuICA+ICoge1xuICAgIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gIH1cbn1cblxubmF2aWdhdGlvbi1iYXIge1xuICB6LWluZGV4OiA5OTk7XG4gIGdyaWQtcm93OiB2YXIoLS1yb3ctbmF2aWdhdGlvbik7XG4gICY6bm90KC5pbi12aWV3KSB7XG4gICAgfiAjYnJlYWRjcnVtYnMtYmFyLFxuICAgIH4gI2FuY2hvcnMtYmFyIHtcbiAgICAgIC0tYW5jaG9ycy1oZWlnaHQ6IDUwcHg7XG4gICAgICAvLyAtLWJyZWFkY3J1bWItaGVpZ2h0OiA3MHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBCcmVhZGNydW1icyBCYXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4jYnJlYWRjcnVtYnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1icmVhZGNydW1icyk7XG4gIGhlaWdodDogdmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpO1xuICAmLnN0aWNreSB7XG4gICAgdG9wOiB2YXIoLS1icmVhZGNydW1iLWFuZC1hbmNob3JzLXN0aWNreS11bmRlcnNldCk7XG4gIH1cbn1cblxuLy8gQW5jaG9yIEJhciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuI2FuY2hvcnMtYmFyIHtcbiAgei1pbmRleDogMjtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1hbmNob3JzKTtcbiAgaGVpZ2h0OiB2YXIoLS1hbmNob3JzLWhlaWdodCk7XG4gICYuc3RpY2t5IHtcbiAgICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpIC0gMXB4ICsgKHZhcigtLWJyZWFkY3J1bWItYW5kLWFuY2hvcnMtc3RpY2t5LXVuZGVyc2V0KSAqIDIpKTtcbiAgICAvLyB0b3A6Y2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgLSAxcHgpO1xuICB9XG59XG5cbi8vIEhlYWRlciBDb250ZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5oZWFkZXIge1xuICBncmlkLXJvdzogdmFyKC0tcm93LWhlYWRlcik7XG4gIGdyaWQtY29sdW1uOiB2YXIoLS1jb2x1bW4tbWFpbik7XG4gIG1heC13aWR0aDogdmFyKC0tbWFpbi1tYXgtd2lkdGgpO1xufVxuXG4jZm9vdGVyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1mb290ZXIpO1xufVxuXG4vLyBNYWluIENvbnRlbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5tYWluIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1tYWluKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1tYWluKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLy8gRmlyc3QgbGV2ZWwgZWxlbWVudHMgZm9yIG1haW4gY2hpbGRlbiBhbmQgc2libGlucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIHRvIHRoZSBtYWluIGVsZW1lbnQgKGV4Y2x1ZGluZyBzaWRlLWJhciBhbmQgZm9vdGVyKVxuXG4gID4gKixcbiAgfiBzZWN0aW9uLFxuICB+IGFzaWRlLFxuICB+IGRpdixcbiAgfiBzZXJ2aWNlLWNlbnRyZS1maW5kZXIsXG4gIH4gbWFya2V0cy1zdW1tYXJ5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgfiBkaXY6aGFzKGRpdiN0cnVlbmRvX2NvbnRhaW5lcikge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBzZXJ2aWNlLWNlbnRyZS1maW5kZXIgcGljdHVyZSB7XG4gICAgQGluY2x1ZGUgc2lkZWJhci1ibG93b3V0LW9mZnNldCgpO1xuICB9XG59XG5cbi8vIFNpZGViYXIgQ29udGVudCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnNpZGUtYmFyIHtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1zaWRlYmFyKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLWNvbHVtbi1yaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcbiAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyO1xuXG4gID4gZGl2IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtZ2FwOiAkZ3V0dGVyICRndXR0ZXI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KHZhcigtLXNpZGViYXItd2lkdGgpLCAxZnIpKTtcbiAgICAmLnN0aWNreSB7XG4gICAgICB0b3A6IGNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpICsgI3skZ3V0dGVyfSk7XG4gICAgfVxuICAgID4gKiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJHRoZW1lLCAkY29sb3VyIGluICRjb21wb25lbnQtdGhlbWVzIHtcbiAgICA+IGRpdiA+ICouI3skdGhlbWV9IHtcbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JGNvbG91cn07XG4gICAgICBAaWYgKCR0aGVtZSA9PSAnd2hpdGUnKSB7XG4gICAgICAgIC0tYm9yZGVyLWNvbG91cjogI3skZ3JleTN9O1xuICAgICAgfVxuICAgICAgQGlmICgkdGhlbWUgPT0gJ2dyZXknKSB7XG4gICAgICAgIC0tYm9yZGVyLWNvbG91cjogI3skZ3JleTR9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5hc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9JzEnXSA+IG5hdiB7XG4gIHRvcDogY2FsYyh2YXIoLS1icmVhZGNydW1iLWhlaWdodCkgKyB2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbn1cblxuQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgYm9keSB7XG4gICAgPiAqIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAtLWNvbHVtbnM6IHZhcigtLWNvbHVtbi1ndXR0ZXIpIHZhcigtLWNvbHVtbi1jb250ZW50KSB2YXIoLS1jb2x1bW4tZ3V0dGVyKTtcbiAgICAtLWNvbHVtbi1tYWluOiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1jb2x1bW4tbGVmdDogdmFyKC0tY29sdW1uLWZ1bGwpO1xuICAgIC0tY29sdW1uLXJpZ2h0OiB2YXIoLS1jb2x1bW4tZnVsbCk7XG4gICAgLS1yb3ctc2lkZWJhcjogYXV0bztcblxuICAgIHNpZGUtYmFyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICAgICAgPiBkaXYge1xuICAgICAgICBncmlkLWdhcDogJHNwYWNlciAkZ3V0dGVyO1xuICAgICAgICAmLnN0aWNreSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIHdpbGwgZml4IHNpZGViYXIgY29tcG9uZW50cyBmcm9tIGJsb3dpbmcgb3V0IG9mIHRoZSB2aWV3cG9ydCBvbiBkZXZpY2VzXG4vLyB3aGVyZSB0aGUgc2NyZWVuIGlzIHNtYWxsZXIgdGhhbiB0aGUgbWluaXVtICgzMjBweClcbkBpbmNsdWRlIGJyZWFrLWluKCRtZWRpYS1taW4gKyAoJGJhc2UtZ2FwICogMikpIHtcbiAgYm9keSB7XG4gICAgLS1zaWRlYmFyLXdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIEJsb3dvdXQgQmFja2dyb3VuZHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi50aGVtZWQge1xuICBAZWFjaCAkdGhlbWUsICRjb2xvdXIgaW4gJGNvbXBvbmVudC10aGVtZXMge1xuICAgICYuI3skdGhlbWV9IHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvdXI7XG4gICAgICAmLmJsb3dvdXQgKyAudGhlbWVkLiN7JHRoZW1lfSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIpO1xuICAgICAgICAmLmxpZ2h0IHtcbiAgICAgICAgICAtLWJvcmRlci10b3AtY29sb3VyOiAjeyRncmV5NH07XG4gICAgICAgIH1cbiAgICAgICAgJi5kYXJrIHtcbiAgICAgICAgICAtLWJvcmRlci10b3AtY29sb3VyOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICY6bm90KC5ibG93b3V0KSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2VyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICYud2hpdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXkzO1xuICAgICAgKyAuYmxvd291dC53aGl0ZSxcbiAgICAgICsgOm5vdCgudGhlbWVkKSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzcGFjZXItO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYmxvd291dCB7XG4gIEBpbmNsdWRlIGJhY2tncm91bmQtYmxvd291dCB7XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oJG1lZGlhLW1pbiArICRiYXNlLWdhcCkge1xuICAgICAgdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgbGVmdDogJGdhcC07XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyAtIHZhcigtLXNjcm9sbGJhci13aWR0aCwgMHB4KSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsLW1lZGl1bSkge1xuICAgICAgdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyLTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gdmFyKC0tc3JvbGxiYXItd2lkdGgsIDBweCkpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBAYXQtcm9vdCBib2R5Om5vdChtb2JpbGUpIG1haW4gLmJsb3dvdXQ6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzaWRlYmFyLWJsb3dvdXQtb2Zmc2V0KCk7XG4gICAgICB3aWR0aDogY2FsYygxMDB2dyArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxuICBAYXQtcm9vdCBib2R5Lm1vYmlsZSBtYWluIC5ibG93b3V0OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgc2lkZWJhci1ibG93b3V0LW9mZnNldCgpO1xuICAgIHdpZHRoOiBjYWxjKDEwMHZ3ICsgI3skZ3V0dGVyfSk7XG4gIH1cbn1cblxuLy8gQmFja2dyb3VuZCBJbWFnZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuYmFja2dyb3VuZC1pbWFnZSxcbmJhY2tncm91bmQtdmlkZW8ge1xuICB6LWluZGV4OiAtMTtcbiAgZ3JpZC1yb3c6IHZhcigtLXJvdy1iYWNrZ3JvdW5kKTtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgJi5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiA0O1xuICB9XG59XG5cbmltZ1tkYXRhLXNyY10sXG52aWRlb1tkYXRhLXNyY10ge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgb3BhY2l0eTogMDtcblxuICAmLmxvYWRlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4vLyBTcGVjaWFsIFJ1bGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY2VudGVyLWFsbCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6ICRzcGFjZXIyO1xuICBnYXA6ICRzcGFjZXIgIWltcG9ydGFudDtcbiAgPiAudGV4dCA6aXMoaDEsIGgyLCBoMywgaDQsIGg1LCBoNikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHNwYW4ge1xuICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeSk7XG4gICAgfVxuICB9XG4gIGFydGljbGUtbGlzdCB7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDQyMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gQWRkcyBhIHRvcCBib3JkZXIgKHdpdGhvdXQgc2hpZnRpbmcgZWxlbWVudHMgYXJvdW5kIGJ5IDFweCkgdG8gbm9uZSB0aGVtZWQgc2libGluZ3Mgb2YgdGhlIG1haW4gZWxlbWVudFxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgOm5vdCgudGhlbWVkKTpub3QoI2Zvb3Rlcik6bm90KHNpZGUtYmFyKSB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IHZhcigtLWJvcmRlci10b3AtY29sb3VyLCAjeyRncmV5NH0pO1xufVxuLy8gbWFpbiA+ICoudGhlbWVkICsgOm5vdCgudGhlbWVkKSB7IGJveC1zaGFkb3c6IGluaXRpYWw7IH1cbm1haW4gPiAqLnRoZW1lZC5jb250ZW50LWJsb2NrIHtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cbm1haW4gPiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbn1cbm1haW4gfiAqLnRoZW1lZCArIDpub3QoLnRoZW1lZCk6bm90KCNmb290ZXIpLFxuYm9keS5iYWNrZ3JvdW5kLXBvc2l0aW9uZWQtYmVoaW5kLWhlYWRlciBtYWluID4gKjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IGluaXRpYWw7XG59XG5cbi8vIEFkZHMgYSBib3JkZXIgb24gdGhlIGZpcnN0IGNoaWxkIGlmIGl0J3Mgbm90IHRoZW1lZCBvciBpcyB3aGl0ZVxubWFpbiA+ICo6Zmlyc3QtY2hpbGQ6bm90KC50aGVtZWQpLFxubWFpbiA+ICo6Zmlyc3QtY2hpbGQud2hpdGUge1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI3skZ3JleTR9KTtcbn1cblxuLy8gbWFpbiB+IHNlY3Rpb24sIG1haW4gfiBhc2lkZSwgbWFpbiB+IGRpdiwgbWFpbiB+IGxvZ28tc2Nyb2xsZXIgeyBncmlkLXJvdzogbm9uZTsgfVxuLy8gbWFpbiB+IDpub3Qoc2lkZS1iYXIpOm5vdChiYWNrZ3JvdW5kLWltYWdlKTpub3QoI2Zvb3RlcikgeyBncmlkLXJvdzogbm9uZTsgfVxuXG4vLyBSZW1vdmVzIG1hcmdpbiBvbiBub25lIHRoZW1lZCBzaWJsaW5ncyBvZiBhbmQgaW4gdGhlIG1haW4gZWxlbWVudCB0aGF0IGFsc28gYXJlIG5vdCBibG93bm91dFxubWFpbiB+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpLFxubWFpbiA+ICo6bm90KC50aGVtZWQpICsgLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gQWRkZHMgYSBsYXJnZXIgc3BhY2VyIHRvIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1haW4gZWxlbWVudCB0aGF0IGFyZSB0aGVtZWQgYnV0IG5vdCBibG93biBvdXRcbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbn1cbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG59XG5cbi8vIEFkZHMgYSBsYXJnZXIgc3BhY2VyIHRvIHRoZW1lZCBub24gYmxvd25vdXQgZWxlbWVudHNcbm1haW4gPiAudGhlbWVkOm5vdCguYmxvd291dCkgKyAuYmxvd291dCB7XG4gIG1hcmdpbi10b3A6ICRzcGFjZXI7XG59XG5cbi5oZWFkZXIgfiBtYWluID4gLnRoZW1lZDpub3QoLmJsb3dvdXQpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxubWFpbiB+IGRpdjpoYXMoI0Nvb2tpZWJvdFdpZGdldCkge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbkBpbmNsdWRlIGNvbXBvbmVudC1kb2VzbnQtZXhpc3RzKCdzaWRlLWJhcicpIHtcbiAgLS1tYWluLW1heC13aWR0aDogYXV0bztcbiAgLS1jb2x1bW4tbWFpbjogdmFyKC0tY29sdW1uLWZ1bGwpO1xufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYnJlYWRjcnVtYnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1hbmNob3JzOiAyO1xuICAtLXJvdy1oZWFkZXI6IDM7XG4gIC0tcm93LW1haW46IDQ7XG5cbiAgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDQ7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDM7XG4gIH1cblxuICAjYW5jaG9ycy1iYXIuc3RpY2t5IHtcbiAgICB0b3A6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAtLXJvdy1zaWRlYmFyOiAzIC8gc3BhbiAzO1xuICAgIHNpZGUtYmFyIGRpdi5zdGlja3ksXG4gICAgYXNpZGUjc3VwcG9ydC1pbmZvcm1hdGlvbiAuZ2xvc3NhcnktdGVybXMsXG4gICAgdGFiYmVkLWNvbnRlbnRbZGF0YS1zdHlsZT0nMSddID4gbmF2IHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1hbmNob3JzLWhlaWdodCkgKyAjeyRndXR0ZXJ9KTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2FuY2hvcnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1icmVhZGNydW1iczogMjtcbiAgLS1yb3ctaGVhZGVyOiAzO1xuICAtLXJvdy1tYWluOiA0O1xuXG4gIGJhY2tncm91bmQtaW1hZ2UuZnVsbCxcbiAgYmFja2dyb3VuZC12aWRlby5mdWxsIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAxIC8gc3BhbiA0O1xuICB9XG4gIGJhY2tncm91bmQtaW1hZ2UuYmVoaW5kLWhlYWRlcixcbiAgYmFja2dyb3VuZC12aWRlby5iZWhpbmQtaGVhZGVyIHtcbiAgICAtLXJvdy1iYWNrZ3JvdW5kOiAzO1xuICB9XG5cbiAgI2JyZWFkY3J1bWJzLWJhci5zdGlja3kge1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCgnc21hbGwtbWVkaXVtJykge1xuICAgIC0tcm93LXNpZGViYXI6IDMgLyBzcGFuIDM7XG4gICAgc2lkZS1iYXIgZGl2LnN0aWNreSxcbiAgICBhc2lkZSNzdXBwb3J0LWluZm9ybWF0aW9uIC5nbG9zc2FyeS10ZXJtcyxcbiAgICB0YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPScxJ10gPiBuYXYge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWFuY2hvcnMtaGVpZ2h0KSArICN7JGd1dHRlcn0pO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBjb21wb25lbnQtZG9lc250LWV4aXN0cygnYnJlYWRjcnVtYnMtYmFyJywgJ2FuY2hvcnMtYmFyJykge1xuICAtLXJvdy1uYXZpZ2F0aW9uOiAxO1xuICAtLXJvdy1oZWFkZXI6IDI7XG4gIC0tcm93LW1haW46IDM7XG4gIC0tcm93LWJhY2tncm91bmQ6IDE7XG5cbiAgYmFja2dyb3VuZC1pbWFnZS5mdWxsLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmZ1bGwge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDEgLyBzcGFuIDU7XG4gIH1cbiAgYmFja2dyb3VuZC1pbWFnZS5iZWhpbmQtaGVhZGVyLFxuICBiYWNrZ3JvdW5kLXZpZGVvLmJlaGluZC1oZWFkZXIge1xuICAgIC0tcm93LWJhY2tncm91bmQ6IDI7XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICBzaWRlLWJhciBkaXYuc3RpY2t5LFxuICAgIGFzaWRlI3N1cHBvcnQtaW5mb3JtYXRpb24gLmdsb3NzYXJ5LXRlcm1zLFxuICAgIHRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9JzEnXSA+IG5hdiB7XG4gICAgICB0b3A6ICRndXR0ZXI7XG4gICAgfVxuICAgIC0tcm93LXNpZGViYXI6IDIgLyBzcGFuIDM7XG4gIH1cbn1cblxuYm9keS5ydWxlLWxhc3QtbWFpbi1zZWN0aW9uLWlzLXRoZW1lZCB7XG4gIEBpbmNsdWRlIGJyZWFrLWluKCdzbWFsbC1tZWRpdW0nKSB7XG4gICAgc2lkZS1iYXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vIEZhdXggTGF5b3V0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5sYXlvdXQge1xuICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhcixcbiAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAubGVmdCxcbiAgICAucmlnaHQge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubGF5b3V0IHtcbiAgICAgICYtY29udGVudC1yaWdodC1zaWRlYmFyLFxuICAgICAgJi1jb250ZW50LWxlZnQtc2lkZWJhciB7XG4gICAgICAgIC0tY29sdW1uLWNvbnRlbnQ6IG1pbm1heCgwLCBjYWxjKCN7JG1lZGlhLW1heH0gLSAodmFyKC0tc2lkZWJhci13aWR0aCkgKiAyKSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZmF1eC1sYXlvdXQtZ3JpZCgkc2VsZWN0b3I6ICdib2R5ID4gLmxheW91dCcsICRicmVha3BvaW50OiAnc21hbGwtbWVkaXVtJykge1xuICBAaW5jbHVkZSBicmVhay1vdXQoJGJyZWFrcG9pbnQpIHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgLy8gQ29udGVudCBvbiB0aGUgcmlnaHQsIHNpZGViYXIgb24gdGhlIGxlZnRcbiAgICAgICYtY29udGVudC1sZWZ0LXNpZGViYXIge1xuICAgICAgICAubGVmdCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIDQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENvbnRlbnQgb24gdGhlIGxlZnQsIHNpZGViYXIgb24gdGhlIHJpZ2h0XG4gICAgICAmLWNvbnRlbnQtcmlnaHQtc2lkZWJhciB7XG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDM7XG4gICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYWluLW1heC13aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMztcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1jb250ZW50LXJpZ2h0LXNpZGViYXIsXG4gICAgICAmLWNvbnRlbnQtbGVmdC1zaWRlYmFyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1jb2x1bW4tc2lkZWJhcikgdmFyKC0tY29sdW1uLWNvbnRlbnQpIHZhcigtLWNvbHVtbi1zaWRlYmFyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZmF1eC1sYXlvdXQtZ3JpZCgpO1xuXG4vLyBUaGlzIGhhbmRsZXMgd2hlbiB0aGVyZSBpcyBub3Qgc2lkZWJhciBidXQgdGhlcmUgaXMgYSBjb250ZW50IGJsb2NrIGNvbXBvbmVudFxuLy8gdGhhdCB3b3VsZCBub3JtYWxseSBiZSBmdWxsIHdpZHRoLiBUaGlzIGtlZXBzIHRoZSBsYXlvdXQgc3R5bGluZyBjb25zaXN0ZW50XG4vLyBhY2Nyb3NzIGZ1bGwgd2lkdGggY29tcG9uZW50cywgY29udGVudCBibG9jayBjb21wb25lbnRzLiBhbmQgc2lkZWJhciBjb21wb25lbnRzLlxuQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ3NpZGUtYmFyJykge1xuICBAaW5jbHVkZSBmYXV4LWxheW91dC1ncmlkKCdtYWluIC5sYXlvdXQnLCAnbWVkaXVtJyk7XG59XG5cbi8vIExpdHRsZSBMYXlvdXQgZmllbGQgY29sdW1uIGNvbnRyb2xzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5jb250ZW50LWJsb2NrIHtcbiAgPiAqIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KDcwMCkge1xuICAgIC0tY29sdW1uLWNvdW50OiA2O1xuXG4gICAgLy8gVGhlIGZpcnN0IG51bWJlciBpbiB0aGUgLmNvbC1YLVggY2xhc3MgbmFtZSByZWZlcmVzIHRvIHRoZSBjb2x1bW4gc3RhcnRpbmcgcG9pbnQsXG4gICAgLy8gVGhlIHNlY29uZCBudW1iZXIgaXMgaG93IG1hbnkgY29sdW1ucyBpdCBzcGFucyBmb3IuXG4gICAgLy8gWW91IG1heSBiZSB3b25kZXJpbmcgd2h5IEkgZGlkbid0IGp1c3Qgc3RpY2sgd2l0aCB0aGUgb25lLWxpbmVyIHVzaW5nIGN1c3RvbSBwcm9wZXJ0aWVzLlxuICAgIC8vIFRoYXQgbWV0aG9kIG9mIGNvbHVtbiBncmlkcyBpcyB0b28gc3RyaWN0IGFuZCB3b3VsZCBuZXZlciByZWxpYWJsZSBicmVha2Rvd25cbiAgICAvLyBuYXRpdmVseSBiZWNhdXNlIHRoZSBjb250ZW50IHdvdWxkIGFsd2F5cyBiZWNvbWUgb3ZlcmJsb3duLlxuICAgIC8vIFdlIGhhZCB0byBnbyB0aGUgbWFudWFsIHdheSBzbyB0aGF0IHdlIGNhbiBhZGRyZXNzIHNwZWNpYWwgc2l0dWF0aW9ucyBhcyBzcGVpY2ZpYyBicmVhayBwb2ludHMuXG5cbiAgICAvLyBPbmUgQ29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMS0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTEtMiB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC0xLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDM7XG4gICAgfVxuICAgIC5jb2wtMS00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiA0O1xuICAgIH1cbiAgICAuY29sLTEtNSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gNTtcbiAgICB9XG4gICAgLmNvbC0xLTYge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDY7XG4gICAgfVxuXG4gICAgLy8gVHdvIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTItMSB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC0yLTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMi0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTItNCB7XG4gICAgICBncmlkLWNvbHVtbjogMiAvIHNwYW4gNDtcbiAgICB9XG4gICAgLmNvbC0yLTUge1xuICAgICAgZ3JpZC1jb2x1bW46IDIgLyBzcGFuIDU7XG4gICAgfVxuXG4gICAgLy8gVGhyZWUgQ29sdW1ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTMtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gMTtcbiAgICB9XG4gICAgLmNvbC0zLTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMy0zIHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTMtNCB7XG4gICAgICBncmlkLWNvbHVtbjogMyAvIHNwYW4gNDtcbiAgICB9XG5cbiAgICAvLyBGb3VyIENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtNC0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gc3BhbiAxO1xuICAgIH1cbiAgICAuY29sLTQtMiB7XG4gICAgICBncmlkLWNvbHVtbjogNCAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC00LTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDQgLyBzcGFuIDM7XG4gICAgfVxuXG4gICAgLy8gRml2ZSBDb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTUtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNSAvIHNwYW4gMjtcbiAgICB9XG4gICAgLmNvbC01LTIge1xuICAgICAgZ3JpZC1jb2x1bW46IDUgLyBzcGFuIDI7XG4gICAgfVxuXG4gICAgLy8gU2l4IENvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAuY29sLTYtMSB7XG4gICAgICBncmlkLWNvbHVtbjogNiAvIHNwYW4gMTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1iZXR3ZWVuKDcwMCwgbGFyZ2UpIHtcbiAgICAtLWNvbHVtbi1jb3VudDogNDtcblxuICAgIC8vIFNwZWNpYWwgUnVsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLmNvbC0xLTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgfVxuICAgIC5jb2wtMS00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAzO1xuICAgIH1cbiAgICAuY29sLTEtNSB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgICB9XG4gICAgLmNvbC00LTMge1xuICAgICAgZ3JpZC1jb2x1bW46IDMgLyAtMTtcbiAgICB9XG5cbiAgICAvLyBCcmVha2Rvd24gUnVsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC5jb2wtMS02IHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtMi0zLFxuICAgIC5jb2wtMi00LFxuICAgIC5jb2wtMi01IHtcbiAgICAgIGdyaWQtY29sdW1uOiAyIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtMy0yLFxuICAgIC5jb2wtMy0zLFxuICAgIC5jb2wtMy00IHtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gLTE7XG4gICAgfVxuICAgIC5jb2wtNC0xLFxuICAgIC5jb2wtNC0yLFxuICAgIC5jb2wtNS0xLFxuICAgIC5jb2wtNi0xIHtcbiAgICAgIGdyaWQtY29sdW1uOiA0IC8gLTE7XG4gICAgfVxuICAgIC5jb2wtNS0yIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxLyAtMTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1iZXR3ZWVuKG1pbiwgNjk5KSB7XG4gICAgLS1jb2x1bW4tY291bnQ6IDI7XG5cbiAgICAuY29sLTEtMSxcbiAgICAuY29sLTMtMSxcbiAgICAuY29sLTUtMSB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICB9XG4gICAgLmNvbC0yLTEsXG4gICAgLmNvbC00LTEsXG4gICAgLmNvbC02LTEge1xuICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWstaW4oNTAwKSB7XG4gICAgICAuY29sLTEtMSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICB9XG4gICAgICAuY29sLTEtNSArIC5jb2wtNi0xIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstb3V0KDUwMCkge1xuICAgICAgLmNvbC0yLTUge1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIH1cbiAgICAgIC5jb2wtMS01IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZXYgU3R5bGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBuYXZpZ2F0aW9uLWJhciwgaGVhZGVyLCBtYWluLCBtYWluID4gKiwgc2lkZS1iYXIsICNmb290ZXIsIGFzaWRlIHtcbi8vICAgcG9zaXRpb246cmVsYXRpdmU7XG4vLyB9XG5cbi8vIG5hdmlnYXRpb24tYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRyZWQsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokcmVkO1xuLy8gfVxuXG4vLyAuaGVhZGVyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRvcmFuZ2UsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokb3JhbmdlO1xuLy8gfVxuXG4vLyAjYnJlYWRjcnVtYnMtYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRibHVlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JGJsdWU7XG4vLyB9XG5cbi8vICNhbmNob3JzLWJhciB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkcHVycGxlLCAwLjUpO1xuLy8gICBib3JkZXItY29sb3I6JHB1cnBsZTtcbi8vIH1cblxuLy8gbWFpbiB7XG4vLyAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgkZ3JlZW4sIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokZ3JlZW47XG4vLyB9XG5cbi8vIHNpZGUtYmFyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRwdXJwbGUsIDAuNSk7XG4vLyAgIGJvcmRlci1jb2xvcjokcHVycGxlO1xuLy8gfVxuXG4vLyAjZm9vdGVyIHtcbi8vICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRicm93biwgMC41KTtcbi8vICAgYm9yZGVyLWNvbG9yOiRicm93bjtcbi8vIH1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWtwb2ludHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha3BvaW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuLi9oZWxwZXJzL2JyZWFrJztcblxuLy8vIFdoZW4gT05MWSB1c2luZyB0aGUgZm9sbG93aW5nIHByZWRlZmluZSBicmVha3BvaW50IG5hbWVzIHlvdSBjYW4gdXNlIHRoaXMgY3JlYXRlIGZpbGUgbGlrZSB0aGlzOlxuLy8vIEBleGFtcGxlIFxuLy8vIEBmb3J3YXJkICdjcmVhdGUvYnJlYWtwb2ludHMnIHdpdGggKFxuLy8vICAgJG1pbiAgICAgICAgICA6IDMyMCxcbi8vLyAgICRzbWFsbCAgICAgICAgOiA0ODAsXG4vLy8gICAkc21hbGwtbWVkaXVtIDogNzIwLFxuLy8vICAgJG1lZGl1bSAgICAgICA6IDk1MCxcbi8vLyAgICRsYXJnZSAgICAgICAgOiAxMTIwLFxuLy8vICAgJG1heCAgICAgICAgICA6IDE2ODBcbi8vLyApO1xuXG4kbWluICAgICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gMzIwcHhcbiRtaW4tc21hbGwgICAgOiBudWxsICFkZWZhdWx0OyBcbiRzbWFsbCAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyA0ODBweFxuJHNtYWxsLW1lZGl1bSA6IG51bGwgIWRlZmF1bHQ7IC8vIDcyMHB4XG4kbWVkaXVtICAgICAgIDogbnVsbCAhZGVmYXVsdDsgLy8gOTUwcHhcbiRtZWRpdW0tbGFyZ2UgOiBudWxsICFkZWZhdWx0OyBcbiRsYXJnZSAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyAxMTIwcHhcbiRsYXJnZS1tYXggICAgOiBudWxsICFkZWZhdWx0OyBcbiRtYXggICAgICAgICAgOiBudWxsICFkZWZhdWx0OyAvLyAxNjgwcFxuXG4vLy8gV2hlbiB1c2luZyBhbnkgbnVtYmVyIG9mIGJyZWFrcG9pbnRzIHdpdGggYW55IG5hbWUgeW91IGNhbiB1c2UgdGhpcyBjcmVhdGUgZmlsZSBsaWtlIHRoaXM6XG4vLy8gQGV4YW1wbGUgXG4vLy8gQGZvcndhcmQgJ2NyZWF0ZS9icmVha3BvaW50cycgd2l0aCAoXG4vLy8gICAkYnJlYWtwb2ludHMgOiAoXG4vLy8gICAgICdtaW4nICAgICAgICAgIDogMzIwLFxuLy8vICAgICAnc21hbGwnICAgICAgICA6IDQ4MCxcbi8vLyAgICAgJ3NtYWxsLW1lZGl1bScgOiA3MjAsXG4vLy8gICAgICduYXYnICAgICAgICAgIDogNjY2LCA8LS0gd29uJ3QgYmUgZXhwb3NlZCBiZWN1YXNlIGl0J3Mgbm90IGEgcHJlZGVmaW5lZCBuYW1lICgkbWVkaWEtbmF2IHdpbGwgZXJyb3IpXG4vLy8gICAgICdtZWRpdW0nICAgICAgIDogOTUwLFxuLy8vICAgICAnbGFyZ2UnICAgICAgICA6IDExMjAsXG4vLy8gICAgICdtYXgnICAgICAgICAgIDogMTY4MFxuLy8vICAgKVxuLy8vICk7XG5cbiRicmVha3BvaW50cyA6IChcbiAgJ21pbicgICAgICAgICAgOiAkbWluLFxuICAnbWluLXNtYWxsJyAgICA6ICRtaW4tc21hbGwsXG4gICdzbWFsbCcgICAgICAgIDogJHNtYWxsLFxuICAnc21hbGwtbWVkaXVtJyA6ICRzbWFsbC1tZWRpdW0sXG4gICdtZWRpdW0nICAgICAgIDogJG1lZGl1bSxcbiAgJ21lZGl1bS1sYXJnZScgOiAkbWVkaXVtLWxhcmdlLFxuICAnbGFyZ2UnICAgICAgICA6ICRsYXJnZSxcbiAgJ2xhcmdlLW1heCcgICAgOiAkbGFyZ2UtbWF4LFxuICAnbWF4JyAgICAgICAgICA6ICRtYXhcbikgIWRlZmF1bHQ7XG5cbi8vLyBQcml2YXRlIGFkZC11bml0IGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9vcGVyYXRvcnMvbnVtZXJpY1xuXG5AZnVuY3Rpb24gX2FkZC11bml0KCR2YWx1ZSkge1xuICBAaWYgKG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIGFuZCBtYXRoLmlzLXVuaXRsZXNzKCR2YWx1ZSkpIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAqIDFweDtcbiAgfVxuICBAcmV0dXJuICR2YWx1ZTtcbn0gXG5cbi8vLyBVcGRhdGUgYWxsIHRoZSBwcmVkZWZpbmVkIGJyZWFrcG9pbnRzIGZyb20gdGhlICRicmVha3BvaW50cyBtYXAgLS0tLS0tLS0tLS0tLVxuLy8vIFdlIGhhdmUgdG8gZG8gaXQgdGhpcyB3YXkgYmVjYXVzZSB3ZSBjYW4ndCBkeW5hbWljYWxseSBkZWZpbmUgdmFyaWFibGVzXG4vLy8gbmFtZXMuIFRoaXMgaXMgd2h5IHdlIGhhdmUgdGhlIHByZWRlZmluZWQgbmFtZXMuIFxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSB7IFxuICAkbWluIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pblwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWluXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSB7IFxuICAkbWluLXNtYWxsIDogX2FkZC11bml0KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcIm1pbi1zbWFsbFwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibWluLXNtYWxsXCIpOyBcbiAgfVxufVxuXG5AaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpIHsgXG4gICRzbWFsbCA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbFwiKSk7IFxuICBAaWYgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBcInNtYWxsXCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJzbWFsbFwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikgeyBcbiAgJHNtYWxsLW1lZGl1bSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJzbWFsbC1tZWRpdW1cIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcInNtYWxsLW1lZGl1bVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikgeyBcbiAgJG1lZGl1bSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW1cIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikgeyBcbiAgJG1lZGl1bS1sYXJnZSA6IF9hZGQtdW5pdChtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJtZWRpdW0tbGFyZ2VcIikpID09ICdudWxsJyAge1xuICAgICRicmVha3BvaW50cyA6IG1hcC5yZW1vdmUoJGJyZWFrcG9pbnRzLCBcIm1lZGl1bS1sYXJnZVwiKTsgXG4gIH1cbn1cblxuQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgXCJsYXJnZVwiKSB7IFxuICAkbGFyZ2UgOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIikpOyBcbiAgQGlmIG1ldGEudHlwZS1vZihtYXAtZ2V0KCRicmVha3BvaW50cywgXCJsYXJnZVwiKSkgPT0gJ251bGwnICB7XG4gICAgJGJyZWFrcG9pbnRzIDogbWFwLnJlbW92ZSgkYnJlYWtwb2ludHMsIFwibGFyZ2VcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpIHsgXG4gICRsYXJnZS1tYXggOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibGFyZ2UtbWF4XCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJsYXJnZS1tYXhcIik7IFxuICB9XG59XG5cbkBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsIFwibWF4XCIpIHsgXG4gICRtYXggOiBfYWRkLXVuaXQobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWF4XCIpKTsgXG4gIEBpZiBtZXRhLnR5cGUtb2YobWFwLWdldCgkYnJlYWtwb2ludHMsIFwibWF4XCIpKSA9PSAnbnVsbCcgIHtcbiAgICAkYnJlYWtwb2ludHMgOiBtYXAucmVtb3ZlKCRicmVha3BvaW50cywgXCJtYXhcIik7IFxuICB9XG59XG5cbi8vIE1ha2Ugc3VyZSBhbGwgdGhlIHZhbHVlcyBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBoYXZlIHVuaXRzXG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuICAkYnJlYWtwb2ludHMgOiBtYXAuc2V0KCRicmVha3BvaW50cywgJGtleSwgX2FkZC11bml0KCR2YWx1ZSkpOyBcbn1cblxuLy8vIEJyZWFrcG9pbnQgZnVuY3Rpb25cbi8vLyBBY2NlcHRzIGEgc3RyaW5nIHRvIHB1bGwgZnJvbSB0aGUgJGJyZWFrcG9pbnRzIG1hcCBpZiBpdCBleGlzdHNcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSBhbmQgbWV0YS50eXBlLW9mKG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpICE9IG51bGwpIHtcbiAgICAgICR2YWx1ZSA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHdhcm4gJ1wiJyArICR2YWx1ZSArICdcIiBicmVha3BvaW50IGhhcyBub3QgYmVlbiBkZWZpbmVkLiBDaGVjayB0aGUgcnVsZXMgd2hlcmV2ZXIgeW91IGFyZSByZWdpc3RlcmluZyB5b3VyIFwiY3JlYXRlL2JyZWFrcG9pbnRzXCIgaGVscGVyJztcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfYWRkLXVuaXQoJHZhbHVlKTtcbn1cblxuLy8vIEJyZWFrIG1peGluc1xuLy8vIFJlZGVmaW5lIHRoZSBicmVhayBtaXhpbnMgd2l0aCBvbmVzIHRoYXQgdXNlIHRoZSBicmVha3BvaW50cyBmdW5jdGlvbiBmb3IgdmFsaWRhdGlvblxuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBpbmNsdWRlIGJyZWFrLm91dChicmVha3BvaW50KCRicmVha3BvaW50KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAaW5jbHVkZSBicmVhay5pbihicmVha3BvaW50KCRicmVha3BvaW50KSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQGluY2x1ZGUgYnJlYWsuYmV0d2VlbihicmVha3BvaW50KCRtaW4pLCBicmVha3BvaW50KCRtYXgpKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJhY2tncm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JhY2tncm91bmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Bvc2l0aW9uJztcblxuQG1peGluIGJsb3dvdXQoJHBzdWRvIDogYmVmb3JlKSB7XG4gICY6I3skcHN1ZG99IHtcbiAgICBjb250ZW50OlwiXCI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBcblx0XHR6LWluZGV4Oi0xOyBcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi5ibG93b3V0OyBcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gUG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwb3NpdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnLi4vaGVscGVycy9icmVhayc7XG5cbkBtaXhpbiBleHBhbmRlZCB7XG5cdHBvc2l0aW9uOmFic29sdXRlOyBcblx0dG9wOjA7IFxuXHRsZWZ0OjA7IFxuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTsgXG59XG5cbkBtaXhpbiBjZW50cmUge1xuICBwb3NpdGlvbjphYnNvbHV0ZTsgXG5cdHRvcDo1MCU7IFxuXHRsZWZ0OjUwJTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXG59XG5cbkBtaXhpbiBibG93b3V0KCRob3Jpem9udGFsIDogdHJ1ZSwgJHZlcnRpY2FsIDogZmFsc2UpIHtcbiAgXG4gIHBvc2l0aW9uOmFic29sdXRlO1xuXG4gIEBpZiAkaG9yaXpvbnRhbCBhbmQgJHZlcnRpY2FsIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDUwJTsgXG4gICAgd2lkdGggICAgIDogMTAwdnc7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZSh2YXIoLS10cmFuc2xhdGVYLCAtNTAlKSwgdmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9IEBlbHNlIGlmICRob3Jpem9udGFsICB7XG4gICAgdG9wICAgICAgIDogMDsgXG4gICAgbGVmdCAgICAgIDogNTAlOyBcbiAgICB3aWR0aCAgICAgOiAxMDB2dztcbiAgICBoZWlnaHQgICAgOiAxMDAlOyBcbiAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKHZhcigtLXRyYW5zbGF0ZVgsIC01MCUpKTtcbiAgfSBAZWxzZSBpZiAkdmVydGljYWwgIHtcbiAgICB0b3AgICAgICAgOiA1MCU7IFxuICAgIGxlZnQgICAgICA6IDA7IFxuICAgIHdpZHRoICAgICA6IDEwMCU7XG4gICAgaGVpZ2h0ICAgIDogMTAwdmg7IFxuICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkodmFyKC0tdHJhbnNsYXRlWSwgLTUwJSkpO1xuICB9XG5cbn0iLCJAdXNlIFwic2FzczpsaXN0XCI7XG5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLWltYWdlJykgeyBvcGFjaXR5OjAuNTsgfVxuLy8vIFBhc3MgaW4gbXVsdHVpcGxlIGNvbXBlbmVudCBuYW1lcyBpZiB5b3Ugd2FudCB0byBjaGVjayB0aGV5IGFsbCBleGlzdFxuXG5AbWl4aW4gZXhpc3RzKCRuYW1lcy4uLikge1xuXG4gICRzZWxlY3RvciA6ICdib2R5JztcbiAgJHBhcmVudCA6aWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgICRzZWxlY3RvciA6ICRzZWxlY3RvciArICdbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdJztcbiAgfVxuXG4gIEBhdC1yb290ICN7JHNlbGVjdG9yfSAjeyRwYXJlbnR9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7IG9wYWNpdHk6MC41OyB9XG4vLy8gUGFzcyBpbiBtdWx0dWlwbGUgY29tcGVuZW50IG5hbWVzIGlmIHlvdSB3YW50IHRvIGNoZWNrIG5vbmUgZXhpc3RcblxuQG1peGluIGRvZXNudC1leGlzdHMoJG5hbWVzLi4uKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2JvZHknO1xuICAkcGFyZW50IDppZihsaXN0Lm50aChsaXN0Lm50aCgmLCAxKSwgMSkgPT0gJzpyb290JywgJycsICYpO1xuICBcbiAgQGVhY2ggJG5hbWUgaW4gJG5hbWVzIHtcbiAgICAkc2VsZWN0b3IgOiAkc2VsZWN0b3IgKyAnOm5vdChbZGF0YS1jb21wb25lbnRzKj1cIiN7JG5hbWV9XCJdKSc7XG4gIH1cblxuICBAYXQtcm9vdCAjeyRzZWxlY3Rvcn0gI3skcGFyZW50fSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogY2FsYygjeyRzcGFjZXIwfSArICN7JGdhcH0pIDA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0MmRlZywgJGJsdWUzLCAkYmx1ZTQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTQ7XG4gIHotaW5kZXg6IDU7XG4gIGdhcDogJGd1dHRlcjtcbiAgaGVpZ2h0OiBtaW4tY29udGVudDtcblxuICAtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnM6ICN7JGdhcH07XG4gIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiB3aGl0ZTtcbiAgLS1tYXJrZXItbGluZS10aGlja25lc3M6IDNweDtcbiAgLS1zcGFjZXItbGluZS10aGlja25lc3M6IDFweDtcblxuICAvLyBAYXQtcm9vdCBib2R5Om5vdChbc3R5bGUqPVwiLS1sb2dvLXRhZ2xpbmUtaGVpZ2h0XCJdKSB7IC0tbG9nby10YWdsaW5lLWhlaWdodCA6IDEwcHg7IH1cblxuICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgYmFja2dyb3VuZC1ibG93b3V0IHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgPiAqOm5vdCguaW1hZ2UpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIEBpbmNsdWRlIGNvbXBvbmVudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7XG4gICAgJi5oaWRlLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICAgIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBjb21wb25lbnQtZXhpc3RzKCdiYWNrZ3JvdW5kLXZpZGVvJykge1xuICAgICYuaGlkZS1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gICAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmludmVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDtcbiAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgIC0tdG9wLWxldmVsLWxpbmstY29sb3VyOiAjeyRibHVlfTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgYS5sb2dvIHtcbiAgICAgIGltZyB7XG4gICAgICAgICZbc3JjKj0ndGFnbGluZS5zdmcnXSB7XG4gICAgICAgICAgZmlsdGVyOiBpbnZlcnQoMC45KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExvZ28gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGEubG9nbyB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAzNzEgLyA5NztcbiAgICAmOmhhcyhzdmcubm8tdGFnbGluZXMpIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogaW5pdGlhbDtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCA6aGFzKGhlYWRlci5kYXJrKSAmOm5vdCguaW52ZXJ0KSB7XG4gICAgYS5sb2dvIHtcbiAgICAgIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmludmVydCkge1xuICAgIC0tbG9nby10ZXh0LWNvbG91cjogd2hpdGU7XG4gIH1cblxuICAvLyBOYXZpZ2F0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBuYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBnYXA6IDhweDtcblxuICAgIC8vIERldmlkaW5nIFNwYWNlciBMaW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBub25lIHRvcC1sZXZlbC1saW5rIGl0ZW1zIGluIGEgc3BlY2lhbCB3YXkuXG4gICAgLy8gSWYgeW91IHNob3VsZCBlbmQgdXAgYWRkaW5nIG1vcmUgYnV0dG9ucyBzaW1pbGFyIHRvIHRoZSBcInNlYXJjaFwiIGluIHRoaXNcbiAgICAvLyBhcmVhLCB5b3Ugd2lsbCBuZWVkIGFtZW5kIHRoZSA6bnRoLWxhc3QtY2hpbGQgaW5kZXhcblxuICAgIG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbms6bm90KDpudGgtbGFzdC1jaGlsZCgyKSk6bm90KDpudGgtbGFzdC1jaGlsZCgzKSk6bm90KDpsYXN0LW9mLXR5cGUpOjpiZWZvcmUsXG4gICAgc2Vjb25kYXJ5LW1lbnUgPiB1bCA+IGxpOm5vdCg6bGFzdC1vZi10eXBlKTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcyk7XG4gICAgICBoZWlnaHQ6IDQwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiBjYWxjKC0xICogKHZhcigtLXNwYWNlci1saW5lLXRoaWNrbmVzcykgLyAyKSk7XG4gICAgICB0b3A6IDUwJSAtIDIwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNwYWNlci1saW5lLWNvbG91ciwgJHJlZCk7XG4gICAgfVxuXG4gICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wZXJzb25hbGlzZWQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6ICRnYXA7XG5cbiAgICAgIC8vIFBlcnNvbmFsaXNlZCBFeHBlcmllbmNlIEJhclxuICAgICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICAgICBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgICAgICAgIC0tZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAtLXBhZGRpbmc6IDRweCAxMHB4O1xuXG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk0MHB4KSB7XG4gICAgICAgICAgICAtLWZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIC0tcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAtLWljb24tc2l6ZTogMjBweDtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzZweDtcbiAgICAgICAgICAgIC0taWNvbi1zaXplOiAxLjFlbTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICsgc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgICAgICB0b3A6IHVuc2V0O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgcGVyc29uYWxpc2UtZXhwZXJpZW5jZSBhLmJ1dHRvbi5wZXJzb25hbGlzZWQge1xuICAgICAgICAgIC0tcGFkZGluZzogOHB4O1xuICAgICAgICAgIC0taWNvbi1zaXplOiAwLjhlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG1haW4tbWVudSA+IHVsID4gbGkudG9wLWxldmVsLWxpbmsgKyAuc2VhcmNoIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIH1cblxuICAgIC8vIEdlbmVyaWMgTGluayBTdHlsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC5saW5rIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjVlbTtcbiAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAmOm5vdCguYXJyb3ctcmlnaHQpOm5vdCguYXJyb3ctbGVmdCkge1xuICAgICAgICAgIGhlaWdodDogMC44ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYub3ZlcnZpZXcge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmxpbmsgc3ZnLFxuICAgIC5idXR0b24gc3ZnIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC8vIE1haW4gTWVudSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIG1haW4tbWVudSB7XG4gICAgICAtLWZvbnQtc2l6ZTogMC45NWVtO1xuICAgICAgb3JkZXI6IDI7XG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC50b3AtbGV2ZWwtbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICYudG9wLWxldmVsLWxpbmsge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyKTtcbiAgICAgICAgICAgICAgcGFkZGluZzogJGdhcDAgdmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycyk7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAodmFyKC0tdG9wLWxldmVsLWxpbmstZ3V0dGVycykgKiAyKSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9wLWxldmVsLWxpbmstY29sb3VyLCAkcmVkKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmLmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAmLmN1cnJlbnQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmW2RhdGEtbmF2PSdtZW51J10ge1xuICAgICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbZGF0YS1uYXY9J3N1Ym1lbnUnXSB7XG4gICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTZWFyY2ggQnV0dG9uXG4gICAgICAgICAgJi5zZWFyY2gge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5zZWFyY2gsXG4gICAgICAgICAgJi5tZW51IHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmNhcnQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLXRvcC1sZXZlbC1saW5rLWd1dHRlcnMpIC8gMik7XG4gICAgICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBhdC1yb290IGxpLmNhcnQge1xuICAgICAgICAgICAgICBhW2RhdGEtdG90YWxdIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdG90YWwpO1xuICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyY2g7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAuNGVtO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyY2g7XG4gICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuMjtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGE6bm90KFtkYXRhLXRvdGFsXSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NTBweCkge1xuICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5sb2FkaW5nIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBsb2FkZXIoJGNvbG91cjogd2hpdGUpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uIHtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2Vjb25kYXJ5IE1lbnUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgc2Vjb25kYXJ5LW1lbnUge1xuICAgICAgLS1mb250LXNpemU6IDAuOGVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICB6LWluZGV4OiA2O1xuICAgICAgPiB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcmlnaHQ6ICRnYXAtO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2FwMCAkZ2FwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibHVlNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyAjeyRnYXAyfSk7XG4gICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsICRnYXAwLSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh3aGl0ZSwgMC4xKTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGdhcDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogY2FsYygjeyRnYXAwfSAvIDIpICRnYXA7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICYuYXNzZXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjRlbSAwIDA7XG4gICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC40ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE92ZXJ2aWV3IDxsaT4gbGluayBlbGVtZW50XG4gICAgICAgICAgICAmW2RhdGEtbGV2ZWw9JzEnXSBsaTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgb3JkZXI6IDEwMDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRibHVlNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCk7XG4gICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LW9mLXR5cGUgLnN1Yi1tZW51IHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgKyAjeyRnYXB9KSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyaWFuZ2xlIC8gUG9pbnRlclxuICAgICAgICAvLyBXZSByZW5kZXIgdGhpcyBvbiB0aGUgPGxpPiByYXRoZXIgdGhhbiB0aGUgZHJvcGRvd24tZ3JvdXAgZWxlbWVudCBiZWNhdXNlXG4gICAgICAgIC8vIHdlIHdhbnQgdGhpcyB0byBiZSBjZW50cmVkIHRvIHRoZSBidXR0b24uIFRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGVcbiAgICAgICAgLy8gbGFzdCA8bGk+IHdpbGwgYmUgYWxpZ25lZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXdwb3J0LCB0aGF0IHdheVxuICAgICAgICAvLyB0aGVzZSBjYW4ndCBldmVyIGJlIHB1c2hlZCBvdXQgb2YgdmlldyBzaG91bGQgdGhlIHVzZXJzIHNjcmVlbiBzdGFydHNcbiAgICAgICAgLy8gdG8gYmVjb21lIHJlc3BvbnNpdmUgYmVsb3cgdGhlIG1heCB2aWV3IHdpZHRoLlxuICAgICAgICA+IGxpLmhhcy1jaGlsZHJlbiB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoLTUwJSArICN7JGdhcDAtfSkpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHdoaXRlLCAwLjEpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAlLCA1MCUgNTAlLCAwIDEwMCUpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSBTdHlsaW5nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oMTQwMCkge1xuICAgIC0tdG9wLWxldmVsLWxpbmstZ3V0dGVyczogI3skZ2FwfTtcbiAgICBuYXYgbWFpbi1tZW51ID4gdWwgbGkuc2VhcmNoIHNwYW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1pbig5ODApIHtcbiAgICBuYXYgbWFpbi1tZW51IHtcbiAgICAgIC0tZm9udC1zaXplOiAwLjllbTtcbiAgICB9XG4gIH1cblxuICAvLyBNb2JpbGUgU3R5bGluZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBsaS5tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS10b3AtbGV2ZWwtbGluay1ndXR0ZXJzKTtcbiAgfVxuXG4gIGJ1dHRvbi5tZW51IHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgbGluZSB7XG4gICAgICAgIHN0cm9rZS13aWR0aDogM3B4O1xuICAgICAgICBzdHJva2U6IHZhcigtLXRvcC1sZXZlbC1saW5rLWNvbG91cik7XG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxNSUgMzAlO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzICRlYXNlLWluLW91dC1xdWludDtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTUlIDcwJTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQtcXVpbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgc3ZnIHtcbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlICYge1xuICAgIHBhZGRpbmc6ICRndXR0ZXIgMDtcbiAgICBsaS5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICYuc2VhcmNoIHtcbiAgICAgICAgICAtLWZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgICAgLS1wYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGkubWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJ1dHRvbi5tZW51IHtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLmxvZ28ge1xuICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICAgIH1cbiAgICBuYXYge1xuICAgICAgbWFpbi1tZW51IC50b3AtbGV2ZWwtbGluayxcbiAgICAgIHNlY29uZGFyeS1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIG1haW4tbWVudSA+IHVsIGxpLnNlYXJjaCBzcGFuLFxuICAgICAgbWFpbi1tZW51ID4gdWwgbGlbZGF0YS1uYXY9J3N1Ym1lbnUnXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVhay1pbig5ODApIHtcbiAgICAgIG5hdiBtYWluLW1lbnUgPiB1bCBsaS5zZWFyY2ggc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3VyIFBhbGV0dGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCIuL21vZHVsZXMvY29sb3VyXCI7XG5cbi8vIEFkanVzdCB0aGVzZSB0byBhbWVuZCB0aGUgbGlnaHRuZXNzIG9yIGRhcmtuZXNzIGFtb3VudHMgZm9yIHRoZSBjb2xvdXJzIGxzaXRlZCBiZWxvdy4uIFxuXG4kX2xpZ2h0bmVzcyA6IDE1JSAhZGVmYXVsdDtcbiRfZGFya25lc3MgIDogMjAlICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tbW9uIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRyZWQgICAgICAgICAgOiAjOTcwODBFICFkZWZhdWx0O1xuJHJlZC1saWdodCAgICA6IGNvbG91ci5saWdodGVuKCRyZWQsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRyZWQtZGFyayAgICAgOiBjb2xvdXIuZGFya2VuKCRyZWQsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kb3JhbmdlICAgICAgIDogI0RBNEIwRiAhZGVmYXVsdDtcbiRvcmFuZ2UtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkb3JhbmdlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kb3JhbmdlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkb3JhbmdlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHllbGxvdyAgICAgICA6ICNFOUIxMDQgIWRlZmF1bHQ7XG4keWVsbG93LWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHllbGxvdywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHllbGxvdy1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHllbGxvdywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmVlbiAgICAgICAgOiAjNDg4QzEzICFkZWZhdWx0O1xuJGdyZWVuLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRncmVlbiwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGdyZWVuLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGdyZWVuLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJsdWUgICAgICAgICA6ICMxQjU1QzAgIWRlZmF1bHQ7XG4kYmx1ZS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGJsdWUsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRibHVlLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRibHVlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHBpbmsgICAgICAgICA6ICNFMDVENkIgIWRlZmF1bHQ7XG4kcGluay1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJHBpbmssICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRwaW5rLWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRwaW5rLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHB1cnBsZSAgICAgICA6ICM2MTNENUEgIWRlZmF1bHQ7XG4kcHVycGxlLWxpZ2h0IDogY29sb3VyLmxpZ2h0ZW4oJHB1cnBsZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHB1cnBsZS1kYXJrICA6IGNvbG91ci5kYXJrZW4oJHB1cnBsZSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRncmV5ICAgICAgICAgOiAjNzg3ODc4ICFkZWZhdWx0O1xuJGdyZXktbGlnaHQgICA6IGNvbG91ci5saWdodGVuKCRncmV5LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JleS1kYXJrICAgIDogY29sb3VyLmRhcmtlbigkZ3JleSwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRicm93biAgICAgICAgOiAjNzc0RjM4ICFkZWZhdWx0O1xuJGJyb3duLWxpZ2h0ICA6IGNvbG91ci5saWdodGVuKCRicm93biwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJyb3duLWRhcmsgICA6IGNvbG91ci5kYXJrZW4oJGJyb3duLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJHdoaXRlICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQgO1xuJHdoaXRlLWRhcmsgICA6IGNvbG91ci5saWdodGVuKCR3aGl0ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuXG4kYmxhY2sgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdCA7XG4kYmxhY2stbGlnaHQgIDogY29sb3VyLmRhcmtlbigkYmxhY2ssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIE1lZGlhIENvbG91cnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vd3d3LmxvY2tlZG93bnNlby5jb20vc29jaWFsLW1lZGlhLWNvbG9ycy9cblxuJGZhY2Vib29rOiAgICAjMTg3N2YyICFkZWZhdWx0O1xuJHR3aXR0ZXI6ICAgICAjMWRhMWYyICFkZWZhdWx0O1xuJGdvb2dsZTogICAgICAjNDI4NWY0ICFkZWZhdWx0O1xuJHlvdXR1YmU6ICAgICAjZmYwMDAwICFkZWZhdWx0O1xuJGxpbmtlZGluOiAgICAjMDA3YmI1ICFkZWZhdWx0O1xuJGluc3RhZ3JhbTogICAjYzMyYWEzICFkZWZhdWx0O1xuJHBpbnRlcmVzdDogICAjYmQwODFjICFkZWZhdWx0O1xuJGRhaWx5bW90aW9uOiAjMDA2NkRDICFkZWZhdWx0O1xuJHNuYXBjaGF0OiAgICAjZmZmYzAwICFkZWZhdWx0O1xuJGZsaWNrcjogICAgICAjZjQwMDgzICFkZWZhdWx0O1xuJHZpbWVvOiAgICAgICAjMWFiN2VhICFkZWZhdWx0O1xuJHRodW1ibGVyOiAgICAjMzU0NjVkICFkZWZhdWx0O1xuJHJlZGRpdDogICAgICAjZmY0NTAwICFkZWZhdWx0O1xuJHdoYXRzYXBwOiAgICAjMjVkMzY2ICFkZWZhdWx0O1xuJHNreXBlOiAgICAgICAjMDBhZmYwICFkZWZhdWx0O1xuJGRpc2NvcmQ6ICAgICAjNzI4OWRhICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhIDogKFxuICBmYWNlYm9vazogICAgICRmYWNlYm9vayxcbiAgdHdpdHRlcjogICAgICAkdHdpdHRlcixcbiAgZ29vZ2xlOiAgICAgICAkZ29vZ2xlLFxuICB5b3V0dWJlOiAgICAgICR5b3V0dWJlLFxuICBsaW5rZWRpbjogICAgICRsaW5rZWRpbixcbiAgaW5zdGFncmFtOiAgICAkaW5zdGFncmFtLFxuICBwaW50ZXJlc3Q6ICAgICRwaW50ZXJlc3QsXG4gIGRhaWx5bW90aW9uOiAgJGRhaWx5bW90aW9uLFxuICBzbmFwY2hhdDogICAgICRzbmFwY2hhdCxcbiAgZmxpY2tyOiAgICAgICAkZmxpY2tyLFxuICB2aW1lbzogICAgICAgICR2aW1lbyxcbiAgdGh1bWJsZXI6ICAgICAkdGh1bWJsZXIsXG4gIHJlZGRpdDogICAgICAgJHJlZGRpdCxcbiAgd2hhdHNhcHA6ICAgICAkd2hhdHNhcHAsXG4gIHNreXBlOiAgICAgICAgJHNreXBlLFxuICBkaXNjb3JkOiAgICAgICRkaXNjb3JkXG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3RoZXIgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHllbGxvOiAjRkZDQjA4ICFkZWZhdWx0O1xuXG4vLy8gSGFuZGxlcyB0aGUgY3Vyc29yIHNlbGVjdGlvbiBjb2xvdXJcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9zZWxlY3RvcnMvcy9zZWxlY3Rpb24vXG5cbiRoaWdobGlnaHQ6ICNCMkQzRkEgIWRlZmF1bHQ7IFxuIiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuXG5cbkBtaXhpbiBsb2FkZXIoJHNpemUgOiAxMnB4LCAkY29sb3VyIDogJGdyZXkpIHtcbiAgLS1zaXplIDogI3skc2l6ZX07IFxuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgbGVmdDpjYWxjKDUwJSAtICh2YXIoLS1zaXplKSAvIDIpKTsgXG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOnZhcigtLXNpemUpOyBcbiAgaGVpZ2h0OnZhcigtLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjoycHggc29saWQgdmFyKC0tbG9hZGVyLWNvbG91ciwgJGNvbG91cik7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxvYWRlci1yb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyAkZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG4gIEBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gICAgZnJvbSB7dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuICAgIHRvIHt0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB9XG4gIEBjb250ZW50O1xufVxuXG5AbWl4aW4gbG9hZGVyLWFuaW1hdGlvbiB7IFxuICBvcGFjaXR5OjE7IFxuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgQGNvbnRlbnQ7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcm93c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicm93c2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gX2Jyb3dzZXIoJG5hbWUsICR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBhdC1yb290IDpyb290IHtcbiAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyRuYW1lfVwiXSB7XG4gICAgICBAaWYgJHZlcnNpb24ge1xuICAgICAgICAmW2RhdGEtYnJvd3Nlcio9XCIjeyR2ZXJzaW9ufVwiXSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZlYXR1cmUoJG5hbWUpIHtcbiAgQGF0LXJvb3QgOnJvb3RbZGF0YS1icm93c2VyLWZlYXR1cmUqPVwiI3skbmFtZX1cIl0gJiB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHdpdGhvdXQtZmVhdHVyZSgkbmFtZSkge1xuICBAYXQtcm9vdCA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj1cIiN7JG5hbWV9XCJdKSAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZmlyZWZveCgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZmlyZWZveCcsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gaWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2llJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBjaHJvbWUoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ2Nocm9tZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gZWRnZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignZWRnZScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG5AbWl4aW4gb3BlcmEoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ29wZXJhJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBzYWZhcmkoJHZlcnNpb246ZmFsc2UpIHtcbiAgQGluY2x1ZGUgX2Jyb3dzZXIoJ3NhZmFyaScsICR2ZXJzaW9uKSB7IEBjb250ZW50OyB9O1xufVxuXG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLy8gRHJvcGRvd24gTWVudSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmRyb3Bkb3duLW1lbnUge1xuICAtLW1pbi1oZWlnaHQ6IDQzMHB4O1xuICAtLW1heC1oZWlnaHQ6IDYwMHB4O1xuICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogMjcwcHg7XG4gIC0tZHJvcGRvd24taW1hZ2Utd2lkdGg6IDMwMHB4O1xuICAtLWRyb3Bkb3duLWltYWdlLWhlaWdodDogODBweDtcbiAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogNnB4O1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgLSB2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpIC0gMXB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCByZ2JhKGJsYWNrLCAwLjIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aCkgMWZyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCwgbWFyZ2luLXRvcCAwLjNzICRlYXNlLWluLW91dC1zaW5lO1xuICBmb250LXNpemU6IDE2cHg7XG5cbiAgQGF0LXJvb3QgbmF2aWdhdGlvbi1iYXIgbmF2IG1haW4tbWVudS5hY3RpdmUge1xuICAgIC50b3AtbGV2ZWwtbGlua3MgLnRvcC1sZXZlbC1saW5rIC5saW5rLmN1cnJlbnQ6OmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIGRyb3Bkb3duLW1lbnUge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tZHJvcGRvd24tb3Blbi1vZmZzZXQpO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1tYXJrZXItbGluZS10aGlja25lc3MpKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDBweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgJiB7XG4gICAgLS1kcm9wZG93bi1vcGVuLW9mZnNldDogI3skZ2FwfTtcbiAgICB3aWR0aDogdmFyKC0tZHJvcGRvd24tZ3JvdXAtbmF2LXdpZHRoKSAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAtLWRyb3Bkb3duLWdyb3VwLW5hdi13aWR0aDogY2FsYygxMDB2dyAtICN7JGd1dHRlcjN9KSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEBhdC1yb290IGJvZHk6OmFmdGVyIHtcbiAgLy8gICBjb250ZW50OlwiXCI7XG4gIC8vICAgb3BhY2l0eTowO1xuICAvLyAgIHBvaW50ZXItZXZlbnRzOiBub25lOztcbiAgLy8gICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgLy8gICBpbnNldDowO1xuICAvLyAgIHRvcDp2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMCk7XG4gIC8vICAgd2lkdGg6MTAwdnc7XG4gIC8vICAgaGVpZ2h0OiAxMDB2aDtcbiAgLy8gICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuOTApO1xuICAvLyB9XG4gIC8vIEBhdC1yb290IGJvZHkubW9iaWxlLm1lbnUtdmlzaWJsZSB7XG4gIC8vICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgLy8gICAgICY6OmFmdGVyIHtcbiAgLy8gICAgICAgb3BhY2l0eToxO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxufVxuXG4vLyBEcm9wZG93biBHcm91cHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZHJvcGRvd24tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogMTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAvLyBvdmVyZmxvdy15OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1vdXQ7XG4gIC8vIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3M7XG5cbiAgJG1heC1kZXB0aDogNDtcbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbWF4LWRlcHRoIHtcbiAgICAmW2RhdGEtbGV2ZWw9JyN7JGl9J10ge1xuICAgICAgei1pbmRleDogKCRtYXgtZGVwdGggLSAkaSkgKyAxO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNjcm9sbC1zdHlsaW5nIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5saW5rIHtcbiAgICAtLWZvbnQtc2l6ZTogMC45ZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgcGFkZGluZzogNHB4ICRnYXAyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uLCBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICYuY3VycmVudCB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAvLyBUaGlzIHdpbGwgZ2l2ZSBsaW5rcyB3aXRoIGNoaWxkcmVuIGEgYW5nbGVkIHNoYXBlIHRvIGFjdCBhcyBhIGhpdCBoZWxwZXIuXG4gICAgICAvLyBJdCBwcmV2ZW50IHVzZXJzIGZyb20gaGF2aW5nIHRvIG1vdmUgdGhlIG1vdXNlIGRpcmVjdGx5IHRvIHRoZSByaWdodCBiZWZvcmVcbiAgICAgIC8vIGJlaW5nIGFibGUgdG8gbW92ZSB1cCB0aGUgbmV3IHN1YiBtZW51LiBTZXQgYSB0ZW1wb3JhcnkgYmFja2dyb3VuZC1jb2xvciB0byBzZWUgaXQgaW4gYWN0aW9uXG4gICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDUwcHgpO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBUaGlzIGFkanVzdCB0aGUgaGl0IGhlbHBlciBvbiB0aGUgbGFzdCBsaW5rIHRvIGFjb2lkIHVud2FudGVkIHNjcm9sbGVyc1xuICAgICAgQGF0LXJvb3QgOm5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPSd0b3VjaCddKSBkcm9wZG93bi1ncm91cCAubGFzdCAubGluay5hY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSByb3RhdGUoMGRlZykgc2tldygtNDVkZWcsIDApO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmhhcy1jaGlsZHJlbiB7XG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGdhcDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIoKSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgdG9wIGFuZCBib3R0b20gcGFkZGluZyBzbGlnaHRseVxuICAvLyBkaWZmZXJlbnRseSBiZWNhdXNlIGdyaWRkZWQgbGlzdHMgaGF2ZSBzb21lIGlzc3VlcyB3aXRoIHRoZSBib3R0b21cbiAgLy8gcGFkZGluZyB3aGVuIG92ZXJmbG93IHNjcm9sbCBpcyBhY3RpdmVcbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gICAgbGkge1xuICAgICAgJi5maXJzdCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ2FwO1xuICAgICAgfVxuICAgICAgJi5sYXN0IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRnYXA7XG4gICAgICB9XG4gICAgICAmLm92ZXJ2aWV3IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgICAgICAgJiB+IC5maXJzdCB7XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxpbmsge1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBAaW5jbHVkZSBob3ZlcignLmFjdGl2ZScpIHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuYmFjayB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ2FwO1xuICAgICAgICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAubGluayB7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC40ZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtbGV2ZWw9JzEnXSB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbGkuYmFjayB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1sZXZlbD0nMiddIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleTM7XG4gIH1cblxuICAmW2RhdGEtbGV2ZWw9JzMnXSB7XG4gICAgd2lkdGg6IGNhbGMoOTUlICsgMnB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGxlZnQ6IGNhbGMoMTk1JSAtIDFweCk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3MsIDAuM3M7XG4gIH1cblxuICAmLmFsbG93LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgJltkYXRhLWxldmVsPScyJ10sXG4gICAgJltkYXRhLWxldmVsPSczJ10ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gIH1cblxuICAmOm5vdCguYWN0aXZlKSB7XG4gICAgJltkYXRhLWxldmVsPScxJ10sXG4gICAgJltkYXRhLWxldmVsPScyJ10sXG4gICAgJltkYXRhLWxldmVsPSczJ10ge1xuICAgICAgbGVmdDogMCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHk6bm90KC5tb2JpbGUpIG5hdmlnYXRpb24tYmFyICY6bm90KFtkYXRhLWxldmVsPScxJ10pIHtcbiAgICAubGluayB7XG4gICAgICAvLyAtLWZvbnQtc2l6ZTowLjhlbTtcbiAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHkubW9iaWxlIG5hdmlnYXRpb24tYmFyICYge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzIDAgMCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXMsIDAuNXM7XG4gICAgdHJhbnNmb3JtOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgLy8gcGFkZGluZy1ib3R0b20gOiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpO1xuICAgICRtYXgtZGVwdGg6IDQ7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbWF4LWRlcHRoIHtcbiAgICAgICZbZGF0YS1sZXZlbD0nI3skaX0nXSB7XG4gICAgICAgIHotaW5kZXg6ICRpICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubGluayB7XG4gICAgICAtLWZvbnQtc2l6ZTogMWVtO1xuICAgICAgcGFkZGluZy10b3A6ICRnYXAwO1xuICAgICAgcGFkZGluZy1ib3R0b206ICRnYXAwO1xuICAgIH1cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgICYub3ZlcnZpZXcsXG4gICAgICAgICYuYmFjayB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBEcm9wZG93biBJbWFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZHJvcGRvd24taW1hZ2Uge1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcbiAgLy8gaGVpZ2h0OmluaGVyaXQ7XG4gIGhlaWdodDogMTAwJTtcbiAgZ3JpZC1jb2x1bW46IDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGp1c3RpZnktaXRlbXM6IGZsZXgtZW5kO1xuXG4gIC5pbWFnZSB7XG4gICAgLy8gaGVpZ2h0OnZhcigtLW1heC1oZWlnaHQpO1xuICAgIHdpZHRoOiBjbGFtcCh2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkgLyAyLCAzMHZ3LCB2YXIoLS1kcm9wZG93bi1pbWFnZS13aWR0aCkpO1xuICAgIGdyaWQtcm93OiAxO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyAkZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIGltZyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keS5tb2JpbGUgbmF2aWdhdGlvbi1iYXIgJiB7XG4gICAgLy8gZGlzcGxheTpub25lO1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIC8vIGdyaWQtcm93OjE7XG4gICAgei1pbmRleDogMTA7XG4gICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgaGVpZ2h0OiB2YXIoLS1kcm9wZG93bi1pbWFnZS1oZWlnaHQpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbml0aWFsO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIC8vIG1hcmdpbi10b3A6Y2FsYygtMSAqIHZhcigtLWRyb3Bkb3duLWltYWdlLWhlaWdodCkpO1xuICAgIC5pbWFnZSB7XG4gICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5cbkBtaXhpbiBzdHlsaW5nKCkge1xuXG4gIC8vIHRoZSBzY3JvbGxiYXIuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDowLjllbTtcbiAgICBoZWlnaHQ6MC45ZW07XG4gIH1cblxuICAvLyB0aGUgYnV0dG9ucyBvbiB0aGUgc2Nyb2xsYmFyIChhcnJvd3MgcG9pbnRpbmcgdXB3YXJkcyBhbmQgZG93bndhcmRzKS5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIHRoZSBkcmFnZ2FibGUgc2Nyb2xsaW5nIGhhbmRsZS5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiA0cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cblxuICAvLyB0aGUgdHJhY2sgKHByb2dyZXNzIGJhcikgb2YgdGhlIHNjcm9sbGJhci5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gdGhlIHRyYWNrIChwcm9ncmVzcyBiYXIpIE5PVCBjb3ZlcmVkIGJ5IHRoZSBoYW5kbGUuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlIHtcblxuICB9XG5cbiAgLy8gdGhlIGJvdHRvbSBjb3JuZXIgb2YgdGhlIHNjcm9sbGJhciwgd2hlcmUgYm90aCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzY3JvbGxiYXJzIG1lZXQuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyB0aGUgZHJhZ2dhYmxlIHJlc2l6aW5nIGhhbmRsZSB0aGF0IGFwcGVhcnMgYXQgdGhlIGJvdHRvbSBjb3JuZXIgb2Ygc29tZSBlbGVtZW50cy5cbiAgJjo6LXdlYmtpdC1yZXNpemVyIHtcblxuICB9XG5cbiAgQGNvbnRlbnQ7XG5cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuXG5cbi5oZWFkZXIge1xuXG4gIHBhZGRpbmctdG9wOiRzcGFjZXI7XG4gIHBhZGRpbmctYm90dG9tOiRzcGFjZXI7XG5cbiAgPiBoMSBzdXAge1xuICAgIGZvbnQtc2l6ZTowLjZlbTtcbiAgfVxuXG4gID4gaDEgc3BhbntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDYpO1xuICAgIGNvbG9yOiAkZ3JleTtcbiAgfVxuXG4gID4gaDEgKyAqLCA+IGgyICsgKiB7XG4gICAgbWFyZ2luLXRvcDokZ3V0dGVyO1xuICB9XG5cbiAgPiBoMSArIGgyIHsgbWFyZ2luLXRvcDokZ3V0dGVyMDsgfVxuXG4gID4gaDIge1xuICAgIGNvbG9yOnZhcigtLXN1Yi1oZWFkaW5nLWNvbG91cik7IFxuICAgIEBpbmNsdWRlIGZvbnQtbGF0byhzZW1pLWJvbGQpO1xuICAgIGEgeyBcbiAgICAgIC0tZm9udC1jb2xvdXIgOiB2YXIoLS1zdWItaGVhZGluZy1jb2xvdXIpOyBcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgQGluY2x1ZGUgaG92ZXIgeyAtLWZvbnQtY29sb3VyIDogI3skcHJpbWFyeX07IH1cbiAgICB9XG4gIH1cblxuICB0aW1lIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBtYXJnaW46JGd1dHRlciAwOyBcbiAgICBwYWRkaW5nOjRweCA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7ICBcbiAgICBmb250LXNpemU6Zm9udC1zaXplKDEyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0tdGFnLWNvbG91ciwgJHJlZCk7XG4gIH1cblxuICBidXR0b24tY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXAtOyBcbiAgICBtYXJnaW4tdG9wOiRzcGFjZXIwO1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAuYnV0dG9uIHNwYW4ge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5vdGljZS1tZXNzYWdlcyB7IG1hcmdpbi10b3A6JHNwYWNlcjA7IH1cblxuICAmLmRhcmsge1xuICAgIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gICAgLS1zdWItaGVhZGluZy1jb2xvdXI6d2hpdGU7XG4gICAgLmJ1dHRvbi5icm9jaHVyZSB7XG4gICAgICAtLWZvbnQtY29sb3VyOndoaXRlO1xuICAgICAgc3ZnIHsgZmlsbDogd2hpdGU7IH1cbiAgICB9XG4gIH1cblxuICAmLm5vLWRldmlkZXItbGluZSB7XG4gICAgfiBtYWluIHtcbiAgICAgIC0tYm9yZGVyLXRvcC1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgICAgPiAuY29udGVudC1ibG9jazpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy10b3A6MDsgXG4gICAgICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB9XG4gICAgfSAgICBcbiAgfVxuXG59IiwiQHVzZSAnc2FzczptYXRoJztcblxuQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbmZvb3RlciNmb290ZXIge1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcblxuICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7XG4gIGdyaWQtZ2FwOiAkZ3V0dGVyO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMDBweDtcblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgQGluY2x1ZGUgaG92ZXIoJy5jdXJyZW50Jykge1xuICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1saWdodCwgJHJlZC1saWdodCk7XG4gICAgfVxuICAgICYuY3VycmVudCB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuYmFjay10by10b3Age1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW46ICRnYXAtIGF1dG8gJGdhcCBhdXRvO1xuICAgIEBpbmNsdWRlIGJyZWFrLW91dChzbWFsbCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudGFnLWxpbmUtc2lnbi1vZmYge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIHRhZy1saW5lIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLWZvbnRzaXplKDEycHgsIDAuNGVtKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKDkwMCkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrLWluKDYwMCkge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiAkZ2FwMDtcbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IG5hdiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICB1bCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpICsgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2FwMDtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMzNweCwgMWZyKSk7XG4gICAgICAgIGdyaWQtZ2FwOiAwICRnYXA7XG4gICAgICAgIGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxpbmdcblxuICAuaGVhZGluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWg0O1xuICAgIEBpbmNsdWRlIGZvbnQtY3JvcC1yZW1vdmU7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJHNlY29uZGFyeTtcbiAgICB9XG4gIH1cblxuICBjb21wYW55LWRldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVubTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLWdhcDogJGdhcDAgJGdhcDtcblxuICAgIHNtYWxsLFxuICAgIC5zbWFsbCB7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMCk7XG4gICAgICBjb2xvcjogcmdiYSh3aGl0ZSwgMC43KTtcbiAgICAgIGJyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmFzZSB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNlcjtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIGEubG9nbyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgJGJhci1oZWlnaHQ6IDNweDtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb290ZXItYnItY29sb3VyLCAkcmVkKTtcbiAgICAgICAgICBoZWlnaHQ6ICRiYXItaGVpZ2h0O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IG1hdGguZGl2KC0kYmFyLWhlaWdodCwgMik7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGEueWVsbG8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgI3skZ2FwfSk7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICByaWdodDogMDtcbiAgICAgIGNvbG9yOiByZ2JhKHdoaXRlLCAwLjUpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogJHllbGxvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYWRtaW4tbGlua3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgI3skZ2FwfSk7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyguY2VwLWxvZ28pIHtcbiAgICAgIC0tbG9nby1zcGFjZXI6IDIwMHB4O1xuXG4gICAgICAuY2VwLWxvZ28ge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKSBpbnZlcnQoMSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1vdXQoc21hbGwtbWVkaXVtKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tbG9nby1zcGFjZXIpO1xuICAgICAgICAuY2VwLWxvZ28ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArICN7JGdhcDJ9KTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tbG9nby1zcGFjZXIpICogLTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICAgICAgLmNlcC1sb2dvIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDE0MDApIHtcbiAgICA+IG5hdiB7XG4gICAgICB1bDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBhbnktZGV0YWlscyBzbWFsbCBiciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIGNvbXBhbnktZGV0YWlscywgPiBuYXYgdWwge1xuICAgIC8vIFx0cGFkZGluZzokZ2FwMjtcbiAgICAvLyBcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIC8vIFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKCRibHVlLWRhcmssIDAuNSk7XG4gICAgLy8gfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgPiAqIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICA+IG5hdiB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdWwge1xuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYmFzZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGEubG9nbyB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzb2NpYWwtbWVkaWEge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2VyMC07XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXIwO1xuICAgICAgfVxuICAgICAgYWRtaW4tbGlua3Mge1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jbC1jb25zZW50LXNldHRpbmdzIHtcbiAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcbiAgcmlnaHQ6IHZhcigtLWd1dHRlcjEpO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3gtc2hhZG93OiB1bnNldCAhaW1wb3J0YW50O1xuICBib3R0b206IGNhbGModmFyKC0tZ3V0dGVyMykgKiAyLjc1KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwO1xuICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICBib3R0b206IHZhcigtLWd1dHRlcjUpICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQ3JvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY3JvcFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuXG4vLy8gQHNlZSBodHRwOi8vdGV4dC1jcm9wLmVpZ2h0c2hhcGVzLmNvbS8/dHlwZWZhY2Utc2VsZWN0aW9uPWdvb2dsZS1mb250JnR5cGVmYWNlPUxhdG8mY3VzdG9tLXR5cGVmYWNlLW5hbWU9SGVsdmV0aWNhJmN1c3RvbS10eXBlZmFjZS11cmw9JmN1c3RvbS10eXBlZmFjZS13ZWlnaHQ9NDAwJmN1c3RvbS10eXBlZmFjZS1zdHlsZT1ub3JtYWwmd2VpZ2h0LWFuZC1zdHlsZT0xMDAmc2l6ZT0zNiZsaW5lLWhlaWdodD0xLjImdG9wLWNyb3A9OSZib3R0b20tY3JvcD04XG5cbkBmdW5jdGlvbiBvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuICAkY3JvcCAgICAgICAgOiB1bml0LnN0cmlwKCRjcm9wKTtcbiAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG4gIEByZXR1cm4gbWF0aC5kaXYobWF0aC5yb3VuZChtYXRoLmRpdihtYXRoLm1heCgoJGNyb3AgKyAoJGxpbmUtaGVpZ2h0KSAqICgkZm9udC1zaXplIC8gMikpLCAwKSwgJGZvbnQtc2l6ZSkgKiAxMDApLCAxMDApO1xufVxuXG5AbWl4aW4gY3JvcDIoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3AsICRjcm9wLWJvdHRvbSApIHtcbiAgXG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgQGlmICRjcm9wLXRvcCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIG1hcmdpbi10b3A6IC0gI3tvZmZzZXQoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3ApfWVtO1xuXG4gICAgfVxuICB9XG5cbiAgQGlmICRjcm9wLWJvdHRvbSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSAje29mZnNldCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wLWJvdHRvbSl9ZW07XG4gICAgfVxuICB9XG5cbn1cblxuQG1peGluIGNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcC10b3AsICRjcm9wLWJvdHRvbSApIHtcblxuICAkY3JvcC10b3AgICAgOiB1bml0LnN0cmlwKCRjcm9wLXRvcCk7XG4gICRjcm9wLWJvdHRvbSA6IHVuaXQuc3RyaXAoJGNyb3AtYm90dG9tKTtcbiAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAkbGluZS1oZWlnaHQgOiB1bml0LnN0cmlwKCRsaW5lLWhlaWdodCk7XG5cbiAgJGNyb3AtbGluZS1oZWlnaHQ6IDEuMjtcblxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG5cbiAgQGlmICRjcm9wLXRvcCB7XG4gICAgJG1hcmdpbi10b3A6IG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wLXRvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgbWFyZ2luLXRvcDogLSAjeyRtYXJnaW4tdG9wfWVtO1xuXG4gICAgfVxuICB9XG5cbiAgQGlmICRjcm9wLWJvdHRvbSB7XG4gICAgJG1hcmdpbi1ib3R0b206IG1hdGguZGl2KG1hdGgucm91bmQobWF0aC5kaXYobWF0aC5tYXgoKCRjcm9wLWJvdHRvbSArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGZvbnQtc2l6ZSAvIDIpKSwgMCksICRmb250LXNpemUpICogMTAwKSwgMTAwKTtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtICN7JG1hcmdpbi1ib3R0b219ZW07XG4gICAgfVxuICB9XG5cbn1cblxuXG5AbWl4aW4gY3JvcDMoJGNyb3AtZm9udC1zaXplOiA1MSwgJGNyb3AtbGluZS1oZWlnaHQ6IDEuMiwgJHRvcC1jcm9wOiAxMywgJGJvdHRvbS1jcm9wOiAxMSkge1xuICAvLyBDb25maWd1cmVkIGluIFN0ZXAgMVxuICAkbGluZS1oZWlnaHQ6IDEuMztcbiAgJGNyb3AtZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRjcm9wLWZvbnQtc2l6ZSkgKiAxMDtcblxuXG4gIC8vIEFwcGx5IHZhbHVlcyB0byBjYWxjdWxhdGUgZW0tYmFzZWQgbWFyZ2lucyB0aGF0IHdvcmsgd2l0aCBhbnkgZm9udCBzaXplXG4gICRkeW5hbWljLXRvcC1jcm9wOiBtYXRoLmRpdihtYXgoKCR0b3AtY3JvcCArICgkbGluZS1oZWlnaHQgLSAkY3JvcC1saW5lLWhlaWdodCkgKiAoJGNyb3AtZm9udC1zaXplIC8gMikpLCAwKSwgJGNyb3AtZm9udC1zaXplKTtcbiAgJGR5bmFtaWMtYm90dG9tLWNyb3A6IG1hdGguZGl2KG1heCgoJGJvdHRvbS1jcm9wICsgKCRsaW5lLWhlaWdodCAtICRjcm9wLWxpbmUtaGVpZ2h0KSAqICgkY3JvcC1mb250LXNpemUgLyAyKSksIDApLCAkY3JvcC1mb250LXNpemUpO1xuXG4gIC8vIE1peGluIG91dHB1dFxuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIHdpZHRoOiAwO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0jeyRkeW5hbWljLXRvcC1jcm9wfStlbTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IC0jeyRkeW5hbWljLWJvdHRvbS1jcm9wfStlbTtcbiAgfVxufVxuXG5AbWl4aW4gcmVtb3ZlIHtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7IGRpc3BsYXk6bm9uZTsgfVxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5ID4gYmFja2dyb3VuZC1pbWFnZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcblxuICAtLWJhY2tncm91bmQtdGhlbWUtb25lIDogI3skYmx1ZX07XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d28gOiAjeyRibHVlMn07XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTsgXG4gICAgdG9wOjA7IFxuICAgIGxlZnQ6MDsgXG4gICAgd2lkdGg6MTAwJTtcbiAgICBoZWlnaHQ6MTAwJTsgXG4gICAgb3BhY2l0eTowLjc7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS1vbmUpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bykpO1xuICB9XG5cbiAgJi5ub25lIHtcbiAgICAmOjphZnRlciB7IGNvbnRlbnQ6aW5pdGlhbDsgfVxuICB9XG5cbiAgJi5yZWQge1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS1vbmUgOiAjeyRyZWR9O1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS10d28gOiAjeyRyZWR9O1xuICB9XG5cbiAgJi5ibGFjayB7XG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSA6ICN7JGJsYWNrfTtcbiAgICAtLWJhY2tncm91bmQtdGhlbWUtdHdvIDogI3skYmxhY2t9O1xuICB9XG5cbiAgJi50aWxlIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbiAgICBpbWcgeyBkaXNwbGF5Om5vbmU7IH1cbiAgfVxuXG4gICY6bm90KC50aWxlKSB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gIH1cblxuICAmLmJlaGluZC1oZWFkZXIge1xuICAgIC8vIGZpbHRlcjogZ3JheXNjYWxlKDIwJSk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgb3BhY2l0eToxO1xuICAgICAgYmFja2dyb3VuZDogcmdiYShibGFjaywgMC41KTtcbiAgICAgIC8vIGJhY2tncm91bmQ6IGluaXRpYWw7O1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBibGFjayAyMCUsdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgfVxuICB9XG4gXG59XG5cbmJvZHkubW9iaWxlID4gYmFja2dyb3VuZC1pbWFnZSwgYm9keS5tb2JpbGUgPiBiYWNrZ3JvdW5kLXZpZGVvIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuYm9keSA+IGJhY2tncm91bmQtdmlkZW8ge1xuXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBAaW5jbHVkZSBpbWFnZS1zcmNzZXQoKTtcblx0XG4gIHZpZGVvIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBibG9jaztcbiAgICBwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbiAgICBvYmplY3QtZml0ICAgICAgOiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb24gOiB2YXIoLS1pbWFnZS1wb3NpdGlvbiwgY2VudGVyIDMzLjMzJSk7XG5cdFx0d2lkdGggICAgICAgICAgIDogdmFyKC0taW1hZ2Utc2l6ZSwgdmFyKC0taW1hZ2Utd2lkdGgtc2l6ZSwgMTAwJSkpO1xuXHRcdGhlaWdodCAgICAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLWhlaWdodC1zaXplLCAxMDAlKSk7IFxuXHRcdG1heC13aWR0aCAgICAgICA6IHZhcigtLWltYWdlLXNpemUsIHZhcigtLWltYWdlLXdpZHRoLXNpemUsIDEwMCUpKTtcblx0XHRtYXgtaGVpZ2h0ICAgICAgOiB2YXIoLS1pbWFnZS1zaXplLCB2YXIoLS1pbWFnZS1oZWlnaHQtc2l6ZSwgMTAwJSkpO1xuXHRcdHRvcCAgICAgICAgICAgICA6IDA7IFxuXHRcdGxlZnQgICAgICAgICAgICA6IDA7XG5cdH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDpcIlwiO1xuICAgIHBvc2l0aW9uOmFic29sdXRlOyBcbiAgICB0b3A6MDsgXG4gICAgbGVmdDowOyBcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlOyBcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZSwgdHJhbnNwYXJlbnQpLCB2YXIoLS1iYWNrZ3JvdW5kLXRoZW1lLXR3bywgYmxhY2spKTtcbiAgfVxuXG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbiNicmVhZGNydW1icy1iYXIge1xuXG4gIGJhY2tncm91bmQtY29sb3I6JHByaW1hcnk7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0ICR0cmFuc2l0aW9uLCB0b3AgJHRyYW5zaXRpb247XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICBsZWZ0OiRnYXAtO1xuICAgIHdpZHRoOiAxMDAlOztcbiAgICBsaSB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgKyBsaSB7IG1hcmdpbi1sZWZ0OiRnYXAtOyB9XG4gICAgfVxuICB9XG5cbiAgLmxpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6MTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAgIGZvbnQtc2l6ZSA6IGZvbnQtc2l6ZSgxOCk7XG4gICAgcGFkZGluZzokZ2FwOyBcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6d2hpdGU7IFxuICAgIHN2ZyB7XG4gICAgICBjb2xvcjpyZ2JhKHdoaXRlLCAwLjgpOyBcbiAgICAgIHdpZHRoOjAuN2VtO1xuICAgICAgaGVpZ2h0OjAuN2VtO1xuICAgICAgbWFyZ2luLWxlZnQ6JGdhcDtcbiAgICB9XG4gICAgQGluY2x1ZGUgaG92ZXIoJy5jdXJyZW50Jykge1xuICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICB9XG4gICAgJi5jdXJyZW50OjphZnRlciB7XG4gICAgICBjb250ZW50OlwiXCI7XG4gICAgICBib3R0b206MDtcbiAgICAgIGxlZnQ6MDsgXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDo0cHg7IFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAvLyBhIHtcbiAgLy8gICBncmlkLXJvdzoxOyBcbiAgLy8gICBmb250LXNpemUgOiBmb250LXNpemUoMjIpO1xuICAvLyAgIGZvbnQtd2VpZ2h0OmJvbGQ7IFxuICAvLyAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8vICAgZGlzcGxheTpibG9jazsgXG4gIC8vICAgLS1mb250LWNvbG91ciA6IHdoaXRlOyBcbiAgLy8gICBAaW5jbHVkZSBob3ZlciB7XG4gIC8vICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAvLyAgIH1cbiAgLy8gfVxuXG5cbiAgLy8gQGluY2x1ZGUgY29tcG9uZW50LWRvZXNudC1leGlzdHMoJ2JhY2tncm91bmQtaW1hZ2UnKSB7XG5cdFx0Ly8gJjo6YmVmb3JlIHsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSh3aGl0ZSwgMC4yKTsgfVxuXHQvLyB9XG5cbn1cblxuYm9keS5tb2JpbGUgPiAjYnJlYWRjcnVtYnMtYmFyIHtcbiAgbWF4LWhlaWdodDogaW5pdGlhbDtcbiAgXG4gIC8vLyBJZiB5b3Ugd2FudCB0aGlzIGJhY2sgaW4sIHlvdSdsbCBoYXZlIHRvIGVkaXQgdGhlIHRvZ2dsZSBsb2dpYyBpbiB0aGUgaXNNb2JpbGVCcmVha1BvaW50IG1ldGhvZCBoZXJlOiBcbiAgLy8vICBAc2VlIHNyYy9zY3JpcHRzL2NvbXBvbmVudHMvc2VjdGlvbnMvbmF2aWdhdGlvbi1iYXIuanNcbiAgZGlzcGxheTpub25lOyBcbn1cblxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbiNhbmNob3JzLWJhciB7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjokZ3JleTM7XG4gIHRyYW5zaXRpb246IGhlaWdodCAkdHJhbnNpdGlvbiwgdG9wICR0cmFuc2l0aW9uO1xuICBkaXNwbGF5OmZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwdnc7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6aGlkZGVuOyBcbiAgICBoZWlnaHQ6MTAwJTsgXG4gIH1cblxuICBAaW5jbHVkZSBicm93c2VyLXdpdGhvdXQtZmVhdHVyZSgndG91Y2gnKSB7IFxuICAgIEBpbmNsdWRlIGJyZWFrLWluKG1heCkge1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgbWFyZ2luLWxlZnQ6JGd1dHRlcjItO1xuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDokZ3V0dGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyb3dzZXItZmVhdHVyZSgndG91Y2gnKSB7IFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeyRndXR0ZXIyfSArICN7JGdhcDB9KTtcbiAgICBtYXJnaW4tbGVmdDokZ3V0dGVyLTtcbiAgICAmOjpiZWZvcmUgeyBjb250ZW50OmluaXRpYWw7IH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6JGd1dHRlcjtcbiAgICAgIHBhZGRpbmctcmlnaHQ6JGd1dHRlcjtcbiAgICB9XG4gIH1cblxuICAmOjpiZWZvcmUgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkZ3JleTQ7IH1cblxuICBhIHtcbiAgICBncmlkLXJvdzoxOyBcbiAgICBmb250LXNpemUgOiBmb250LXNpemUoMTQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6Ym9sZDsgXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjsgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb2xvcjokYmx1ZTsgXG4gICAgKyBhIHsgbWFyZ2luLWxlZnQ6JGd1dHRlcjsgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIGJvdHRvbTowO1xuICAgICAgbGVmdDowOyBcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OjRweDsgXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNmb3JtOnNjYWxlWSgwKTtcbiAgICAgIHRyYW5zaXRpb246dHJhbnNmb3JtICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2UgMC4ycztcbiAgICB9XG5cbiAgICAmLmN1cnJlbnQge1xuICAgICAgY29sb3I6JHNlY29uZGFyeTtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOnNjYWxlWSgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNpZGViYXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5zaWRlLWJhciB7XG4gID4gZGl2IHtcbiAgICA+ICoge1xuICAgICAgJjpub3QoLndoaXRlKSB7XG4gICAgICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICAgICAgICAtLWhlYWRpbmctY29sb3VyOiB3aGl0ZTtcbiAgICAgIH1cbiAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHByaW1hcnl9O1xuXG4gICAgICBvcmRlcjogMztcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgcGFkZGluZzogJGd1dHRlcjI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKHdoaXRlLCAwLjIpKTtcbiAgICB9XG5cbiAgICBzZXJ2aWNlLWNlbnRyZS1maW5kZXIge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICAgIHNlcnZpY2UtY2VudHJlLWZpbmRlciB+ICNncmFkZXMtc2lkZWJhci1saXN0IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRndXR0ZXIwO1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMygpO1xuICAgIH1cblxuICAgID4gZGl2LnNpZGViYXItbG9nb3Mge1xuICAgICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAycmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICAgIHN2ZyB7XG4gICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNwb3dkZXItdHVicyxcbiAgI2dyZWVuZXItZnV0dXJlLFxuICAjbGliZXJ0eS1wb3dkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGgzIHtcbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gICAgZGl2IHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgb2JqZWN0LXBvc2l0aW9uOiAxMDAlIDAlO1xuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbGliZXJ0eS1wb3dkZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5NDtcbiAgICAuaW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjcG93ZGVyLXR1YnMge1xuICAgIGJhY2tncm91bmQ6ICRncmV5NjtcbiAgICBoMyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjI1cHg7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5iYWNrZ3JvdW5kIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIC5pbWFnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWstbWVkaXVtKSB7XG4gICAgICBoMyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMDBweDtcbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2dyZWVuZXItZnV0dXJlIHtcbiAgICAtLWdyZWVuZXItZ3JlZW46ICM0ZWNiM2Q7XG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDI7XG4gICAgICBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZWVuZXItZ3JlZW4pO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgaGVpZ2h0OiA5MHB4O1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgIGxpIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRnYXAyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbmVyLWdyZWVuKTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogN3B4O1xuICAgICAgICAgIHRvcDogNnB4O1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrLW1lZGl1bSkge1xuICAgICAgdWwge1xuICAgICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zaWRlYmFyLWJsb2NrXFw6bG9jYWwtY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3Njc2NztcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMXJlbSBib3R0b207XG4gIGJhY2tncm91bmQtc2l6ZTogYXV0byAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIwKTtcbiAgcCB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHRleHQtd3JhcDogcHJldHR5O1xuICB9XG4gIEBtZWRpYSAod2lkdGggPiAxNDAwcHgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvdXBsb2Fkcy9pbWFnZXMvMjBtcGgtc2lnbi5wbmcnKTtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMTYwcHg7XG4gIH1cbn1cblxuLnNpZGViYXItYmxvY2tcXDppc28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzRiZjAzO1xuICBib3JkZXI6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU29jaWFsIE1lZGlhXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuc29jaWFsLW1lZGlhIHtcbiAgXG4gIC0taWNvbi1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0taWNvbi1zaXplICAgOiAyMHB4OyBcblxuICBkaXNwbGF5OmZsZXg7IFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGEge1xuXG4gICAgbWFyZ2luLWxlZnQ6JGdhcDsgXG4gICAgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IFxuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoICA6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgICBoZWlnaHQgOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgZmlsbCAgIDogdmFyKC0taWNvbi1jb2xvdXIpO1xuICAgICAgdHJhbnNpdGlvbiA6ICR0cmFuc2l0aW9uOyBcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBAZWFjaCAkbmFtZSwgJGNvbG91ciBpbiAkY29sb3Vycy1zb2NpYWwtbWVkaWEge1xuICAgICAgICAmLiN7JG5hbWV9IHsgLS1pY29uLWNvbG91ciA6ICN7JGNvbG91cn07IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuIHsgZGlzcGxheTpub25lOyB9XG5cbiAgfVxuXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVHJhbnNpdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJoZWxwZXJzL2Vhc2VcIjtcblxuJGR1cmF0aW9uIDogMC4ycztcbiRlYXNlICAgICA6IGVhc2UuJGluLW91dDtcbiRkZWxheSAgICA6IG51bGw7XG5cbiR0cmFuc2l0aW9uIDogdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsICRlYXNlKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCAkZGVsYXkpOyIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuXG4kcGFyZW50U2VsZWN0b3I6ICcuYXJ0aWNsZSc7XG5cbi8vIEBpbmNsdWRlIGNvbnRhaW5zKCd0aXRsZScsICdzdWJoZWFkaW5nJywgJ25vdDppbnRyb2R1Y3Rpb24nKSB7IC4uLiB9XG5cbkBtaXhpbiBjb250YWlucygkbmFtZXMuLi4pIHtcbiAgJHBhcmVudDogaWYobGlzdC5udGgobGlzdC5udGgoJiwgMSksIDEpID09ICc6cm9vdCcsICcnLCAmKTtcblxuICAkc2VsZWN0b3I6ICcnO1xuXG4gIEBpZiAodHlwZS1vZigkcGFyZW50KSA9PSAnbGlzdCcpIHtcbiAgICBAZWFjaCAkc2VnbWVudCBpbiBsaXN0Lm50aCgkcGFyZW50LCAxKSB7XG4gICAgICBAaWYgKCRzZWdtZW50ICE9ICRwYXJlbnRTZWxlY3Rvcikge1xuICAgICAgICAkc2VsZWN0b3I6ICRzZWxlY3RvciArICcgJyArICRzZWdtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRhdHRyaWJ1dGVzOiAnJztcblxuICBAZWFjaCAkbmFtZSBpbiAkbmFtZXMge1xuICAgIEBpZiAoc3RyaW5nLmluZGV4KCRuYW1lLCAnbm90OicpKSB7XG4gICAgICAkbmFtZTogc3RyaW5nLnNsaWNlKCRuYW1lLCA1KTtcbiAgICAgICRhdHRyaWJ1dGVzOiAkYXR0cmlidXRlcyArICc6bm90KFtkYXRhLWNvbnRhaW5zKj1cIiN7JG5hbWV9XCJdKSc7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkYXR0cmlidXRlczogJGF0dHJpYnV0ZXMgKyAnW2RhdGEtY29udGFpbnMqPVwiI3skbmFtZX1cIl0nO1xuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290ICN7JHBhcmVudFNlbGVjdG9yfSN7JGF0dHJpYnV0ZXN9ICN7JHNlbGVjdG9yfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuI3skcGFyZW50U2VsZWN0b3J9IHtcbiAgZGlzcGxheTogZmxleDtcblxuICAuY29udGFpbmVyIHtcbiAgICAvLyBkaXNwbGF5OmdyaWQ7XG4gICAgLy8gZ3JpZC1hdXRvLWNvbHVtbnM6IDFmcjtcbiAgICAvLyBncmlkLWdhcDokZ2FwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5MztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZ2FwOiAxLjVyZW07XG5cbiAgICA+ICoge1xuICAgICAgb3JkZXI6IDI7XG4gICAgICAvLyBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIH1cblxuICAgIC5oZWFkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDM7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5zdWJoZWFkaW5nIHtcbiAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG4gICAgICAvLyBjb2xvcjokc2Vjb25kYXJ5O1xuICAgICAgY29sb3I6IHZhcigtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91ciwgJGZvbnQtY29sb3VyKTtcblxuICAgICAgbWF4LXdpZHRoOiA3NWNoO1xuXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgKyAudGltZXN0YW1wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW50cm9kdWN0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgICAgIG1heC13aWR0aDogNzVjaDtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIH1cblxuICAgICY6aGFzKC5hdXRob3IpIHtcbiAgICAgIC5hdXRob3Ige1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBib3JkZXItdG9wOiAkZ3V0dGVyMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiBpbml0aWFsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRpbWUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgfVxuXG4gICAgLmF1dGhvciB7XG4gICAgICAtLXBob3RvLXNpemU6IDQwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLm5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBlbSB7XG4gICAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLXBob3RvLXNpemUpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgICAgLnRpbWVzdGFtcCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICYsXG4gICAgICAgIH4gLm5hbWUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tcGhvdG8tc2l6ZSkgLyAyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmltYWdlIHtcbiAgICAgICAgd2lkdGg6IHZhcigtLXBob3RvLXNpemUpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXBob3RvLXNpemUpO1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tcGhvdG8tc2l6ZSkgLyAyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5NDtcbiAgICAgICAgfiAqIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tcGhvdG8tc2l6ZSkgKyAjeyRnYXB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgID4gLmltYWdlIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcbiAgICAgIGhlaWdodDogdmFyKC0taW1hZ2UtaGVpZ2h0LCAxODBweCk7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgI3skZ3V0dGVyM30pO1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAkZ3V0dGVyLTtcbiAgICAgIG1hcmdpbi10b3A6ICRndXR0ZXItO1xuICAgIH1cbiAgfVxuICAmLmJnLSB7XG4gICAgQGVhY2ggJG5hbWUsICRjb2xvdXIgaW4gJGNvbG91ci1tYXAge1xuICAgICAgJiN7JycgKyAkbmFtZX06bm90KC5jZW50cmUtc3RhY2tlZCkgLmNvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgICAgIEBpZiAoJG5hbWUgPT0gcmVkIG9yICRuYW1lID09IG9yYW5nZSBvciAkbmFtZSA9PSBncmVlbiBvciAkbmFtZSA9PSBibHVlKSB7XG4gICAgICAgICAgLS1hcnRpY2xlLXN1YmhlYWRpbmctZm9udC1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAgICAgICAtLWhlYWRpbmctY29sb3VyOiAjeyR3aGl0ZX07XG5cbiAgICAgICAgICAudGV4dCxcbiAgICAgICAgICAubmFtZSB7XG4gICAgICAgICAgICBjb2xvcjogI3skd2hpdGV9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCRuYW1lID09IGdyZXkpIHtcbiAgICAgICAgICAtLWhlYWRpbmctY29sb3VyOiB2YXIoLS1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZwcmltYXJ5IC5jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XG4gICAgICAtLWFydGljbGUtc3ViaGVhZGluZy1mb250LWNvbG91cjogI3skd2hpdGV9O1xuICAgICAgLS1oZWFkaW5nLWNvbG91cjogI3skd2hpdGV9O1xuICAgIH1cbiAgICAmc2Vjb25kYXJ5IC5jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5KTtcbiAgICAgIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgICAtLWhlYWRpbmctY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgfVxuICAgIEBhdC1yb290IC5jb250ZW50LWJsb2NrLmJsYWNrIGFydGljbGUtbGlzdCB7XG4gICAgICAuYXJ0aWNsZSAuY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIC0tYXJ0aWNsZS1zdWJoZWFkaW5nLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgLS1mb250LWNvbG91cjogd2hpdGU7XG4gICAgICAgICAgLy8gLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skYmxhY2t9O1xuICAgICAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6ICN7JHNlY29uZGFyeX07XG4gICAgICAgICAgLS1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAtLWhvdmVyLWZvbnQtY29sb3VyOiAjeyRibGFja307XG4gICAgICAgICAgLS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gICAgICAgICAgLS1ob3Zlci1ib3JkZXItY29sb3VyOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5jb2x1bW5zLTIge1xuICAgICAgICBAaW5jbHVkZSBicmVhay1vdXQoMTAwMHB4KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gICAgICAgIH1cbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpoYXMoZGl2LmNvbnRhaW5lciBidXR0b24tY29udGFpbmVyIC5idXR0b246b25seS1jaGlsZCkge1xuICAgIGRpdi5jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICAgICAgfVxuICAgIH1cbiAgICBidXR0b24tY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgLmJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhLmNvbnRhaW5lciB7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uO1xuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcbiAgICAuYnV0dG9uIHtcbiAgICAgIC8vIHBhZGRpbmctYmxvY2s6IDAuMmVtO1xuICAgICAgLy8gbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICYudW5jcm9wcGVkLWltYWdlIHtcbiAgICAuaW1hZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBwYWRkaW5nOiAkZ3V0dGVyMDtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGFydGljbGUtbGlzdDpoYXMoLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmLmRpci1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xuICAgIC5jb250ZW50ID4gKiB7XG4gICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICB9XG4gIH1cbiAgJjpub3QoW2NsYXNzKj0nYmctJ10pIHtcbiAgICAtLWRpdmlkZXItbGluZS1jb2xvdXI6ICN7JGdyZXkzfTtcbiAgfVxuICAmLmltYWdlLXRleHQtc2lkZS1ieS1zaWRlIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMyU7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlci1pbmxpbmUtZW5kOiAxcHggc29saWQgdmFyKC0tZGl2aWRlci1saW5lLWNvbG91ciwgJGdyZXk0KTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuY2VudHJlLXN0YWNrZWQge1xuICAgIC5jb250YWluZXIge1xuICAgICAgLy8gcGFkZGluZzogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG4gICAgICAudGV4dCAqIHtcbiAgICAgICAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICAgICAgfVxuICAgIH1cbiAgICAuaW1hZ2Uge1xuICAgICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvcmRlcjogLTE7XG4gICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE0MHB4O1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAvLyBwYWRkaW5nOiAkZ3V0dGVyMDtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBidXR0b24tY29udGFpbmVyIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgIHBhZGRpbmctdG9wOiAkZ3V0dGVyMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVhay1vdXQoMTMwMHB4KSB7XG4gICAgKyAuY2VudHJlLXN0YWNrZWQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogODAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMCUpO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBjb250YWlucygndGl0bGUnLCAndGltZXN0YW1wJywgJ2F1dGhvcicsICdidXR0b24nLCAnaW1hZ2UnLCAnbm90OnN1YmhlYWRpbmcnLCAnbm90OmludHJvZHVjdGlvbicpIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIC50aW1lc3RhbXAge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBjb250YWlucygndGl0bGUnLCAnaW1hZ2UnLCAnbm90OnRpbWVzdGFtcCcsICdub3Q6YXV0aG9yJywgJ25vdDpidXR0b24nLCAnbm90OnN1YmhlYWRpbmcnLCAnbm90OmludHJvZHVjdGlvbicpIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cbiAgICAgID4gLmltYWdlIHtcbiAgICAgICAgLS1pbWFnZS1oZWlnaHQ6IDEzMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGNvbnRhaW5zKCdzZXJ2aWNlQ2VudHJlcycpIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIGRpdiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICB9XG4gICAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sYXlvdXQge1xuICAgICYtdGV4dC1pbWFnZS1zaWRlLWJ5LXNpZGUge1xuICAgICAgJjpub3QoW2NsYXNzPSdiZy0nXSkge1xuICAgICAgICAuY29udGFpbmVyLFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbnRhZy1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogJGdhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogNXB4O1xuICBAaW5jbHVkZSBoZWFkaW5nLWgzO1xuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjVlbTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG4gIH1cbiAgc3ZnIHtcbiAgICBjb2xvcjogdmFyKC0tdGFnbGluZS1pY29uLWNvbG91ciwgJHJlZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogJGdhcDtcbiAgfVxuICAvLyBAaW5jbHVkZSBicmVhay1pbig0MDApIHtcbiAgLy8gICBnYXA6ICRnYXAwO1xuICAvLyAgIHdpZHRoOiAxMDAlO1xuICAvLyAgIG1hcmdpbjogJHNwYWNlcjAgMDtcbiAgLy8gICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvLyAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAvLyAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAvLyAgIHNwYW4ge1xuICAvLyAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgLy8gICB9XG4gIC8vICAgc3ZnIHtcbiAgLy8gICAgIG1hcmdpbi1yaWdodDogJGdhcDA7XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuc2lkZS1iYXIgZm9ybSB7XG4gIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICAgIHBhZGRpbmc6ICRnYXAwICRnYXA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbWFyZ2luOiAwIC0xNXB4ICRnYXA7XG4gIH1cbiAgLnN1Ym1pdC1yb3cge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbn1cblxuZm9ybSB7XG4gIEBpbmNsdWRlIGZvcm0tc2VsZWN0KCk7XG4gIEBpbmNsdWRlIGZvcm0taW5wdXQoKTtcbiAgQGluY2x1ZGUgZm9ybS10ZXh0YXJlYSgpO1xuXG4gIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwsXG4gIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4gIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4gIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG4gIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4gIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1mb250LWNvbG91ciwgaW5oZXJpdCk7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgd2hpdGUpIGluc2V0O1xuICB9XG5cbiAgJltkYXRhLWZyZWVmb3JtXSB7XG4gICAgbGFiZWwgKyBkaXYge1xuICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDA7XG4gICAgfVxuICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgKyAuZnJlZWZvcm0tcm93ID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cC1vbmUtbGluZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWNoZWNrYm94KCk7XG4gICAgfVxuICB9XG59XG5cbnNpZGUtYmFyIGZvcm0ge1xuICBsYWJlbCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIH4gZGl2IHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuZm9ybSNsb2dpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gID4gbGFiZWwgfiBsYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogJGdhcDtcbiAgfVxuICBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gICAgZm9udC1zaXplOiBmb250LXNpemUoMTIpO1xuICAgIGEge1xuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBidXR0b24ge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbn1cblxuZm9ybSNyZXNldC1wYXNzd29yZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAkZ3V0dGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBidXR0b24ge1xuICAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIH1cbn1cblxucmVxdWlyZWQtbm90aWNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpY2UtY29sb3VyLCAkZ3JlZW4pO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBzcGFuIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDEyKTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogY2FsYygxMDAlICsgI3skZ2FwMH0pO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5NDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogNHB4ICRnYXAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwcHgsIC01MCUpO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICB9XG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBzcGFuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTUwJSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG5mb3JtW2RhdGEtaGFuZGxlPSdjb250YWN0VXMnXSxcbmZvcm1bZGF0YS1oYW5kbGU9J3Bvd2RlckNvbnRhY3QnXSB7XG4gIC5mcmVlZm9ybS1mb3JtLXN1Y2Nlc3MsXG4gIC5mcmVlZm9ybS1mb3JtLWVycm9ycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRnYXAwICRnYXA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgbWFyZ2luLWJvdHRvbTogJGd1dHRlcjtcbiAgfVxuICAuZnJlZWZvcm0tZm9ybS1lcnJvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gIH1cblxuICAuZm9ybS1maWVsZHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6ICRndXR0ZXIgJGd1dHRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrLW91dCg2MDApIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcblxuICAgICAgLmZyZWVmb3JtLXJvdyB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5maXJzdC1uYW1lLFxuICAgICAgICAmLmxhc3QtbmFtZSxcbiAgICAgICAgJi5lbWFpbCxcbiAgICAgICAgJi5jb21wYW55LW5hbWUsXG4gICAgICAgICYuY29udGFjdC1ubyxcbiAgICAgICAgJi55LXJxZzE4MWstZCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIH1cbiAgICAgICAgJi5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICBncmlkLXJvdzogMiAvIHNwYW4gNTtcbiAgICAgICAgfVxuICAgICAgICAmLnN1Ym1pdC1yb3cge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvblt0eXBlPSdzdWJtaXQnXSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgc3ZnLmVtYWlsIHtcbiAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZyZWVmb3JtLXJvdyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiAyO1xuXG4gICAgICAmLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgICAuZnJlZWZvcm0taW5zdHJ1Y3Rpb25zIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxhYmVsOm5vdCguZnJlZWZvcm0taW5wdXQtb25seS1sYWJlbCkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuICAgICAgJi5sZWFkLXN0YXR1cyxcbiAgICAgICYuaW50ZXJuYWwtbm90ZXMsXG4gICAgICAmLm9yZGVyLXZhbHVlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbC5mcmVlZm9ybS1pbnB1dC1vbmx5LWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXAwO1xuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSxcbiAgICBpbnB1dDpub3QoW3R5cGU9J3N1Ym1pdCddKSB7XG4gICAgICAtLWJvcmRlci1jb2xvdXI6IG5vbmU7XG4gICAgICAtLWJhY2tncm91bmQtY29sb3VyOiB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAuZnJlZWZvcm0tZXJyb3JzIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IGZvbnQtc2l6ZSgxMCk7XG4gICAgcGFkZGluZzogMnB4ICRnYXA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlIC0gNHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgfVxuXG4gIGJ1dHRvblt0eXBlPSdzdWJtaXQnXSB7XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oNDAwKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuZnJlZWZvcm0taW5wdXRbcmVxdWlyZWRdOm5vdCg6dmFsaWQpIH4gcmVxdWlyZWQtbm90aWNlIHtcbiAgICAtLW5vdGljZS1jb2xvdXI6ICN7JHJlZH07XG4gIH1cblxuICAmOm5vdCg6dmFsaWQpIHtcbiAgICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBidXR0b24tb3V0bGluZS10aGVtZSgkZ3JleSk7XG4gICAgfVxuICB9XG5cbiAgLnNlcnZpY2UtY2VudHJlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuZm9ybVtkYXRhLWhhbmRsZT0nY29udGFjdFVzJ10ge1xuICAuZm9ybS1maWVsZHMge1xuICAgIEBpbmNsdWRlIGJyZWFrLW91dCg2MDApIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcblxuICAgICAgLmZyZWVmb3JtLXJvdyB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5maXJzdC1uYW1lLFxuICAgICAgICAmLmxhc3QtbmFtZSxcbiAgICAgICAgJi5lbWFpbCxcbiAgICAgICAgJi5jb21wYW55LW5hbWUsXG4gICAgICAgICYuY29udGFjdC1ubyxcbiAgICAgICAgJi55LXJxZzE4MWstZCxcbiAgICAgICAgJi5wcm9kdWN0IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgIH1cbiAgICAgICAgJi5kZXRhaWxzb2ZlbnF1aXJ5IHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMiAvIC0xO1xuICAgICAgICAgIGdyaWQtcm93OiAyIC8gc3BhbiA2O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmJvZHkjZWRpdCB7XG4gIGZvcm0ge1xuICAgIHRleHRhcmVhLFxuICAgIHNlbGVjdCxcbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgICB9XG4gICAgLnN1Ym1pdC1yb3cge1xuICAgICAgb3JkZXI6IDIwO1xuICAgIH1cblxuICAgIC5mcmVlZm9ybS1yb3cge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmZpcnN0LW5hbWUsXG4gICAgLmxhc3QtbmFtZSxcbiAgICAuZW1haWwsXG4gICAgLnByb2R1Y3QsXG4gICAgLmRldGFpbHNvZmVucXVpcnksXG4gICAgLnNlcnZpY2UtY2VudHJlLWNvbnRhY3QsXG4gICAgLmxlYWQtc3RhdHVzLFxuICAgIC5pbnRlcm5hbC1ub3RlcyxcbiAgICAub3JkZXItdmFsdWUsXG4gICAgLnN1Ym1pdC1yb3cge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAuZnJlZWZvcm0tY29sdW1uIHtcbiAgICAgICAgc2VsZWN0LFxuICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRldGFpbHNvZmVucXVpcnkge1xuICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDY7XG4gICAgfVxuXG4gICAgLmZpcnN0LW5hbWUsXG4gICAgLmxhc3QtbmFtZSxcbiAgICAuZW1haWwsXG4gICAgLnByb2R1Y3QsXG4gICAgLnNlcnZpY2UtY2VudHJlLWNvbnRhY3Qge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBzZWxlY3QsXG4gICAgICB0ZXh0YXJlYSxcbiAgICAgIGlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsc29mZW5xdWlyeSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgdGV4dGFyZWEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zZXJ2aWNlLWNlbnRyZS1jb250YWN0LFxuICAgIC5sZWFkLXN0YXR1cyxcbiAgICAuaW50ZXJuYWwtbm90ZXMsXG4gICAgLm9yZGVyLXZhbHVlIHtcbiAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB1c2UgJy4uL192YXJpYWJsZXMnIGFzICo7XG5AdXNlICdtb2R1bGVzL2NvbG91ci9lbmNvZGUnIGFzIGNvbG91cjtcbkB1c2UgXCJmb250XCI7XG5cbkBtaXhpbiBfYmFzZS1zdHlsaW5nIHtcbiAgXG4gIC0tZm9udC1jb2xvdXIgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tYm9yZGVyLXJhZGl1cyA6ICN7JGJvcmRlci1yYWRpdXN9O1xuICAtLWJvcmRlci1jb2xvdXIgOiB2YXIoLS1mb250LWNvbG91cik7XG4gIC0tYm9yZGVyIDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLXBhZGRpbmcgOiAjeyRnYXB9ICN7JGdhcH07XG5cbiAgYm9yZGVyLXJhZGl1czokYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlcjp2YXIoLS1ib3JkZXIpOyBcbiAgcGFkZGluZzp2YXIoLS1wYWRkaW5nKTsgXG4gIGZvbnQtc2l6ZTpmb250LnNpemUoMTQpOyBcbiAgY29sb3I6dmFyKCAtLWZvbnQtY29sb3VyKTtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbiAgJjpmb2N1cyB7XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6dHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIG91dGxpbmUtY29sb3IgOiAkYmx1ZTsgXG4gIH1cbiAgJi5hdXRvY29tcGxldGU6bm90KFt2YWx1ZT1cIlwiXSk6Zm9jdXMge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIHNlbGVjdCwgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbnB1dCgkdHlwZTpudWxsKSB7XG5cbiAgJHNlbGVjdG9yIDogJ2lucHV0Om5vdChbdHlwZT1cImNoZWNrYm94XCJdKTpub3QoW3R5cGU9XCJyYWRpb1wiXSknO1xuXG4gIEBpZiB0eXBlLW9mKCR0eXBlKSAhPSAnbnVsbCcge1xuICAgICRzZWxlY3RvciA6ICdpbnB1dFt0eXBlPVwiI3skdHlwZX1cIl0nO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSAgX2Jhc2Utc3R5bGluZzsgXG4gICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5AbWl4aW4gc2VsZWN0KCRzdHJva2UgOiAkYmxhY2spIHtcblxuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlICBfYmFzZS1zdHlsaW5nOyBcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IFxuICAgIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNhbGMoMTAwJSAtICN7JGdhcH0pIGNlbnRlcjsgXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9J1wiK2NvbG91ci5lbmNvZGUoJHN0cm9rZSkrXCInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpOyAgICBcbiAgICBAY29udGVudDtcbiAgfVxuXG59XG5cbkBtaXhpbiBjaGVja2JveCgpIHtcblxufVxuXG5AbWl4aW4gdGV4dGFyZWEoKSB7XG5cbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlICBfYmFzZS1zdHlsaW5nOyBcbiAgICBAY29udGVudDtcbiAgfVxuXG59IiwiQHVzZSAnX21vZHVsZXMnIGFzICo7XG5cbm1vZGFsLXdyYXBwZXIge1xuXG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7cmdiYSgkd2hpdGUsIDAuOTUpfTtcbiAgLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLW1pbi13aWR0aDozMDBweDtcbiAgLS1tYXgtd2lkdGg6I3skYnJlYWstbWVkaXVtfTtcbiAgLS13aWR0aDpjbGFtcCh2YXIoLS1taW4td2lkdGgpLCA5MHZ3LCBmaXQtY29udGVudCk7XG5cbiAgLS1taW4taGVpZ2h0OjYwMHB4O1xuICAtLW1heC1oZWlnaHQ6Y2FsYygxMDB2aCAtICN7JGd1dHRlcjJ9KTtcbiAgXG4gIC0taGVpZ2h0OmNsYW1wKHZhcigtLW1pbi1oZWlnaHQpLCA5MHZ3LCBmaXQtY29udGVudCk7XG5cbiAgQHN1cHBvcnRzICggLS12Oi13ZWJraXQtZmlsbC1hdmFpbGFibGUgKSB7XG4gICAgLS1tYXgtaGVpZ2h0Oi13ZWJraXQtZmlsbC1hdmFpbGFibGU7XG4gIH1cblxuICAtLWNsb3NlLWJ1dHRvbi1zaXplIDogMzBweDsgXG4gIC0tbmF2LWJ1dHRvbi1zaXplIDogNDBweDsgXG5cbiAgcG9zaXRpb246Zml4ZWQ7XG4gIGluc2V0OjA7XG4gIGhlaWdodDoxMDAlOyBcbiAgd2lkdGg6MTAwJTsgXG4gIGJhY2tncm91bmQtY29sb3I6dmFyKC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIHotaW5kZXg6MTA7XG4gIGRpc3BsYXk6ZmxleDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgJGVhc2UtaW4tb3V0O1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gICYubG9hZGluZyB7IFxuICAgIG9wYWNpdHk6MDsgXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzICRlYXNlLWluLW91dCAwLjNzO1xuICAgIG1vZGFsLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OjA7IFxuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnZoKTsgXG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgJGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1pbi1xdWFydDtcbiAgICB9XG4gIH1cblxuICBidXR0b24uY2xvc2Uge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHRvcDokZ3V0dGVyOyBcbiAgICByaWdodDokZ3V0dGVyOyBcbiAgICB3aWR0aDp2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7IFxuICAgIGhlaWdodDp2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSk7IFxuICAgIHN2ZyB7IFxuICAgICAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgY2lyY2xlLCBwYXRoIHsgdHJhbnNpdGlvbjowLjNzICRlYXNlLWluLW91dDsgfVxuICAgICAgLS1maWxsOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHN2ZyB7IFxuICAgICAgICAtLWZpbGw6d2hpdGU7XG4gICAgICAgIC0tc3Ryb2tlOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHdpZHRoOnZhcigtLW5hdi1idXR0b24tc2l6ZSk7IFxuICAgIGhlaWdodDp2YXIoLS1uYXYtYnV0dG9uLXNpemUpOyBcbiAgICB0b3A6Y2FsYyg1MCUgLSAodmFyKC0tbmF2LWJ1dHRvbi1zaXplKSAvIDIpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjoycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LCAjeyRyZWR9KTtcbiAgICBjb2xvcjp3aGl0ZTsgXG4gICAgZGlzcGxheTpmbGV4O1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246Y29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAwLjJzICRlYXNlLW91dC1iYWNrO1xuICAgICYucHJldmlvdXMgeyBsZWZ0IDogJGd1dHRlcjsgfVxuICAgICYubmV4dCB7IHJpZ2h0IDogJGd1dHRlcjsgfVxuICAgIHN2ZyB7IFxuICAgICAgd2lkdGg6NTAlO1xuICAgICAgaGVpZ2h0OjUwJTsgXG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIGNvbG9yOnZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxubW9kYWwtY29udGFpbmVyIHtcblxuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzICRlYXNlLWluLW91dCAwLjNzLCB0cmFuc2Zvcm0gMC41cyAkZWFzZS1vdXQtcXVhcnQgMC4zcztcbiAgd2lkdGg6dmFyKC0td2lkdGgpO1xuICBoZWlnaHQ6dmFyKC0taGVpZ2h0KTtcbiAgbWF4LWhlaWdodDp2YXIoLS1tYXgtaGVpZ2h0KTtcbiAgbWF4LXdpZHRoOnZhcigtLW1heC13aWR0aCk7XG4gIGJvcmRlcjoxcHggc29saWQgJGdyZXk0OyBcbiAgYm9yZGVyLXJhZGl1czokYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb250YWluZXItYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjokZ3V0dGVyO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG4gIEBzdXBwb3J0cyBub3QgKCB3aWR0aDpjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcblxuICAgIC0td2lkdGggOiA2MHZ3O1xuICAgIG1heC13aWR0aDp2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1pbi13aWR0aDp2YXIoLS1taW4td2lkdGgpO1xuXG4gICAgLS1oZWlnaHQgOiA4MHZ3O1xuICAgIG1heC1oZWlnaHQ6dmFyKC0tbWF4LWhlaWdodCk7XG4gICAgbWluLWhlaWdodDp2YXIoLS1taW4taGVpZ2h0KTtcbiAgfVxuXG4gICY6ZW1wdHkge1xuICAgIHdpZHRoOmNhbGModmFyKC0tbWF4LXdpZHRoKSAvIDIpO1xuICAgIGhlaWdodDpjYWxjKHZhcigtLW1heC1oZWlnaHQpIC8gMik7XG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBsb2FkZXIoMjBweCk7XG4gICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgPiBidXR0b24uY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvcmRlcjotMTtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICB0b3A6aW5pdGlhbDtcbiAgICByaWdodDppbml0aWFsO1xuICAgIG1hcmdpbi10b3A6Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gICAgbWFyZ2luLWJvdHRvbTpjYWxjKCgtMSAqIHZhcigtLWNsb3NlLWJ1dHRvbi1zaXplKSkgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6Y2FsYygoLTEgKiB2YXIoLS1jbG9zZS1idXR0b24tc2l6ZSkpIC8gMik7XG4gIH1cblxufVxuXG5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHdpZHRoOmluaGVyaXQ7XG4gIGhlaWdodDppbmhlcml0O1xuICBtYXgtaGVpZ2h0OmluaGVyaXQ7XG4gIG1heC13aWR0aDppbmhlcml0O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6JGd1dHRlcjtcbiAgPiAqIHsgbWF4LXdpZHRoOjEwMCU7IH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJpbWFnZVwiXSAuaW1hZ2UgeyBcbiAgbWF4LWhlaWdodDpjYWxjKHZhcigtLW1heC1oZWlnaHQpIC0gI3skZ3V0dGVyNn0pO1xuICBib3JkZXI6bm9uZTtcbiAgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAjeyRndXR0ZXIzfSAtICN7JGd1dHRlcjR9KTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOmF1dG87XG4gIH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJkZWZhdWx0XCJdIHtcbiAgbW9kYWwtY29udGVudCA+IGltZyB7XG4gICAgJltzcmMqPVwiLnN2Z1wiXSB7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyB9XG4gIH1cbn1cblxubW9kYWwtd3JhcHBlcltkYXRhLXR5cGU9XCJ2aWRlb1wiXSB7XG4gIC0td3JhcHBlci1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7cmdiYShibGFjaywgMC45NSl9O1xuICBtb2RhbC1jb250YWluZXIgeyBcbiAgICBAaW5jbHVkZSB2aWRlby1jb250YWluZXIoKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgbW9kYWwtY29udGVudCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cblxuLm9wZW4taW4tbW9kYWwge1xuICBjdXJzb3I6cG9pbnRlcjtcbiAgdHJhbnNpdGlvbjpvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAmOmFmdGVyIHsgQGluY2x1ZGUgbG9hZGVyKDIwcHgsIHdoaXRlKTsgfVxuICAmLmxvYWRpbmcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICY6YWZ0ZXIgeyBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uKCk7IH1cbiAgfVxufVxuXG5pbWcub3Blbi1pbi1tb2RhbCwgLm9wZW4taW4tbW9kYWwgaW1nIHsgXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xuICAtbW96LXVzZXItZHJhZzogbm9uZTtcbiAgLW8tdXNlci1kcmFnOiBub25lO1xuICB1c2VyLWRyYWc6IG5vbmU7XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuOnJvb3Qge1xuICAtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0OiAxcmVtO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtZW50ZXI6IDAgdmFyKC0tZGlhbG9nLXRyYW5zbGF0ZS1vZmZzZXQpO1xuICAtLWRpYWxvZy10cmFuc2xhdGUtbGVhdmU6IDAgY2FsYygtMSAqIHZhcigtLWRpYWxvZy10cmFuc2xhdGUtb2Zmc2V0KSk7XG4gIC0tZGlhbG9nLXRyYW5zbGF0ZS1kdXJhdGlvbjogMC40cztcbiAgLS1kaWFsb2ctZ2FwOiAjeyRndXR0ZXIyfTtcbiAgLS1kaWFsb2ctY29udGVudC1tYXgtd2lkdGg6IDEwODBweDtcbiAgLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cjogd2hpdGU7XG4gIC0tZGlhbG9nLWJhY2tkcm9wLWNvbG91cjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG5kaWFsb2cubW9kYWwge1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiBpbml0aWFsO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2xhdGU6IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZW50ZXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3ZlcmxheSwgZGlzcGxheSwgdHJhbnNsYXRlLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kaWFsb2ctdHJhbnNsYXRlLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiA5OTk7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwZHZoO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG5cbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlcixcbiAgJiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICY6OmJhY2tkcm9wIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvdmVybGF5LCBkaXNwbGF5LCBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpYWxvZy1iYWNrZHJvcC1jb2xvdXIpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAuZGlhbG9nXFw6Y29udGVudHMge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGRpcmVjdGlvbjogbHRyO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgICBwYWRkaW5nOiB2YXIoLS1kaWFsb2ctZ2FwKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaWFsb2ctY29udGVudC1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgd2lkdGg6IG1pbigxMDAlLCB2YXIoLS1kaWFsb2ctY29udGVudC1tYXgtd2lkdGgpKTtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB9XG5cbiAgJltvcGVuXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2xhdGU6IHZhcigtLWRpYWxvZy10cmFuc2xhdGUtbGVhdmUpO1xuICAgIH1cblxuICAgICY6OmJhY2tkcm9wIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIEBzdGFydGluZy1zdHlsZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmRpYWxvZ1xcOmNsb3NlIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IGNhbGMoMC41ICogdmFyKC0tZGlhbG9nLWdhcCkpO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuXG4gIDpyb290OmhhcygmW29wZW5dKSBbZGF0YS1tb2RhbF0ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLy8gQHVzZSAnY3VzdG9tL2V4cGVydHMtaW4teW91ci1idXNpbmVzcyc7XG5cbi5jb250ZW50LWJsb2NrIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbi1jb3VudCksIDFmcik7XG5cbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYuYmxvd291dC50aGVtZWQgfiAmOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2VyMDtcbiAgfVxuICAmOm5vdCguYmxvd291dCkudGhlbWVkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICB9XG4gIH1cblxuICArIC5jb250ZW50LWJsb2NrIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgI3skZ3JleTR9KTtcbiAgfVxuXG4gICYuaG9yaXpvbnRhbC1ibG9ja3Mge1xuICAgIGJveC1zaGFkb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1ibG9jazogJHNwYWNlcjA7XG4gICAgJjpoYXMoLnRleHQgKyBidXR0b24tY29udGFpbmVyKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGdhcDogJGd1dHRlciAkZ3V0dGVyMDtcbiAgICAgIC50ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgICB9XG4gICAgICBidXR0b24tY29udGFpbmVyIC5idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgfVxuICAgICAgLnRleHQsXG4gICAgICBidXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgOmlzKGgyLCBoMywgaDQsIGg1LCBoNikge1xuICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gIH1cblxuICAmLmdyZXkge1xuICAgIGJhY2tncm91bmQ6ICRncmV5MztcbiAgfVxuICAmLnJlZCB7XG4gICAgYmFja2dyb3VuZDogJHJlZDtcbiAgfVxuICAmLmJsdWUge1xuICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICB9XG4gICYuYmxhY2sge1xuICAgIGJhY2tncm91bmQ6ICRibGFjaztcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAgIC0taGVhZGluZy1jb2xvdXI6IHdoaXRlO1xuICAgIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xuICB9XG5cbiAgJi5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDBweCwgMWZyKSk7XG4gICAgZ2FwOiAwO1xuICAgID4gKiB7XG4gICAgICBncmlkLWNvbHVtbjogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgJi5jb250YWluZXItaW5saW5lIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogJHNwYWNlcjtcbiAgICAgIH1cbiAgICAgICYuZWNvcG9zdGUtYmFubmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRzcGFjZXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGF0LXJvb3QgbWFpbjpoYXMoPiAuY29udGVudC1ibG9jay5zaWRlLWJ5LXNpZGUtY29tcG9uZW50cykge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgLnNpZGUtYnktc2lkZS1jb21wb25lbnRzIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAod2lkdGggPCA5MDBweCkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuLnRleHQge1xuXG4gIGEge1xuICAgIC0tZm9udC1jb2xvdXIgOiAjeyRwcmltYXJ5fTsgXG4gICAgQGluY2x1ZGUgaG92ZXIgeyAtLWZvbnQtY29sb3VyIDogI3skc2Vjb25kYXJ5fTsgfVxuICAgIGEuYnV0dG9uIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7fVxuICB9XG5cbiAgdWwgeyBAaW5jbHVkZSBsaXN0LXVsIH1cbiAgb2wgeyBAaW5jbHVkZSBsaXN0LW9sIH1cblxuICBwOmVtcHR5LCBwID4gYnIgeyBkaXNwbGF5Om5vbmU7IH1cblxuICA+ICoge1xuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206JGdhcDsgfVxuICAgIC8vICY6Zmlyc3QtY2hpbGQge1xuICAgIC8vICAgfiBoMiwgfiBoMywgfiBoNCwgfiBoNSwgfiBoNiB7XG4gICAgLy8gICAgIG1hcmdpbi10b3A6JHNwYWNlcjA7IFxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICB1bCwgb2wgeyBtYXJnaW4tdG9wOiRnYXA7IH1cbiAgfVxuXG4gIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgfVxuXG4gIC5oZWFkaW5nLWgzIHsgY29sb3I6JHNlY29uZGFyeTsgfVxuICBbc3R5bGUqPVwidGV4dC1hbGlnbjogY2VudGVyXCJdIHtcbiAgICB3aWR0aDoxMDAlOyBcbiAgICBtYXgtd2lkdGg6ODAwcHg7IFxuICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gIH1cblxuICAucXVvdGVzIHtcbiAgICBib3JkZXItbGVmdDo1cHggc29saWQgJGdyZXk0OyBcbiAgICBwYWRkaW5nLWxlZnQ6JGdhcDsgXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1xuICAgIHBhZGRpbmc6JGdhcDsgXG4gICAgaW1nIHsgXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgaHIgeyBtYXJnaW4tdG9wOiRzcGFjZXIwICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206JHNwYWNlcjAgIWltcG9ydGFudDsgfVxuXG4gIC5ub3RlIHtcbiAgICBtYXJnaW46JGdhcDIgMDsgXG4gIH1cblxufVxuXG4vLyBEYXJrIFRoZW1lID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZGFyayB7XG5cbiAgLnRleHQge1xuXG4gICAgY29sb3I6d2hpdGU7IFxuICAgIC0taGVhZGluZy1jb2xvdXI6d2hpdGU7IFxuXG4gICAgYSB7IFxuICAgICAgJi5idXR0b24geyAtLWZvbnQtY29sb3VyIDogd2hpdGU7IH1cbiAgICAgICY6bm90KC5idXR0b24pIHsgXG4gICAgICAgIC0tZm9udC1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuNyl9OyBcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgXG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDoycHg7IFxuICAgICAgICBAaW5jbHVkZSBob3ZlciB7IC0tZm9udC1jb2xvdXIgOiB3aGl0ZTsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC0taHItY29sb3VyIDogI3tyZ2JhKHdoaXRlLCAwLjMpfTsgXG4gIC0tbGlzdC1zdHlsZS1jb2xvdXIgOiB3aGl0ZTsgXG5cbiAgJi5yZWQge1xuICAgIC50ZXh0IHVsIHsgQGluY2x1ZGUgbGlzdC1zdHlsZSgkd2hpdGUsICRyZWQpIH1cbiAgfVxuXG4gICYuYmx1ZSB7XG4gICAgLnRleHQgdWwgeyBAaW5jbHVkZSBsaXN0LXN0eWxlKCR3aGl0ZSwgJGJsdWUpIH1cbiAgfVxuXG59XG5cbi5jb250YWlucy1zdmdze1xuXG4gIC50ZXh0e1xuICAgIGZpZ3VyZXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAwIHZhcigtLWdhcCk7XG4gICAgICBpbWd7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ2NvbGxlY3Rpb25zL2ZvbnQvY3JvcCcgYXMgZm9udDtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuXG5AbWl4aW4gc3R5bGUoJGZpbGwsICRzdHJva2U6IHdoaXRlLCAkaW1wOiBmYWxzZSkge1xuICA+IGxpOjpiZWZvcmUge1xuICAgIEBpZiAoJGltcCkge1xuICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nXCIgKyBjb2xvdXIuZW5jb2RlKFxuICAgICAgICAgICRmaWxsXG4gICAgICAgICkgKyBcIicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nXCIgKyBjb2xvdXIuZW5jb2RlKFxuICAgICAgICAgICRzdHJva2VcbiAgICAgICAgKSArIFwiJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKSAhaW1wb3J0YW50O1xuICAgIH0gQGVsc2Uge1xuICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM0UlM0NjaXJjbGUgZmlsbD0nXCIgKyBjb2xvdXIuZW5jb2RlKFxuICAgICAgICAgICRmaWxsXG4gICAgICAgICkgKyBcIicgY3g9JzgnIGN5PSc4JyByPSc4Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIHN0cm9rZT0nXCIgKyBjb2xvdXIuZW5jb2RlKFxuICAgICAgICAgICRzdHJva2VcbiAgICAgICAgKSArIFwiJyBzdHJva2Utd2lkdGg9JzEuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J00zLjUgOC40bDIuNyAyLjcgNi4zLTYuMycvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVW5vcmRlcmQgTGlzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHVsKCRsaXN0LXN0eWxlLWNvbG91cjogJHJlZCwgJGxpc3Qtc3R5bGUtYWNjZW50LWNvbG91cjogd2hpdGUpIHtcbiAgQGluY2x1ZGUgc3R5bGUoJGxpc3Qtc3R5bGUtY29sb3VyLCAkbGlzdC1zdHlsZS1hY2NlbnQtY29sb3VyKTtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWxpc3Qtc3R5bGUtc2l6ZSwgMWVtKSAqIDEuOCk7XG5cbiAgICAmICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogdmFyKC0tbGluZS1zdHlsZS1zcGFjaW5nLCAjeyRnYXB9KTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdG9wOiAwLjFlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogdmFyKC0tbGlzdC1zdHlsZS1zaXplLCAxZW0pO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1saXN0LXN0eWxlLXNpemUsIDFlbSk7XG4gICAgfVxuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbi8vIE9yZGVyZWQgTGlzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBvbCgpIHtcbiAgY291bnRlci1yZXNldDogY291bnRlcjtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1saXN0LXN0eWxlLW9mZnNldCwgMCk7XG5cbiAgICAmICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogJGdhcDA7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoY291bnRlcikgJy4nO1xuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGNvdW50ZXI7XG4gICAgICBjb2xvcjogdmFyKC0tbGlzdC1zdHlsZS1jb2xvdXIsIHZhcigtLXByaW1hcnkpKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgfVxuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG4iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxudGFibGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6JGdhcDsgXG4gIC8vIHdpZHRoOiBmaXQtY29udGVudDtcblxuICA+IGRpdiB7XG4gICAgLy8gQGF0LXJvb3QgdGFiYmVkLWNvbnRlbnQgJiB7IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZpZ2F0aW9uLWhlaWdodCwgMjAwcHgpKTsgfVxuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGRpc3BsYXk6Z3JpZDsgICAgIFxuICAgICY6bm90KDpob3Zlcikge3Njcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9XG5cbiAgICBAaW5jbHVkZSBzY3JvbGwtc3R5bGluZ1xuICB9XG4gIGgzIHsgbWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnQ7IH1cblxuICB0YWJsZS50YWJsZSB7XG4gICAgd2lkdGg6YXV0bzsgXG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG5cbiAgICAmLmZha2Uge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyBcbiAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXgpKTtcbiAgICAgIHdpZHRoOmNhbGMoMTAwJSAtIHZhcigtLXgpKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICAgICAgdGJvZHkgdHIgeyBcbiAgICAgICAgXG4gICAgICAgIHRkIHsgYmFja2dyb3VuZDp3aGl0ZTsgYm9yZGVyLXJpZ2h0OjFweCAkZ3JleTQgZGFzaGVkOyB9XG4gICAgICAgICY6bnRoLW9mLXR5cGUob2RkKSB0ZCB7IGJhY2tncm91bmQgOiAkZ3JleTM7IH1cbiAgICAgIH1cbiAgICAgIHRoZWFkIHRyIHRoOmZpcnN0LW9mLXR5cGUgeyBib3JkZXItcmlnaHQ6MXB4IHJnYmEod2hpdGUsIDAuMSkgZGFzaGVkOyB9XG4gICAgICB0aGVhZCB0ciB0aDpub3QoOmZpcnN0LW9mLXR5cGUpLCB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LW9mLXR5cGUpIHsgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgfVxuICB9XG4gIEBzdXBwb3J0cyAod3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scikge1xuICAgICYuZW5hYmxlLXZlcnRpY2FsLWhlYWRpbmdzIHRhYmxlLnRhYmxlIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3Qtb2YtdHlwZSkgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyO1xuICAgICAgbWF4LXdpZHRoOjUwcHg7IFxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gICRidXR0b24tc2l6ZSA6IDQwcHg7IFxuXG4gIG5hdiB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ3JpZC1yb3c6MTsgXG4gICAgZ3JpZC1jb2x1bW46MjsgXG4gICAgZGlzcGxheTpub25lO1xuICAgIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgKyBidXR0b24geyBtYXJnaW4tbGVmdDokZ2FwMDsgfVxuICAgIH1cbiAgICArIGRpdiB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMjtcbiAgICB9XG4gIH1cblxuICAmLnNjcm9sbGVkLXJpZ2h0IGJ1dHRvbi5uZXh0LCAmLnNjcm9sbGVkLWxlZnQgYnV0dG9uLnByZXZpb3VzIHsgXG4gICAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgfVxuXG4gICYuZW5hYmxlLXNjcm9sbC1idXR0b25zIG5hdiB7IFxuICAgIGRpc3BsYXk6ZmxleDtcbiAgfVxuXG4gIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICAtLWJ1dHRvbi1zaXplIDogI3skYnV0dG9uLXNpemV9OyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6MXB4IHNvbGlkICRncmV5NDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgei1pbmRleDoxO1xuICAgIHdpZHRoOiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjsgXG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGNvbG9yOiRncmV5MjtcbiAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGNvbG9yICR0cmFuc2l0aW9uLCBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaztcbiAgICAmLnByZXZpb3VzIHN2ZyB7IG1hcmdpbi1sZWZ0Oi0ycHg7IH1cbiAgICAmLm5leHQgc3ZnIHsgbWFyZ2luLWxlZnQ6MnB4OyB9XG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOmNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMi41KTtcbiAgICAgIGhlaWdodDpjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JGJsdWU7XG4gICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICBvcGFjaXR5OjEgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxufVxuXG50YWJsZS50YWJsZSB7XG5cbiAgd2lkdGg6MTAwJTsgXG4gIGJhY2tncm91bmQtY29sb3I6d2hpdGU7IFxuICBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHRoZWFkIHtcbiAgICB0ciB7XG4gICAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6JHByaW1hcnk7XG4gICAgICAgIHBhZGRpbmc6JGdhcDtcbiAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICB0Ym9keSB7XG4gICAgdHIgeyAgICAgXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6JGdhcDAgJGdhcDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmZpcnN0LW9mLXR5cGUgeyBtaW4td2lkdGg6MjAwcHg7fVxuICAgICAgICBzdHJvbmcgeyBmb250LXdlaWdodDogNzAwOyBjb2xvcjokZ3JleTI7IH1cbiAgICAgICAgYSB7IFxuICAgICAgICAgIGNvbG9yOiRibHVlOyBcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgXG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgY29sb3I6JHJlZDsgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN2ZyB7IFxuICAgICAgICAgIC0tZmlsbCA6ICN7JHByaW1hcnl9O1xuICAgICAgICAgICYuY3Jvc3MgeyAtLWZpbGwgOiAjeyRyZWR9OyB9XG4gICAgICAgICAgJi50aWNrIHsgLS1maWxsIDogI3skZ3JlZW59OyB9XG4gICAgICAgICAgd2lkdGg6MWVtOyBoZWlnaHQ6MWVtOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHsgXG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAkZ3JleTQ7IH1cbiAgICAvLyAmOm50aC1vZi10eXBlKG9kZCk6YmVmb3JlIHtcbiAgICAvLyAgIGNvbnRlbnQ6XCJcIjtcbiAgICAvLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvLyAgIGxlZnQ6MDsgcmlnaHQ6MDsgXG4gICAgLy8gICBoZWlnaHQ6MTAwJTsgXG4gICAgLy8gICB3aWR0aDoxMDAlOyBcbiAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6JGdyZXkzOyBcbiAgICAvLyB9XG4gICAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JGdyZXkzOyBcbiAgICB9XG4gIH1cblxuXG4gICYuYWx0ZXJuYXRpbmctcm93LWNvbG91cnMgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGJsYWNrLCAwLjEpOyB9XG4gICYubGFzdC1jb2x1bW4taXMtZ3JlZW4gdGJvZHkgdHIgdGQ6bGFzdC1vZi10eXBlIHsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7IFxuICAgIGNvbG9yOndoaXRlOyBcbiAgfVxuICAvLyAmLmxhc3QtY29sdW1uLWlzLWdyZWVuIHRoZWFkIHRyIHRoOmxhc3Qtb2YtdHlwZSB7IFxuICAvLyB9XG4gIC8vICYuYWx0ZXJuYXRpbmctcm93LWNvbG91cnMubGFzdC1jb2x1bW4taXMtZ3JlZW4gdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkgdGQ6bGFzdC1vZi10eXBlIHsgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRncmVlbjMsIDMpOyB9XG5cbn1cblxuLmRhcmsgdGFibGUtY29udGFpbmVyLCAuZGFyay5jb250ZW50LWJsb2NrIC50YWItY29udGVudCB7XG4gID4gaDMgeyBjb2xvcjp3aGl0ZTsgfVxuICA+IGRpdiB7IGJvcmRlci1yYWRpdXM6IGluaXRpYWw7IH1cbiAgdGFibGUudGFibGUge1xuICAgIGNvbG9yOndoaXRlOyBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOmluaXRpYWw7XG4gICAgdHIgdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKHdoaXRlLCAwLjE1KTtcbiAgICB9XG4gICAgdHIge1xuICAgICAgYm9yZGVyOm5vbmUgIWltcG9ydGFudDtcbiAgICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSh3aGl0ZSwgMC4xNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AdXNlICdfbW9kdWxlcycgYXMgKjtcblxuZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyAgXG4gIGJvcmRlcjoxcHggc29saWQgJGdyZXkzO1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBpbWcgeyBcbiAgICAtLWltYWdlLWhlaWdodC1zaXplIDogYXV0bzsgXG4gICAgcG9zaXRpb246cmVsYXRpdmU7IFxuICB9XG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTpmb250LXNpemUoMTIpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwYWRkaW5nOiRnYXAwICRnYXA7XG4gIH1cbiAgJi5uby1jYXB0aW9uIHtcbiAgICBib3JkZXI6bm9uZTsgXG4gIH1cbiAgJi5jcm9wLWltYWdlIHtcbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIGJvdHRvbTowOyBcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6MDsgXG4gICAgICB3aWR0aDoxMDAlOyBcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW87XG4gICAgLS1hc3BlY3QtcmF0aW8gOiBpbmhlcml0OyBcbiAgICBpbWcgeyAtLWltYWdlLWhlaWdodC1zaXplIDogMTAwJTsgfVxuICB9XG59XG5cbi5pbWFnZS5sb2FkLWluLXZpZXcgaW1nIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzICRlYXNlLWluLW91dDtcbiAgJjpub3QoW3NyY10pIHsgb3BhY2l0eTowOyB9XG59XG5cbmltYWdlcy1jb250YWluZXIge1xuICB3aWR0aDoxMDAlOyBcbiAgZGlzcGxheTpncmlkOyBcbiAgZ3JpZC1nYXA6JGd1dHRlcjA7IFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heChjYWxjKHZhcigtLW1haW4tbWF4LXdpZHRoKSAvICh2YXIoLS1pbWFnZXMtcGVyLXJvdykgKyAxKSksIDFmcikpO1xuICAmLmNyb3AtaW1hZ2VzIHtcbiAgICAuaW1hZ2UgeyBcbiAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygnNC8zJyk7XG4gICAgICAtLWFzcGVjdC1yYXRpbyA6IGluaGVyaXQ7IFxuICAgICAgaW1nIHtcbiAgICAgICAgLS1pbWFnZS1oZWlnaHQtc2l6ZSA6IDEwMCU7XG4gICAgICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7IHBvc2l0aW9uOmFic29sdXRlOyB9XG4gICAgICB9XG4gICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgYm90dG9tOjA7IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6MDsgXG4gICAgICAgIHdpZHRoOjEwMCU7IFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuQG1peGluIGFjY29yZGlvbigpIHtcblxuICAmLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nIHtcblxuICAgIGdyaWQtZ2FwOiRnYXAgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OmdyaWQ7XG5cbiAgICA+IG5hdiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIGRldGFpbHMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICZbaGlkZGVuXSB7IGRpc3BsYXk6YmxvY2s7IH1cbiAgICAgIHN1bW1hcnkge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICB9XG4gICAgICAudGFiLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiRzcGFjZXIwICRndXR0ZXIgIWltcG9ydGFudDsgXG4gICAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICRncmV5NDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICRncmV5NDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIG92ZXJmbG93OmhpZGRlbjsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6d2hpdGU7IFxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICA+ICoge1xuICAgICAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICBvcGFjaXR5OjA7IFxuICAgICAgICB9XG4gICAgICAgIGZpZ3VyZS5pbWFnZSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJltvcGVuXSB7XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgIC0tYmFja2dyb3VuZC1jb2xvdXI6I3skYmx1ZS1kYXJrfTtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50YWItY29udGVudCA+ICoge1xuICAgICAgICAgIC8vIC0tdHJhbnNpdGlvbi1kZWxheSA6IDFzOyBcbiAgICAgICAgICBvcGFjaXR5OjE7IFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnRhYmJlZC1jb250ZW50IHtcblxuICBkaXNwbGF5OmZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlOyAvLyBUSElTIE1JR0hUIEJSRUFLIFRISU5HUy4gTkVFRFMgQ0hFQ0tJTkchXG5cbiAgPiBuYXYge1xuICAgIGJ1dHRvbiB7XG4gICAgICB0cmFuc2l0aW9uOiR0cmFuc2l0aW9uO1xuICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7IHBvaW50ZXItZXZlbnRzOiBub25lO31cbiAgICAgIHN2ZyB7IHdpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyB9XG5cbiAgICB9XG4gIH1cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTpub25lOyBcblxuICAgICY6Om1hcmtlciB7IGRpc3BsYXk6bm9uZTsgfVxuICAgIC0tZm9udC1jb2xvdXIgOiAje3doaXRlfTtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyIDogI3skcHJpbWFyeX07XG5cbiAgICAmLCAuaGVhZGluZyB7XG4gICAgICBjb2xvcjp2YXIoLS1mb250LWNvbG91cik7XG4gICAgICBAaW5jbHVkZSBmb250LWxhdG8oYm9sZCk7XG4gICAgICBAaW5jbHVkZSBoZWFkaW5nLWg0KCk7XG4gICAgfVxuXG4gICAgLmhlYWRpbmcgeyBtYXJnaW4tYm90dG9tOjA7IH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuXG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmctdG9wOiRnYXA7IFxuICAgIHBhZGRpbmctYm90dG9tOiRnYXA7ICAgXG4gICAgcGFkZGluZy1sZWZ0OiRndXR0ZXI7IFxuICAgIHBhZGRpbmctcmlnaHQ6JGd1dHRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1czsgIFxuICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGJvcmRlci1yYWRpdXMgJHRyYW5zaXRpb247XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBzdmcge1xuICAgICAgaGVpZ2h0OjhweDsgXG4gICAgICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiRndXR0ZXI7XG4gICAgICB0b3A6Y2FsYyg1MCUgLSA0cHgpO1xuICAgIH1cblxuICB9XG5cbiAgc3VtbWFyeTpob3ZlciwgZGV0YWlsc1tvcGVuXSBzdW1tYXJ5OmhvdmVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiN7JGJsdWUtbGlnaHR9O1xuICB9XG5cbiAgLnRhYi1jb250ZW50IHtcbiAgICAvLyBkaXNwbGF5Om5vbmU7IFxuICAgIGdyaWQtZ2FwOiRzcGFjZXIwIDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgXG4gICAgZ3JpZC1hdXRvLXJvd3M6IG1pbi1jb250ZW50O1xuICAgICY6bm90KFtoaWRkZW5dKSB7XG4gICAgICBkaXNwbGF5OmdyaWQ7XG4gICAgfVxuICAgIC5oZWFkaW5nLWg0IHsgQGluY2x1ZGUgaGVhZGluZy1oMygpOyBjb2xvcjokcmVkOyB9XG4gICAgLmhlYWRpbmctaDUgeyBAaW5jbHVkZSBoZWFkaW5nLWg0KCk7IH1cbiAgICAudGFibGUtY29udGFpbmVye1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgJi5oYWx2ZXN7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgICAgICBtYXJnaW46IDAgNSUgMCAwO1xuICAgICAgICAmOm50aC1vZi10eXBlKDJuKXtcbiAgICAgICAgICBtYXJnaW46IDAgMCAwIDUlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnRoaXJkc3tcbiAgICAgICAgbWF4LXdpZHRoOiAzMCU7XG4gICAgICAgICY6bnRoLW9mLXR5cGUoM24gLSAxKXtcbiAgICAgICAgICBtYXJnaW46IDAgNSU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0YWJsZS1jb250YWluZXIge1xuICAgIHdpZHRoOjEwMCU7XG4gIH1cblxuICAmOm5vdChbZGF0YS1zdHlsZT1cIjNcIl0pLmluLXZpZXcgPiBuYXYgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTMwMHB4KSwgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgICAmOm5vdCgubWFya2V0cykge1xuICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uKClcbiAgICB9XG4gIH1cbiAgJltkYXRhLXN0eWxlPVwiNFwiXSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uKClcbiAgfVxuICBAaW5jbHVkZSBicmVhay1pbigxMDAwcHgpIHtcbiAgICAmLm1hcmtldHMgeyBAaW5jbHVkZSBhY2NvcmRpb24oKSB9XG4gIH1cblxufVxuXG4vLyBUYWIgU3R5bGUgT25lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTGVmdCBoYW5kIHNpZGViYXIgd2l0aCB2ZXJ0aWNhbGx5IGFsaWduZWQgYnV0dG9ucyBhbmQgdGhlIGNvbnRlbnQgb24gdGhlIHJpZ2h0XG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMVwiXSB7XG4gIC0tc2lkZS1uYXYtd2lkdGggOiAyMDBweDtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLXNpZGUtbmF2LXdpZHRoKSAxZnI7XG4gIGdyaWQtZ2FwOiRndXR0ZXI7XG4gID4gbmF2IHtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgdG9wOmNhbGModmFyKC0tYnJlYWRjcnVtYi1oZWlnaHQpICsgdmFyKC0tYW5jaG9ycy1oZWlnaHQpIC0gI3skZ3V0dGVyfSk7XG5cbiAgICBidXR0b24ge1xuICAgICAgcGFkZGluZzokZ2FwIDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBzdmcgeyBtYXJnaW4tbGVmdDokZ2FwOyB9XG4gICAgICArIGJ1dHRvbiB7IFxuICAgICAgICBib3JkZXItdG9wOjFweCBzb2xpZCAkZ3JleTQ7IFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vIFRhYiBTdHlsZSBUd28gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdHlsaXNlZCBhbmQgY2VudHJlZCB0YWJzIG9uIHRoZSB0b3Agd2l0aCB0aGUgY29udGVudCB1bmRlcm5lYXRoXG50YWJiZWQtY29udGVudFtkYXRhLXN0eWxlPVwiMlwiXSB7XG4gID4gbmF2IHtcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6JGdhcDIgJGd1dHRlcjI7IFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICBtYXJnaW4tbGVmdDokZ2FwMDsgXG4gICAgICBtYXJnaW4tcmlnaHQ6JGdhcDA7IFxuICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGNvbG9yOiRwcmltYXJ5O1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIHN2ZyB7IGRpc3BsYXk6bm9uZTsgfVxuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBjb2xvcjokc2Vjb25kYXJ5O1xuICAgICAgfVxuICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5MztcbiAgICAgICAgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGFiLWNvbnRlbnQgeyBcbiAgICBwYWRkaW5nOiRzcGFjZXIgJGd1dHRlcjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGdyZXkzLCB3aGl0ZSk7XG4gIH1cbiAgJi5pbnZpZXcgbmF2IGJ1dHRvblthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXkzO1xuICAgIGNvbG9yOiRzZWNvbmRhcnk7XG4gIH1cbiAgJjpub3QoLmFsbG93LWJyZWFrcG9pbnQtcmVzdHlsaW5nKVtkYXRhLWNvdW50PVwiMlwiXSB7XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsJykge1xuICAgICAgW3JvbGU9XCJ0YWJcIl0geyB3aWR0aDo1MCU7IHBhZGRpbmc6JGdhcDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUYWIgU3R5bGUgVGhyZWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQaWxsLWxpa2UgYnV0dG9ucyBiYXIgYXQgdGhlIHRvcCB3aXRoIHRoZSBjb250ZW50IHVuZGVybmVhdGhcbnRhYmJlZC1jb250ZW50W2RhdGEtc3R5bGU9XCIzXCJdIHtcbiAgPiBuYXYge1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiRnYXA7IFxuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JleTQ7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBidXR0b24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOm5vbmUgIWltcG9ydGFudDsgXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOmZvbnQtc2l6ZSgxNCk7XG4gICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgei1pbmRleDoxO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBzdmcgeyBkaXNwbGF5Om5vbmU7IH1cbiAgICAgIHBhZGRpbmc6JGdhcCAkZ3V0dGVyOyBcbiAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICB9XG5cbiAgICAgICY6bm90KFthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSkge1xuICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgY29sb3I6JHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmOm5vdCguaGFzLW1hcmtlcikgYnV0dG9uW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JGJsdWU7IFxuICAgIH1cbiAgICBtYXJrIHtcbiAgICAgIEBpbmNsdWRlIG1hcmstcmVzZXQoKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDowOyBsZWZ0OjA7IFxuICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICYuYWN0aXZlIHsgXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC50YWItY29udGVudCB7IFxuICAgIHBhZGRpbmc6JGd1dHRlciAwO1xuICB9IFxufSIsIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4uZXhwZXJ0cy1pbi15b3VyLWJ1c2luZXNzIHtcbiAgLS1zZWNvbmRhcnk6ICN7JHJlZH07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcblxuICBAYXQtcm9vdCBzaWRlLWJhciAmIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAuY29udGFpbmVyLWlubGluZSB7XG4gICAgICBwYWRkaW5nOiAkZ3V0dGVyMiAhaW1wb3J0YW50O1xuICAgICAgPiAudGV4dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYudGhlbWVkIC5jb250YWluZXItaW5saW5lIHtcbiAgICBwYWRkaW5nOiAkZ3V0dGVyICRndXR0ZXIgJGd1dHRlciAkZ3V0dGVyMjtcbiAgfVxuICAudGV4dCB7XG4gICAgcGFkZGluZy1ibG9jay1zdGFydDogJGd1dHRlcjtcbiAgICB1bCB7XG4gICAgICBAaW5jbHVkZSBsaXN0LXN0eWxlKCRyZWQsIHdoaXRlLCB0cnVlKTtcbiAgICB9XG4gICAgPiBoMiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZ3V0dGVyO1xuICAgIH1cbiAgfVxuICBidXR0b24tY29udGFpbmVyIHtcbiAgICBnYXA6ICRnYXA7XG4gICAgLmJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgZmlndXJlLmltYWdlLnN0YXRpYyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDI7XG4gICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICB9XG4gIC5jb250YWluZXItaW5saW5lIHtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6ICRndXR0ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgPiAqOm5vdChmaWd1cmUpIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIH1cbiAgICBAY29udGFpbmVyICh3aWR0aCA8IDUwMHB4KSB7XG4gICAgICBmaWd1cmUuaW1hZ2Uuc3RhdGljIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19 */