@charset "UTF-8";
/* Self hosted fonts */
@font-face {
  font-family: "Campton";
  src: url("../fonts/campton-light-webfont.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "Campton";
  src: url("../fonts/campton-semibold-webfont.woff2") format("woff2");
  font-weight: bold;
  font-display: swap;
}
/*  Structure */
:root {
  --scroll-padding: 65px;
  --size-outer-container: 100em;
  --size-container-max: 95vw;
  --size-container-default: 50em;
  --size-container: var(--size-container-default);
  --h-header-mobile: 50px;
  --c-white: hsl(0, 0%, 100%);
  --c-text: hsl(0, 0%, 7%);
  --c-primary-h: 0;
  --c-primary-s: 0%;
  --c-primary-l: 0%;
  --c-secondary-h: 0;
  --c-secondary-s: 0%;
  --c-secondary-l: 0%;
  --c-primary: hsl(
      var(--c-primary-h),
      var(--c-primary-s),
      var(--c-primary-l)
  );
  --c-secondary: hsl(
      var(--c-secondary-h),
      var(--c-secondary-s),
      var(--c-secondary-l)
  );
  --bd-input: 1px solid #ccc;
  --c-accent: var(--c-action);
  --c-caret: var(--c-action);
  --bg-hr: #ccc;
  --fz-base: 16px;
  --fz-base-mobile: 16px;
  --m-body: 0;
  --p-body: 0;
  --bg-selection: #ccc;
  --c-selection: #fcfcfc;
  --bg-header: #16232e;
  --bg-body: #fff;
  --icon-fill: #ccc;
  --bgc-scrollbar: #ccc;
  --td-menu-transform: 500ms;
  --td-menu-box-shadow: 300ms;
  --ff-text: "Campton";
  --ff-headings: "Campton";
  --c-action-h: 50;
  --c-action-s: 100%;
  --c-action-l: 50%;
  --c-action: hsl(var(--c-action-h), var(--c-action-s), var(--c-action-l));
  /**
      scale 1340 at 16px
      320px at 12px;
   */
  --step--2: clamp(0.61rem, calc(0.6rem + 0.05vw), 0.64rem);
  --step--1: clamp(0.73rem, calc(0.71rem + 0.11vw), 0.8rem);
  --step-0: clamp(0.88rem, calc(0.84rem + 0.2vw), 1rem);
  --step-1: clamp(1.05rem, calc(0.99rem + 0.31vw), 1.25rem);
  --step-2: clamp(1.26rem, calc(1.17rem + 0.47vw), 1.56rem);
  --step-3: clamp(1.51rem, calc(1.37rem + 0.69vw), 1.95rem);
  --step-4: clamp(1.81rem, calc(1.62rem + 0.98vw), 2.44rem);
  --step-5: clamp(2.18rem, calc(1.9rem + 1.37vw), 3.05rem);
  --fz-h1: var(--step-5);
  --fz-h2: var(--step-4);
  --fz-h3: var(--step-3);
  --fz-h4: var(--step-2);
  --fz-h5: var(--step-1);
  --fz-small: var(--step--1);
  --space-3xs: clamp(0.25rem, calc(0.25rem + 0vw), 0.25rem);
  --space-2xs: clamp(0.44rem, calc(0.42rem + 0.1vw), 0.5rem);
  --space-xs: clamp(0.69rem, calc(0.67rem + 0.1vw), 0.75rem);
  --space-s: clamp(0.88rem, calc(0.84rem + 0.2vw), 1rem);
  --space-m: clamp(1.31rem, calc(1.25rem + 0.29vw), 1.5rem);
  --space-l: clamp(1.75rem, calc(1.67rem + 0.39vw), 2rem);
  --space-xl: clamp(2.63rem, calc(2.51rem + 0.59vw), 3rem);
  --space-2xl: clamp(3.5rem, calc(3.34rem + 0.78vw), 4rem);
  --space-3xl: clamp(5.25rem, calc(5.01rem + 1.18vw), 6rem);
  /* One-up pairs */
  --space-3xs-2xs: clamp(0.25rem, calc(0.17rem + 0.39vw), 0.5rem);
  --space-2xs-xs: clamp(0.44rem, calc(0.34rem + 0.49vw), 0.75rem);
  --space-xs-s: clamp(0.69rem, calc(0.59rem + 0.49vw), 1rem);
  --space-s-m: clamp(0.88rem, calc(0.68rem + 0.98vw), 1.5rem);
  --space-m-l: clamp(1.31rem, calc(1.1rem + 1.08vw), 2rem);
  --space-l-xl: clamp(1.75rem, calc(1.36rem + 1.96vw), 3rem);
  --space-xl-2xl: clamp(2.63rem, calc(2.19rem + 2.16vw), 4rem);
  --space-2xl-3xl: clamp(3.5rem, calc(2.72rem + 3.92vw), 6rem);
  /* Custom pairs */
  --space-s-l: clamp(0.88rem, calc(0.52rem + 1.76vw), 2rem);
  --gap: var(--space-m);
  --w-widget: 15rem;
  --bxsh-base: 0 0 20px hsl(0 0% 0% / 0.1);
}

@layer warnings {
  figure[aria-label]:not(:has(figcaption)) {
    outline: var(--warning-outline);
    --warning-figure-label-not-visible: "The labeling method used is not visible and only available to assistive software";
  }
  figure[aria-label] figcaption {
    outline: var(--warning-outline);
    --warning-overridden-figcaption: "The figure has a figcaption that is overridden by an ARIA label";
  }
}
@layer errors {
  figcaption:not(figure > figcaption) {
    outline: var(--error-outline);
    --error-figcaption-not-child: "The figcaption is not a direct child of a figure";
  }
  figcaption:empty {
    padding: 0.5ex; /* give it some purchase */
    outline: var(--error-outline);
    --error-figcaption-empty: "The figcaption is empty";
  }
  figure:not(:is([aria-label], [aria-labelledby])):not(:has(figcaption)) {
    outline: var(--error-outline);
    --error-no-figure-label: "The figure is not labeled by any applicable method";
  }
  figure > figcaption ~ figcaption {
    outline: var(--error-outline);
    --error-multiple-figcaptions: "There are two figcaptions for one figure";
  }
}
body :not(:is(header, nav, main, aside, footer)):not(:is(header, nav, main, aside, footer) *):not(.skip-link) {
  outline: var(--error-outline);
  --error-content-outside-landmark: "You have some content that is not inside a landmark (header, nav, main, aside, or footer)";
}

ol[class*=breadcrumb]:not(:is(nav[aria-label], nav[aria-labelledby]) ol) {
  outline: var(--error-outline);
  --error-undiscoverable-breadcrumbs: "It looks like you have provided breadcrumb navigation outside a labeled `<nav>` landmark";
}

header nav:has(ul > ul) {
  outline: var(--warning-outline);
  --warning-nested-navigation: "You appear to be using tiered/nested navigation in your header. This can be difficult to traverse. Index pages with tables of content are preferable.";
}

:is(div > div > div > div > *) {
  outline: var(--warning-outline);
  --warning-divitis: "There\2019s a whole lot of nesting going on here. Is it needed to achieve the layout? (it is not)";
}

a:not([href]) {
  outline: var(--error-outline);
  --error: "The link does not have an href. Did you mean to use a <button>?";
}

a[href^=javascript] {
  outline: var(--error-outline);
  --error-javascript-href: "The href does not appear to include a location. Did you mean to use a <button>?";
}

a[disabled] {
  outline: var(--error-outline);
  --error-anchor-disabled: "The disabled property is not valid on anchors (links). Did you mean to use a <button>?";
}

label:not(:has(:is(input, output, textarea, select))):not([for]) {
  outline: var(--error-outline);
  --error-unassociated-label: "The <label> neither uses the `for` attribute nor wraps an applicable form element" ;
}

input:not(form input) {
  outline: var(--warning-outline);
  --error-input-orphan: "The input is outside a <form> element. Users may benefit from <form> semantics and behaviors." ;
}

@keyframes chevron-in {
  100% {
    clip-path: circle(111.6% at 0 50%);
  }
}
@keyframes chevron-out {
  0% {
    clip-path: circle(111.6% at 0 50%);
  }
  100% {
    clip-path: circle(0 at 90% 95%);
  }
}
@keyframes chevron-transition {
  0% {
    clip-path: polygon(0% 0%, 100% 0px, 100% 100%, 0% 100%);
  }
  50% {
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 0% 100%);
  }
  100% {
    clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}
@keyframes start {
  from {
    transform: translateX(-40%);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes write {
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes fillIn {
  to {
    fill: currentColor;
  }
}
.transition-fade {
  transition: 1s;
  opacity: 1;
}

html.is-animating .transition-fade {
  opacity: 0;
}

.split .letter {
  opacity: 0;
}

.fade-in {
  opacity: 0;
  transition: opacity 2s ease-out;
}
.in-view .fade-in {
  opacity: 1;
}

.fade-in-zoom {
  transform: scale(1.3);
  opacity: 0;
  transition: opacity 2s ease-out, transform 800ms ease-out;
}
.in-view .fade-in-zoom, .fade-in-zoom.in-view {
  opacity: 1;
  transform: scale(1);
}

@keyframes zoom {
  from {
    transform: scale(1);
    opacity: 1;
    border-width: 3px;
  }
  to {
    transform: scale(1.5);
    opacity: 0;
    border-width: 0;
  }
}
.wrapper {
  width: min(var(--size-container), var(--size-container-max));
  margin-inline: auto;
}

textarea, select, input[type=text], input[type=password], input[type=phone], input[type=tel], input[type=number], input[type=search], input[type=url], input[type=date], input[type=month], input[type=week], input[type=datetime], input[type=datetime-local], input[type=email] {
  padding: 0.5em;
  border: var(--bd-input, #ccc);
  transition: all 1s;
  border-radius: 0;
  display: block;
  width: 100%;
}
textarea:focus, select:focus, input[type=text]:focus, input[type=password]:focus, input[type=phone]:focus, input[type=tel]:focus, input[type=number]:focus, input[type=search]:focus, input[type=url]:focus, input[type=date]:focus, input[type=month]:focus, input[type=week]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=email]:focus, textarea:active, select:active, input[type=text]:active, input[type=password]:active, input[type=phone]:active, input[type=tel]:active, input[type=number]:active, input[type=search]:active, input[type=url]:active, input[type=date]:active, input[type=month]:active, input[type=week]:active, input[type=datetime]:active, input[type=datetime-local]:active, input[type=email]:active {
  border: var(--bd-input-active);
}

.button {
  display: inline-block;
  position: relative;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}

.wrapper-grid {
  --padding-inline: var(--space-s, 1rem);
  --content-max-width: var(--size-container, 80em);
  --breakout-max-width: var(--size-container-max, 100em);
  --breakout-size: calc(
      var(--breakout-max-width) / 2 - var(--content-max-width) / 2
  );
  display: grid;
  grid-template-columns: [full-width-start] minmax(var(--padding-inline), 1fr) [breakout-start] minmax(0, var(--breakout-size)) [content-start] min(100% - var(--padding-inline) * 2, var(--content-max-width)) [content-end] minmax(0, var(--breakout-size)) [breakout-end] minmax(var(--padding-inline), 1fr) [full-width-end];
}

/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bold;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

* {
  box-sizing: border-box;
}

*::-moz-selection {
  background: var(--bg-selection, #fcfcfc);
  color: var(--c-selection, #fff);
}

*::selection {
  background: var(--bg-selection, #fcfcfc);
  color: var(--c-selection, #fff);
}

::-webkit-scrollbar {
  width: 0.6rem;
  border-left: 1px solid;
}

::-webkit-scrollbar-thumb {
  background: var(--bgc-scrollbar);
}

html {
  min-height: 100%;
  scroll-padding-top: var(--scroll-padding, 65px);
  hanging-punctuation: first last;
  scrollbar-gutter: stable;
}

html,
body {
  scrollbar-color: var(--bgc-scrollbar) var(--bg-body);
  scrollbar-width: thin;
}

body {
  background-color: var(--bg-body);
  font-family: var(--ff-text);
  color: var(--c-text);
  padding: var(--p-body, 0);
  margin: var(--m-body, 0);
  font-size: var(--fz-base);
}
body.toggled {
  overflow: hidden;
}

.grid-responsive {
  display: grid;
  grid-template-columns: repeat(var(--n, 3), 1fr);
  gap: 10px;
}
@media (width < 800px) {
  .grid-responsive {
    --n: 2;
  }
}
@media (width < 400px) {
  .grid-responsive {
    --n: 1;
  }
}

a:not([class]) {
  text-decoration: none;
  transition: color 0.4s;
  color: currentColor;
}
h1 a:not([class]), h2 a:not([class]), h3 a:not([class]), h4 a:not([class]), h5 a:not([class]), h6 a:not([class]) {
  text-decoration: none;
}
a:not([class]):hover {
  color: hsl(var(--c-action-h), var(--c-action-s), var(--c-action-l));
  --icon-fill: currentColor;
  --icon-stroke: currentColor;
}

a {
  color: var(--c-link);
  text-decoration: none;
}

a:hover {
  color: var(--c-link-hover);
}

figure {
  margin: 0;
  padding: 0;
}

hr {
  background-color: var(--bg-hr, #ccc);
  border: none;
  height: 1px;
  display: block;
  flex-basis: 100%;
}

.core_loader-overlay {
  background-color: #fff;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  z-index: 99;
  opacity: 0;
  transition: opacity 1s 0.3s;
  transform-origin: center bottom;
  display: flex;
  justify-content: center;
  align-items: center;
  transition-delay: 1s;
  z-index: -1;
}
.core_loader-overlay svg path {
  fill: inherit;
}
.core_loader-overlay use {
  fill: var(--brand-blue);
}
.core_loader-overlay.-removed {
  transition-delay: 0s;
  opacity: 0;
  z-index: -1;
}
.core_loader-overlay.-show {
  pointer-events: auto;
  opacity: 1;
  transition-duration: 0.5s;
}
.core_loader-overlay.-front {
  z-index: 9999;
}
.core_loader-overlay.-front .loader_image svg {
  transform: scale(1);
  opacity: 1;
}
.core_loader-overlay .loader_image {
  max-width: 500px;
  overflow: hidden;
  height: auto;
}
.core_loader-overlay .loader_image svg {
  width: 100%;
  transition: opacity 0.25s, transform 1s;
  transform: scale(0);
  opacity: 0;
  will-change: opacity, transform;
}
.core_loader-overlay .loader_image path {
  will-change: stroke-dasharray, stroke-dashoffset;
  stroke: #fff;
  stroke-linecap: square;
  fill: var(--brand-blue);
  stroke-width: 0;
  animation: write 2.5s ease-out, fillIn 1s cubic-bezier(0, 0.5, 1, 0.5);
  animation-delay: 1s, 3s;
  animation-iteration-count: 1;
  animation-direction: alternate;
  color: #fff;
  animation-fill-mode: both;
  animation-play-state: paused;
}
.core_loader-overlay .loader_image path.orange {
  color: #E95E1D;
  stroke: currentColor;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
  line-height: 1.1;
  color: var(--c-headings, currentColor);
  font-family: var(--ff-headings);
  font-weight: 800;
}

h1 {
  font-size: var(--fz-h1);
  line-height: var(--lh-h1, 1.1);
}

h2 {
  font-size: var(--fz-h2);
  line-height: var(--lh-h2, 1.1);
}

h3 {
  font-size: var(--fz-h3);
  line-height: var(--lh-h3, 1.1);
}

h4 {
  font-size: var(--fz-h4);
  line-height: var(--lh-h4, 1.1);
}

h5 {
  font-size: var(--fz-h5);
  line-height: var(--lh-h5, 1.1);
}

h6 {
  font-size: var(--fz-h6);
  line-height: var(--lh-h6, 1.1);
}

small {
  font-size: var(--fz-small);
}

p,
ul,
ol,
dl,
blockquote,
figure,
table,
hr {
  text-wrap: pretty;
}

.flow > * + * {
  margin-top: var(--flow-space, 1.5em);
}

ul[class],
ol[class] {
  margin: var(--_m, 0);
  padding: var(--_p, 0);
  list-style: none;
}
ul:empty,
ol:empty {
  display: none;
}

.text-columns {
  -moz-columns: 200px 2;
       columns: 200px 2;
  -moz-column-gap: 1em;
       column-gap: 1em;
  -moz-column-rule: 1px dashed var(--c-hr);
       column-rule: 1px dashed var(--c-hr);
}

@counter-style emoji-list {
  system: cyclic;
  symbols: 🍎 🍊 🍋 🍌 🍉 🍇 🍓 🍈;
  suffix: " ";
}
ol.emoji-list {
  list-style: emoji-list;
}

details {
  position: relative;
  max-inline-size: 60ch;
}

summary {
  position: relative;
  cursor: pointer;
}

details::details-content {
  display: block;
  block-size: 0;
  overflow: hidden;
  transition-property: block-size, content-visibility;
  transition-duration: 0.5s;
  transition-behavior: allow-discrete;
}

details[open]::details-content {
  block-size: auto;
}

summary::marker {
  content: "\BB";
  content: "";
}

summary::before {
  content: "\BB";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: -0.05rem;
  transition: rotate 0.2s;
  left: -1rem;
}

details[open] summary::before {
  rotate: 90deg;
  inset-block-start: 0.05rem;
}

button,
input,
select,
textarea {
  font: inherit;
  hanging-punctuation: none;
}
button::-moz-placeholder, input::-moz-placeholder, select::-moz-placeholder, textarea::-moz-placeholder {
  color: var(--c-muted);
}
button::placeholder,
input::placeholder,
select::placeholder,
textarea::placeholder {
  color: var(--c-muted);
}

label {
  font-weight: bold;
  color: var(--c-label);
}
label.legal {
  text-transform: none;
  font-size: var(--fz-small);
  font-weight: normal;
  display: inline-block;
  color: var(--c-muted, #ccc);
}
label.legal a {
  font-size: inherit;
  font-weight: bold;
}

input[type=text], input[type=password], input[type=phone], input[type=tel], input[type=number], input[type=search], input[type=url], input[type=date], input[type=month], input[type=week], input[type=datetime], input[type=datetime-local], input[type=email] {
  caret-color: var(--c-caret);
}
input[type=color] {
  background-color: transparent;
  border: none;
  padding: 0;
}

input {
  accent-color: var(--c-caret);
}

input:not(:-moz-placeholder-shown):invalid {
  outline-color: var(--c-error, #f00);
}

input:not(:placeholder-shown):invalid,
input:user-invalid {
  outline-color: var(--c-error, #f00);
}

input:not(:-moz-placeholder-shown):valid {
  outline-color: var(--c-success, var(--c-action));
}

input:not(:placeholder-shown):valid,
input:user-valid {
  outline-color: var(--c-success, var(--c-action));
}

input:focus:invalid {
  outline-color: var(--c-warning, orange);
}

.button,
[type=submit],
[type=button],
[type=reset] {
  background-color: transparent;
  border: 1px solid var(--bg-header);
  background-color: hsl(var(--bg-button-h, 0), var(--bg-button-s, 0%), var(--bg-button-l, 0%));
  background-color: var(--bg-header);
  color: hsl(var(--c-button-h, 0), var(--c-button-s, 0%), var(--c-button-l, 100%));
  padding: var(--space-s) var(--space-l);
  transition: all 300ms;
}
.button:hover, .button:active,
[type=submit]:hover,
[type=submit]:active,
[type=button]:hover,
[type=button]:active,
[type=reset]:hover,
[type=reset]:active {
  background-color: #fff;
  color: var(--bg-header);
}
.button:disabled,
[type=submit]:disabled,
[type=button]:disabled,
[type=reset]:disabled {
  color: var(--c-disabled);
}

@media screen and (min-width: 760px) {
  .menu-toggle {
    display: none;
  }
}
.menu-toggle path {
  transition: all var(--transition-speed, 0.3s) ease-in-out;
  transform-origin: center;
}
.menu-open .menu-toggle path:first-child {
  opacity: 0;
  transform: translateY(4px);
}
.menu-open .menu-toggle path:nth-child(2) {
  transform: rotate(45deg) translate(2%, 0);
}
.menu-open .menu-toggle path:nth-child(3) {
  transform: rotate(-45deg) translate(-2%, -17%);
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--gap);
}

.field {
  grid-column: span 12;
}

@media (min-width: 720px) {
  .col-6 {
    grid-column: span 6;
  }
  .col-4 {
    grid-column: span 4;
  }
  .col-8 {
    grid-column: span 8;
  }
  .col-3 {
    grid-column: span 3;
  }
  .col-9 {
    grid-column: span 9;
  }
}
label {
  display: inline-block;
  font-weight: 600;
  margin-bottom: 0.35rem;
}

textarea {
  min-height: 140px;
  resize: vertical;
}

.hint {
  font-size: 0.9rem;
  color: #555;
}

.section {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px dashed #e5e5e5;
}

.options {
  display: grid;
  gap: 0.5rem;
}

.options .option {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.required::after {
  content: " *";
  color: #d11;
}

.files {
  display: grid;
  gap: var(--gap);
}

.submit {
  margin-top: 1.5rem;
}

.footnote {
  font-size: 0.9rem;
  color: #444;
  margin-top: 0.5rem;
}

.consent {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.two-col {
  display: grid;
  gap: var(--gap);
}

@media (min-width: 720px) {
  .two-col {
    grid-template-columns: 1fr 1fr;
  }
}
.nav ul,
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.inline-contact {
  padding-right: 15px;
}
.inline-contact strong {
  font-size: 1rem;
  font-weight: bold;
  padding-right: 5px;
}

.main-navigation ul {
  display: flex;
  flex-direction: column;
}
.main-navigation ul [aria-current=page] {
  font-weight: 700;
}
.main-navigation ul li {
  position: relative;
  padding: var(--space-3xs);
}
.main-navigation ul li.active a {
  font-weight: bold;
}
.main-navigation ul .sub-menu {
  overflow: hidden;
  transition: transform var(--td-menu-transform, 500ms) ease, box-shadow var(--td-menu-box-shadow, 300ms) ease;
  transform-origin: left top;
  transition-delay: var(--td-menu-box-shadow, 300ms), 0ms;
  margin-left: var(--space-s);
}
.main-navigation ul .sub-menu li {
  white-space: nowrap;
}
.main-navigation ul ul li a,
.main-navigation ul ul li span {
  font-weight: normal;
  font-size: 0.8em;
}
@media screen and (min-width: 760px) {
  .main-navigation ul {
    flex-direction: row;
  }
  .main-navigation .sub-menu {
    top: 100%;
    left: 0;
    margin-left: 0;
    position: absolute;
  }
  .main-navigation .top-level + li {
    margin-left: var(--space-s);
  }
  .main-navigation .top-level:last-child .sub-menu {
    left: auto;
    right: 0;
  }
  .main-navigation .top-level .sub-menu {
    transform: scaleY(0);
  }
  .main-navigation .top-level .sub-menu li {
    opacity: 0;
    transition-delay: 0s;
    transition: opacity var(--td-menu-box-shadow, 300ms);
  }
  .main-navigation .top-level:hover .sub-menu, .main-navigation .top-level:active .sub-menu, .main-navigation .top-level:focus .sub-menu, .main-navigation .top-level.open .sub-menu {
    transition-delay: 0s, var(--td-menu-transform, 500ms);
    transform: scaleY(1);
  }
  .main-navigation .top-level:hover .sub-menu li, .main-navigation .top-level:active .sub-menu li, .main-navigation .top-level:focus .sub-menu li, .main-navigation .top-level.open .sub-menu li {
    transition-delay: var(--td-menu-transform, 500ms);
    opacity: 1;
  }
}

.footer-nav a {
  font-size: 0.9rem;
}

nav.pages {
  display: flex;
  justify-content: space-between;
  margin-top: var(--spacing)/3;
  flex-wrap: wrap;
}

.site-footer nav ul {
  margin: 0;
  margin-left: 1em;
  padding: 0;
  list-style: disc;
}

.pills .pill {
  padding: var(--_p-pill, var(--space-xs));
  display: inline-block;
}

.hidden-svg {
  visibility: hidden;
  width: 0;
  height: 0;
  position: absolute;
}

.filled-icon {
  fill-rule: evenodd;
  clip-rule: evenodd;
  stroke-linejoin: round;
  stroke-miterlimit: 2;
  fill: var(--icon-fill, #e4e4e4);
}

.stroked-icon {
  fill-rule: evenodd;
  clip-rule: evenodd;
  stroke-linejoin: round;
  stroke-miterlimit: 2;
  fill: none;
  stroke: var(--icon-stroke, #e4e4e4);
  stroke-width: 1px;
}

svg.logo {
  max-width: 250px;
}
svg.logo path {
  fill: inherit;
}
svg.logo use {
  fill: var(--brand-blue);
}

img,
video,
iframe,
svg {
  max-width: 100%;
  height: auto;
}

svg {
  height: auto;
}

.icon-box {
  display: flex;
}

.icon-box-inline {
  align-items: center;
}

.contact-box {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.contact-box svg,
.contact-box figure {
  flex-basis: 30%;
  min-width: var(--miw-contact-box-icon, 30px);
  max-width: var(--maw-contact-box-icon, 35px);
  margin-right: var(--space-xs);
}

.icon {
  width: var(--icon-size, 48px);
  height: var(--icon-size, 48px);
  min-width: var(--icon-size, 48px);
}

.icon-xs {
  --icon-size: var(--icon-size-xs, 32px);
}

.icon-2xs {
  --icon-size: var(--icon-size-2xs, 28px);
}

.icon-3xs {
  --icon-size: var(--icon-size-3xs, 24px);
}

.icon-4xs {
  --icon-size: var(--icon-size-4xs, 20px);
}

.icon-5xs {
  --icon-size: var(--icon-size-5xs, 16px);
}

.icon-s {
  --icon-size: var(--icon-size-s, 32px);
}

.icon-m {
  --icon-size: var(--icon-size-m, 48px);
}

.icon-l {
  --icon-size: var(--icon-size-l, 64px);
}

.icon-xl {
  --icon-size: var(--icon-size-xl, 96px);
}

.icon-2xl {
  --icon-size: var(--icon-size-2xl, 128px);
}

.icon-3xl {
  --icon-size: var(--icon-size-3xl, 192px);
}

.icon-4xl {
  --icon-size: var(--icon-size-4xl, 256px);
}

.stroke-s {
  --stroke-width: 1.3px;
  --stroke-linejoin: miter;
  --stroke-miterlimit: 10;
}

.stroke-m {
  --stroke-width: 2px;
  --stroke-linejoin: miter;
  --stroke-miterlimit: 10;
}

.stroke-l {
  --stroke-width: 4px;
  --stroke-linejoin: miter;
  --stroke-miterlimit: 10;
}

.stroke-xl {
  --stroke-width: 6px;
  --stroke-linejoin: miter;
  --stroke-miterlimit: 10;
}

.stroke-2xl {
  --stroke-width: 8px;
  --stroke-linejoin: miter;
  --stroke-miterlimit: 10;
}

.button svg {
  --icon-fill: var(--c-action);
  --icon-stroke: var(--c-action);
}

.inline-icons {
  display: flex;
}

.icon {
  width: var(--icon-size, 24px);
  height: var(--icon-size, 24px);
  min-width: var(--icon-size, 24px);
}

.icon--16 {
  --icon-size: 16px;
}

.icon--32 {
  --icon-size: 32px;
}

.icon--48 {
  --icon-size: 48px;
}

.icon--64 {
  --icon-size: 64px;
}

.icon--96 {
  --icon-size: 96px;
}

.icon--128 {
  --icon-size: 128px;
}

.icon--256 {
  --icon-size: 256px;
}

.media-scroller {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--_col-width, 25%);
  overflow: auto;
  gap: var(--_gap, var(--space-s));
  overscroll-behavior-inline: contain;
}
.media-scroller::-webkit-scrollbar {
  height: 6px;
  width: 6px;
}
.media-scroller::-webkit-scrollbar-thumb {
  background-color: var(--c-gray);
  border-radius: 3px;
}

.snaps-inline {
  scroll-snap-type: inline mandatory;
  scroll-padding-inline: var(--space-xs);
}
.snaps-inline > * {
  scroll-snap-align: start;
}

.single-post,
.single-post-list {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: calc(var(--spacing) / 3);
  border-bottom: 1px solid var(--color--brand-lightgray);
}

.related {
  display: flex;
  flex-wrap: wrap;
}
.related .single-post-list {
  flex-direction: column;
  flex-basis: 33%;
  border-bottom: 0;
}
.related .single-post-list figure {
  display: none;
}

.single-post-list + .single-post-list {
  margin-top: calc(var(--spacing) / 3);
}
.single-post-list > * {
  flex-grow: 1;
}
.single-post-list figure {
  flex-basis: 40%;
  text-align: center;
  min-width: 280px;
}
.single-post-list section.content {
  flex-basis: 50%;
  max-width: 80ch;
}
.single-post-list .readmore {
  margin-top: var(--size-padding);
  display: inline-block;
}

.meta {
  flex-basis: 10%;
  padding-left: var(--size-padding);
  padding-bottom: var(--size-padding);
  white-space: nowrap;
  max-width: 20ch;
  font-weight: bold;
}

.single-post {
  display: flex;
}
.single-post header {
  padding-left: 10%;
}
.single-post aside {
  flex-basis: 10%;
}
.single-post section.content {
  flex-basis: 80%;
}
.single-post blockquote {
  border-left: 3px solid currentColor;
  padding: var(--size-padding)/2 var(--size-padding);
  max-width: 80ch;
  margin-left: 0;
}

/**
 *  styles shared by all screen sizes without grid support
 **/
[class*=grid-] {
  display: grid;
  gap: var(--gap, 2rem);
}

.content {
  grid-area: content;
  grid-row: auto;
}

@media screen and (min-width: 760px) {
  .grid--half {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap, 1rem);
  }
}

@media screen and (min-width: 760px) {
  .grid--third {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--gap, 1rem);
  }
}

@supports (contain: layout) {
  .card {
    contain: layout;
  }
}
@media screen and (min-width: 760px) {
  .grid--reverse :first-child {
    order: 2;
  }
}

.grid--sidebar {
  grid-template-areas: "sidebar content";
  grid-template-columns: 1fr 2fr;
  grid-template-rows: auto;
}

.skip-link {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1000;
  background: var(--c-action);
  color: var(--c-text);
  padding: var(--space-xs) var(--space-m);
  text-transform: uppercase;
  font-weight: bold;
}
.skip-link:focus {
  opacity: 1;
  pointer-events: auto;
}

.site-header {
  width: 100%;
  padding: 0;
  transition: all 0.7s ease-out;
  z-index: 999;
  background-color: var(--bg-header, #fff);
  text-align: center;
  padding-block: var(--space-l);
  margin-block-end: var(--space-xl);
}
.site-header .logo {
  margin-inline: auto;
  margin-block: 0;
}
.site-header img {
  max-width: 250px;
  min-width: 150px;
  aspect-ratio: 200/57;
}
.site-header .head {
  margin-right: auto;
  margin-left: auto;
}

.site-footer {
  background-color: var(--bg-header);
  margin-block-start: var(--space-xl);
  padding-block: var(--space-xl);
  text-align: center;
}
@media screen and (max-width: 760px) {
  .site-footer {
    padding-bottom: var(--scroll-padding);
  }
}

.designer {
  text-align: center;
  padding-top: var(--space-xs, 0.5rem);
  margin-bottom: var(--space-xs, 0.5rem);
  margin-top: var(--space-xs, 0.5rem);
}
.designer svg {
  height: var(--h-designer-logo, 1em);
  width: auto;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL21haW4uc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvdmFyaWFibGVzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvY29tbW9uL2RlYnVnLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL2NvbW1vbi9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9jb21tb24vX21peGlucy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9jb21tb24vX2V4dGVuZHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvY29tbW9uL19ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvY29tbW9uL19nbG9iYWwuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvY29tbW9uL19sb2FkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvY29tbW9uL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL2NvbXBvbmVudHMvZm9ybXMvX2ZpZWxkcy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9jb21wb25lbnRzL2Zvcm1zL19idXR0b25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL2NvbXBvbmVudHMvbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9tZWRpYS9fZ2xvYmFsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL21lZGlhL19pY29uLWJveC5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9tZWRpYS9faWNvbi1zaXplcy5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9jb21wb25lbnRzL19ibG9nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL2xheW91dHMvX21haW4uc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvbGF5b3V0cy9fYmFzZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvQzovd3d3L2tsdWRpcmVrbGFtYWNqZS90aGVtZXMvcmVrbGFtYWNqZS1rbHVkaS9zcmMvc2Nzcy9sYXlvdXRzL19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9DOi93d3cva2x1ZGlyZWtsYW1hY2plL3RoZW1lcy9yZWtsYW1hY2plLWtsdWRpL3NyYy9zY3NzL0M6L3d3dy9rbHVkaXJla2xhbWFjamUvdGhlbWVzL3Jla2xhbWFjamUta2x1ZGkvc3JjL3Njc3MvbGF5b3V0cy9fZm9vdGVyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWdCO0FDQWhCO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7Q0RFSjtBQ0NBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7Q0RDSjtBQ0VBO0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7Ozs7SUFBQTtFQUtBOzs7O0lBQUE7RUFNQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOzs7S0FBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0NEdEJKOztBRXRHQTtFQUVJO0lBQ0k7SUFDQTtHRndHTjtFRXJHRTtJQUNJO0lBQ0E7R0Z1R047Q0FDRjtBRW5HQTtFQUVJO0lBQ0k7SUFDQTtHRm9HTjtFRWpHRTtJQUNJO0lBQ0E7SUFDQTtHRm1HTjtFRWhHRTtJQUNJO0lBQ0E7R0ZrR047RUUvRkU7SUFDSTtJQUNBO0dGaUdOO0NBQ0Y7QUU3RkE7RUFDSTtFQUNBO0NGK0ZKOztBRTVGQTtFQUNJO0VBQ0E7Q0YrRko7O0FFNUZBO0VBQ0k7RUFDQTtDRitGSjs7QUU1RkE7RUFDSTtFQUNBO0NGK0ZKOztBRTVGQTtFQUNJO0VBQ0E7Q0YrRko7O0FFN0ZBO0VBQ0k7RUFDQTtDRmdHSjs7QUU3RkE7RUFDSTtFQUNBO0NGZ0dKOztBRTlGQTtFQUNJO0VBQ0E7Q0ZpR0o7O0FFL0ZBO0VBQ0k7RUFDQTtDRmtHSjs7QUdoTEE7RUFLSTtJQUNJO0dIK0tOO0NBQ0Y7QUc3S0E7RUFDSTtJQUNJO0dIK0tOO0VHMUtFO0lBQ0k7R0g0S047Q0FDRjtBR3pLQTtFQUVJO0lBQ0k7R0gwS047RUd4S0U7SUFDSTtHSDBLTjtFR3hLRTtJQUNJO0dIMEtOO0NBQ0Y7QUd0S0E7RUFDRTtJQUNFO0dId0tGO0VHdEtBO0lBQ0U7R0h3S0Y7Q0FDRjtBR3RLQTtFQUNFO0lBQ0U7R0h3S0Y7Q0FDRjtBR3RLQTtFQUNFO0lBQ0U7R0h3S0Y7Q0FDRjtBR3BLQTtFQUNFO0VBQ0E7Q0hzS0Y7O0FHbktBO0VBQ0U7Q0hzS0Y7O0FHbktBO0VBQ0U7Q0hzS0Y7O0FHbktBO0VBQ0U7RUFDQTtDSHNLRjtBR3BLRTtFQUNFO0NIc0tKOztBR2xLQTtFQUNFO0VBQ0E7RUFDQTtDSHFLRjtBR25LRTtFQUNFO0VBQ0E7Q0hxS0o7O0FJOUlBO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7R0ppSk47RUkvSUU7SUFDSTtJQUNBO0lBQ0E7R0ppSk47Q0FDRjtBS3RRQTtFQUNJO0VBQ0E7Q0x3UUo7O0FLdFBBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NMeVBKO0FLdlBJO0VBRUk7Q0x3UFI7O0FLcFBBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NMdVBKOztBS2pOQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztJQUFBO0VBSUE7RUFDQSwrVEFDSTtDTGtOUjs7QU0xU0E7QUFFQTtnRkFBQTtBQUdBOzs7O0dBQUE7QUFNQTtFQUNFO0VBQ0E7RUFDQTtDTjBTRjs7QU12U0E7Z0ZBQUE7QUFHQTs7R0FBQTtBQUlBO0VBQ0U7Q053U0Y7O0FNclNBOztHQUFBO0FBSUE7Ozs7OztFQU1FO0NOdVNGOztBTXBTQTs7O0dBQUE7QUFLQTtFQUNFO0VBQ0E7Q05zU0Y7O0FNblNBO2dGQUFBO0FBR0E7OztHQUFBO0FBS0E7O09BRU87RUFDTDtDTm9TRjs7QU1qU0E7O0dBQUE7QUFJQTtFQUNFO0NObVNGOztBTWhTQTs7O0dBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTtDTmtTRjs7QU0vUkE7OztHQUFBO0FBS0E7RUFDRTtFQUNBO0NOaVNGOztBTTlSQTtnRkFBQTtBQUdBOzs7R0FBQTtBQUtBO0VBQ0U7RUFDQTtDTitSRjs7QU01UkE7OztHQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7VUFBQTtDTjhSRjs7QU0zUkE7O0dBQUE7QUFJQTs7RUFFRTtDTjZSRjs7QU0xUkE7O0dBQUE7QUFJQTs7RUFFRTtDTjRSRjs7QU16UkE7OztHQUFBO0FBS0E7OztFQUdFO0VBQ0E7Q04yUkY7O0FNeFJBOztHQUFBO0FBSUE7RUFDRTtDTjBSRjs7QU12UkE7O0dBQUE7QUFJQTtFQUNFO0VBQ0E7Q055UkY7O0FNdFJBOztHQUFBO0FBSUE7RUFDRTtDTndSRjs7QU1yUkE7OztHQUFBO0FBS0E7O0VBRUU7RUFDQTtFQUNBO0VBQ0E7Q051UkY7O0FNcFJBO0VBQ0U7Q051UkY7O0FNcFJBO0VBQ0U7Q051UkY7O0FNcFJBO2dGQUFBO0FBR0E7O0dBQUE7QUFJQTs7RUFFRTtDTnFSRjs7QU1sUkE7O0dBQUE7QUFJQTtFQUNFO0VBQ0E7Q05vUkY7O0FNalJBOztHQUFBO0FBSUE7RUFDRTtDTm1SRjs7QU1oUkE7O0dBQUE7QUFJQTtFQUNFO0NOa1JGOztBTS9RQTtnRkFBQTtBQUdBOzs7R0FBQTtBQUtBOzs7OztFQUtFO0VBQ0E7RUFDQTtDTmdSRjs7QU01UUE7OztHQUFBO0FBS0E7UUFDUTtFQUNOO0NOOFFGOztBTTNRQTs7O0dBQUE7QUFLQTtTQUNTO0VBQ1A7Q042UUY7O0FNMVFBOzs7O0dBQUE7QUFNQTs7OztFQUlFO0NONFFGOztBTXpRQTs7R0FBQTtBQUlBOzs7O0VBSUU7RUFDQTtDTjJRRjs7QU14UUE7O0dBQUE7QUFJQTs7OztFQUlFO0NOMFFGOztBTXZRQTs7R0FBQTtBQUlBO0VBQ0U7Q055UUY7O0FNdFFBOzs7OztHQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q053UUY7O0FNclFBOzs7R0FBQTtBQUtBO0VBQ0U7RUFDQTtDTnVRRjs7QU1wUUE7O0dBQUE7QUFJQTtFQUNFO0NOc1FGOztBTW5RQTs7O0dBQUE7QUFLQTs7RUFFRTtFQUNBO0NOcVFGOztBTWxRQTs7R0FBQTtBQUlBOztFQUVFO0NOb1FGOztBTWpRQTs7O0dBQUE7QUFLQTtFQUNFO0VBQ0E7Q05tUUY7O0FNaFFBOztHQUFBO0FBSUE7O0VBRUU7Q05rUUY7O0FNL1BBOzs7R0FBQTtBQUtBO0VBQ0U7RUFDQTtDTmlRRjs7QU05UEE7Z0ZBQUE7QUFHQTs7O0dBQUE7QUFLQTs7RUFFRTtDTitQRjs7QU01UEE7O0dBQUE7QUFJQTtFQUNFO0NOOFBGOztBTTNQQTtnRkFBQTtBQUdBOztHQUFBO0FBSUE7RUFDRTtDTjRQRjs7QU16UEE7O0dBQUE7QUFJQTtFQUNFO0NOMlBGOztBTXhQQTtnRkFBQTtBQUdBOztHQUFBO0FBSUE7RUFDRTtDTnlQRjs7QU90ckJBO0VBQ0k7Q1B5ckJKOztBT3RyQkE7RUFDSTtFQUNBO0NQeXJCSjs7QU8zckJBO0VBQ0k7RUFDQTtDUHlyQko7O0FPdHJCQTtFQUNJO0VBQ0E7Q1B5ckJKOztBT3RyQkE7RUFDSTtDUHlyQko7O0FPdHJCQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0NQeXJCSjs7QU90ckJBOztFQUVJO0VBQ0E7Q1B5ckJKOztBT3RyQkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q1B5ckJKO0FPdnJCSTtFQUNJO0NQeXJCUjs7QU9wckJBO0VBQ0k7RUFDQTtFQUNBO0NQdXJCSjtBT3RyQkk7RUFKSjtJQUtNO0dQeXJCSjtDQUNGO0FPeHJCSTtFQVBKO0lBUU07R1AyckJKO0NBQ0Y7O0FPcHJCQTtFQUNJO0VBQ0E7RUFDQTtDUHVyQko7QU9yckJJO0VBTUk7Q1BrckJSO0FPL3FCSTtFQUNJO0VBQ0E7RUFDQTtDUGlyQlI7O0FPN3FCQTtFQUNJO0VBQ0E7Q1BnckJKOztBTzdxQkE7RUFDSTtDUGdyQko7O0FPN3FCQTtFQUNJO0VBQ0E7Q1BnckJKOztBTzdxQkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NQZ3JCSjs7QVFyeEJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q1J3eEJKO0FRdHhCSTtFQUNJO0NSd3hCUjtBUXJ4Qkk7RUFDSTtDUnV4QlI7QVFweEJJO0VBQ0k7RUFDQTtFQUNBO0NSc3hCUjtBUWx4Qkk7RUFDSTtFQUNBO0VBQ0E7Q1JveEJSO0FRanhCSTtFQUNJO0NSbXhCUjtBUWp4QlE7RUFDSTtFQUNBO0NSbXhCWjtBUS93Qkk7RUFDSTtFQUNBO0VBQ0E7Q1JpeEJSO0FRL3dCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q1JpeEJaO0FROXdCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDUmd4Qlo7QVE5d0JZO0VBQ0k7RUFDQTtDUmd4QmhCOztBUzcxQkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NUZzJCSjs7QVM3MUJBOzs7Ozs7RUFNSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NUZzJCSjs7QVM3MUJBO0VBQ0k7RUFDQTtDVGcyQko7O0FTNzFCQTtFQUNJO0VBQ0E7Q1RnMkJKOztBUzcxQkE7RUFDSTtFQUNBO0NUZzJCSjs7QVM3MUJBO0VBQ0k7RUFDQTtDVGcyQko7O0FTNzFCQTtFQUNJO0VBQ0E7Q1RnMkJKOztBUzcxQkE7RUFDSTtFQUNBO0NUZzJCSjs7QVM3MUJBO0VBQ0k7Q1RnMkJKOztBUzcxQkE7Ozs7Ozs7O0VBUUk7Q1RnMkJKOztBUzcxQkE7RUFDSTtDVGcyQko7O0FTMzFCSTs7RUFDSTtFQUNBO0VBQ0E7Q1QrMUJSO0FTNTFCSTs7RUFDSTtDVCsxQlI7O0FTMzFCQTtFQUNFO09BQUE7RUFDQTtPQUFBO0VBQ0E7T0FBQTtDVDgxQkY7O0FTMzFCQTtFQUNJO0VBQ0E7RUFDQTtDVDgxQko7QVMzMUJBO0VBQ0k7Q1Q2MUJKOztBUzExQkE7RUFDQztFQUNBO0NUNjFCRDs7QVMxMUJBO0VBQ0M7RUFDQTtDVDYxQkQ7O0FTMTFCQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDVDYxQkQ7O0FTMTFCQTtFQUNDO0NUNjFCRDs7QVN6MUJBO0VBQ0M7RUFDRztDVDQxQko7O0FTMTFCQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRztDVDYxQko7O0FTMTFCQTtFQUNDO0VBQ0E7Q1Q2MUJEOztBVTErQkE7Ozs7RUFJSTtFQUNBO0NWNitCSjtBVTMrQkk7RUFDSTtDVmcvQlI7QVVqL0JJOzs7O0VBQ0k7Q1ZnL0JSOztBVTUrQkE7RUFDSTtFQUNBO0NWKytCSjtBVTcrQkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NWKytCUjtBVTcrQlE7RUFDSTtFQUNBO0NWKytCWjs7QVV6K0JJO0VBY0k7Q1YrOUJSO0FVNzlCSTtFQUNJO0VBQ0E7RUFDQTtDVis5QlI7O0FVMzlCQTtFQUNJO0NWODlCSjs7QVUzOUJBO0VBRUk7Q1Y4OUJKOztBVWgrQkE7O0VBRUk7Q1Y4OUJKOztBVTE5QkE7RUFFSTtDVjY5Qko7O0FVLzlCQTs7RUFFSTtDVjY5Qko7O0FVejlCQTtFQUNJO0NWNDlCSjs7QVduaUNBOzs7O0VBSUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q1hzaUNKO0FXbmlDSTs7Ozs7OztFQUNJO0VBQ0E7Q1gyaUNSO0FXeGlDSTs7OztFQUNJO0NYNmlDUjs7QUkxakNJO0VPNEJKO0lQM0JRO0dKOGpDTjtDQUNGO0FXamlDSTtFQUNJO0VBQ0E7Q1htaUNSO0FXL2hDUTtFQUNJO0VBQ0E7Q1hpaUNaO0FXL2hDUTtFQUNJO0NYaWlDWjtBVy9oQ1E7RUFDSTtDWGlpQ1o7O0FZamxDQTtFQUNNO0VBQ0E7RUFDQTtDWm9sQ047O0FZbGxDSTtFQUFTO0Nac2xDYjs7QVlybENJO0VBQ0U7SUFBUztHWnlsQ2I7RVl4bENJO0lBQVM7R1oybENiO0VZMWxDSTtJQUFTO0daNmxDYjtFWTVsQ0k7SUFBUztHWitsQ2I7RVk5bENJO0lBQVM7R1ppbUNiO0NBQ0Y7QVkvbENJO0VBQVE7RUFBdUI7RUFBa0I7Q1pvbUNyRDs7QVlybENJO0VBQVc7RUFBbUI7Q1owbENsQzs7QVl4bENJO0VBQVE7RUFBa0I7Q1o2bEM5Qjs7QVkzbENJO0VBQVc7RUFBa0I7RUFBbUI7Q1ppbUNwRDs7QVkvbENJO0VBQVc7RUFBZTtDWm9tQzlCOztBWWxtQ0k7RUFBbUI7RUFBZTtFQUF5QjtDWndtQy9EOztBWXRtQ0k7RUFBbUI7RUFBZTtDWjJtQ3RDOztBWXptQ0k7RUFBUztFQUFlO0NaOG1DNUI7O0FZNW1DSTtFQUFVO0NaZ25DZDs7QVlybUNJO0VBQVk7RUFBa0I7RUFBYTtDWjJtQy9DOztBWTFtQ0k7RUFBVztFQUFlO0VBQXlCO0NaZ25DdkQ7O0FZL21DSTtFQUFXO0VBQWU7Q1pvbkM5Qjs7QVlubkNJO0VBQTRCO0lBQVc7R1p3bkN6QztDQUNGO0FhbnJDSTs7RUFDSTtFQUNBO0VBQ0E7Q2JzckNSOztBYWxyQ0E7RUFDSTtDYnFyQ0o7QWFuckNJO0VBQ0k7RUFDQTtFQUNBO0NicXJDUjs7QWFockNJO0VBQ0k7RUFDQTtDYm1yQ1I7QWFqckNRO0VBQ0k7Q2JtckNaO0FhanJDUTtFQUNJO0VBQ0E7Q2JtckNaO0FhaHJDUTtFQUNJO0Nia3JDWjtBYS9xQ1E7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0NiZ3JDWjtBYTdxQ1E7RUFDSTtDYitxQ1o7QWE1cUNROztFQUVJO0VBQ0E7Q2I4cUNaO0FhMXFDSTtFQUNJO0lBQ0k7R2I0cUNWO0VhenFDTTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0diMnFDVjtFYXZxQ1U7SUFDSTtHYnlxQ2Q7RWF0cUNVO0lBQ0k7SUFDQTtHYndxQ2Q7RWFycUNVO0lBQ0k7R2J1cUNkO0VhcHFDVTtJQUNJO0lBQ0E7SUFDQTtHYnNxQ2Q7RWEvcENjO0lBQ0k7SUFDQTtHYmlxQ2xCO0VhOXBDYztJQUNJO0lBQ0E7R2JncUNsQjtDQUNGOztBYXpwQ0k7RUFDSTtDYjRwQ1I7O0FheHBDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0NiMnBDSjs7QWF2cENJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7Q2IwcENSOztBYXJwQ0k7RUFDSTtFQUNBO0Nid3BDUjs7QWMzeENBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7Q2Q4eENKOztBYzN4Q0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NkOHhDSjs7QWMzeENBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q2Q4eENKOztBYzN4Q0E7RUFDSTtDZDh4Q0o7QWM1eENJO0VBQ0k7Q2Q4eENSO0FjM3hDSTtFQUNJO0NkNnhDUjs7QWN6eENBOzs7O0VBSUk7RUFDQTtDZDR4Q0o7O0FjenhDQTtFQUNJO0NkNHhDSjs7QWUxMENBO0VBQ0k7Q2Y2MENKOztBZTEwQ0E7RUFDSTtDZjYwQ0o7O0FlMTBDQTtFQUNJO0VBQ0E7RUFDQTtDZjYwQ0o7QWUzMENJOztFQUVJO0VBQ0E7RUFDQTtFQUNBO0NmNjBDUjs7QWdCLzFDQTtFQUNJO0VBQ0E7RUFDQTtDaEJrMkNKOztBZ0IvMUNBO0VBQ0k7Q2hCazJDSjs7QWdCLzFDQTtFQUNJO0NoQmsyQ0o7O0FnQi8xQ0E7RUFDSTtDaEJrMkNKOztBZ0IvMUNBO0VBQ0k7Q2hCazJDSjs7QWdCLzFDQTtFQUNJO0NoQmsyQ0o7O0FnQi8xQ0E7RUFDSTtDaEJrMkNKOztBZ0IvMUNBO0VBQ0k7Q2hCazJDSjs7QWdCLzFDQTtFQUNJO0NoQmsyQ0o7O0FnQi8xQ0E7RUFDSTtDaEJrMkNKOztBZ0IvMUNBO0VBQ0k7Q2hCazJDSjs7QWdCLzFDQTtFQUNJO0NoQmsyQ0o7O0FnQi8xQ0E7RUFDSTtDaEJrMkNKOztBZ0IvMUNBO0VBQ0k7RUFDQTtFQUNBO0NoQmsyQ0o7O0FnQmgyQ0E7RUFDSTtFQUNBO0VBQ0E7Q2hCbTJDSjs7QWdCaDJDQTtFQUNJO0VBQ0E7RUFDQTtDaEJtMkNKOztBZ0JoMkNBO0VBQ0k7RUFDQTtFQUNBO0NoQm0yQ0o7O0FnQmgyQ0E7RUFDSTtFQUNBO0VBQ0E7Q2hCbTJDSjs7QWdCaDJDQTtFQUNJO0VBQ0E7Q2hCbTJDSjs7QWNwNENBO0VBQ0k7Q2R1NENKOztBY3A0Q0E7RUFDSTtFQUNBO0VBQ0E7Q2R1NENKOztBY3A0Q0E7RUFDSTtDZHU0Q0o7O0FjcDRDQTtFQUNJO0NkdTRDSjs7QWNwNENBO0VBQ0k7Q2R1NENKOztBY3A0Q0E7RUFDSTtDZHU0Q0o7O0FjcDRDQTtFQUNJO0NkdTRDSjs7QWNwNENBO0VBQ0k7Q2R1NENKOztBY3A0Q0E7RUFDSTtDZHU0Q0o7O0FjcDRDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDZHU0Q0o7QWNyNENJO0VBQ0k7RUFDQTtDZHU0Q1I7QWNwNENJO0VBQ0k7RUFDQTtDZHM0Q1I7O0FjbDRDQTtFQUNJO0VBQ0E7Q2RxNENKO0FjbjRDSTtFQUNJO0NkcTRDUjs7QWlCdi9DQTs7RUFFRTtFQUNBO0VBQ0E7RUFDQTtDakIwL0NGOztBaUJ2L0NBO0VBQ0U7RUFDQTtDakIwL0NGO0FpQngvQ0U7RUFDRTtFQUNBO0VBQ0E7Q2pCMC9DSjtBaUJ4L0NJO0VBQ0U7Q2pCMC9DTjs7QWlCcC9DRTtFQUNFO0NqQnUvQ0o7QWlCcC9DRTtFQUNFO0NqQnMvQ0o7QWlCbi9DRTtFQUNFO0VBQ0E7RUFDQTtDakJxL0NKO0FpQmwvQ0U7RUFDRTtFQUNBO0NqQm8vQ0o7QWlCai9DRTtFQUNFO0VBQ0E7Q2pCbS9DSjs7QWlCLytDQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDakJrL0NGOztBaUIvK0NBO0VBQ0U7Q2pCay9DRjtBaUJoL0NFO0VBQ0U7Q2pCay9DSjtBaUIvK0NFO0VBQ0U7Q2pCaS9DSjtBaUI5K0NFO0VBQ0U7Q2pCZy9DSjtBaUI3K0NFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7Q2pCKytDSjs7QWtCNWpEQTs7SUFBQTtBQ0lBO0VBQ0k7RUFDQTtDbkI4akRKOztBbUJ2akRBO0VBQ0k7RUFDQTtDbkIwakRKOztBSTF2Q0k7RWU3VEo7SWY4VFE7SUFDQTtJQUNBLHNCQUpvQjtHSmt3QzFCO0NBQ0Y7O0FJbHdDSTtFZXpUSjtJZjBUUTtJQUNBO0lBQ0Esc0JBSm9CO0dKMHdDMUI7Q0FDRjs7QW1COWpEQTtFQUNJO0lBQ0k7R25CaWtETjtDQUNGO0FtQjdqREk7RUFDSTtJQUNJO0duQitqRFY7Q0FDRjs7QW1CM2pEQTtFQUNJO0VBQ0E7RUFDQTtDbkI4akRKOztBbUIzakRBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFBVTtFQUNWO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDbkIrakRKO0FtQjdqREk7RUFDSTtFQUNBO0NuQitqRFI7O0FvQjVuREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NwQituREo7QW9CN25ESTtFQUNJO0VBQ0E7Q3BCK25EUjtBb0I1bkRJO0VBQ0k7RUFDQTtFQUNBO0NwQjhuRFI7QW9CM25ESTtFQUNJO0VBQ0E7Q3BCNm5EUjs7QXFCcHBEQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0NyQnVwREo7QXFCcnBESTtFQU5KO0lBT1E7R3JCd3BETjtDQUNGOztBcUJycERBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7Q3JCd3BESjtBcUJ0cERJO0VBQ0k7RUFDQSIsImZpbGUiOiJhc3NldHMvY3NzL21haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogU2VsZiBob3N0ZWQgZm9udHMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDYW1wdG9uXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvY2FtcHRvbi1saWdodC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2FtcHRvblwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2NhbXB0b24tc2VtaWJvbGQtd2ViZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbi8qICBTdHJ1Y3R1cmUgKi9cbjpyb290IHtcbiAgLS1zY3JvbGwtcGFkZGluZzogNjVweDtcbiAgLS1zaXplLW91dGVyLWNvbnRhaW5lcjogMTAwZW07XG4gIC0tc2l6ZS1jb250YWluZXItbWF4OiA5NXZ3O1xuICAtLXNpemUtY29udGFpbmVyLWRlZmF1bHQ6IDUwZW07XG4gIC0tc2l6ZS1jb250YWluZXI6IHZhcigtLXNpemUtY29udGFpbmVyLWRlZmF1bHQpO1xuICAtLWgtaGVhZGVyLW1vYmlsZTogNTBweDtcbiAgLS1jLXdoaXRlOiBoc2woMCwgMCUsIDEwMCUpO1xuICAtLWMtdGV4dDogaHNsKDAsIDAlLCA3JSk7XG4gIC0tYy1wcmltYXJ5LWg6IDA7XG4gIC0tYy1wcmltYXJ5LXM6IDAlO1xuICAtLWMtcHJpbWFyeS1sOiAwJTtcbiAgLS1jLXNlY29uZGFyeS1oOiAwO1xuICAtLWMtc2Vjb25kYXJ5LXM6IDAlO1xuICAtLWMtc2Vjb25kYXJ5LWw6IDAlO1xuICAtLWMtcHJpbWFyeTogaHNsKFxuICAgICAgdmFyKC0tYy1wcmltYXJ5LWgpLFxuICAgICAgdmFyKC0tYy1wcmltYXJ5LXMpLFxuICAgICAgdmFyKC0tYy1wcmltYXJ5LWwpXG4gICk7XG4gIC0tYy1zZWNvbmRhcnk6IGhzbChcbiAgICAgIHZhcigtLWMtc2Vjb25kYXJ5LWgpLFxuICAgICAgdmFyKC0tYy1zZWNvbmRhcnktcyksXG4gICAgICB2YXIoLS1jLXNlY29uZGFyeS1sKVxuICApO1xuICAtLWJkLWlucHV0OiAxcHggc29saWQgI2NjYztcbiAgLS1jLWFjY2VudDogdmFyKC0tYy1hY3Rpb24pO1xuICAtLWMtY2FyZXQ6IHZhcigtLWMtYWN0aW9uKTtcbiAgLS1iZy1ocjogI2NjYztcbiAgLS1mei1iYXNlOiAxNnB4O1xuICAtLWZ6LWJhc2UtbW9iaWxlOiAxNnB4O1xuICAtLW0tYm9keTogMDtcbiAgLS1wLWJvZHk6IDA7XG4gIC0tYmctc2VsZWN0aW9uOiAjY2NjO1xuICAtLWMtc2VsZWN0aW9uOiAjZmNmY2ZjO1xuICAtLWJnLWhlYWRlcjogIzE2MjMyZTtcbiAgLS1iZy1ib2R5OiAjZmZmO1xuICAtLWljb24tZmlsbDogI2NjYztcbiAgLS1iZ2Mtc2Nyb2xsYmFyOiAjY2NjO1xuICAtLXRkLW1lbnUtdHJhbnNmb3JtOiA1MDBtcztcbiAgLS10ZC1tZW51LWJveC1zaGFkb3c6IDMwMG1zO1xuICAtLWZmLXRleHQ6IFwiQ2FtcHRvblwiO1xuICAtLWZmLWhlYWRpbmdzOiBcIkNhbXB0b25cIjtcbiAgLS1jLWFjdGlvbi1oOiA1MDtcbiAgLS1jLWFjdGlvbi1zOiAxMDAlO1xuICAtLWMtYWN0aW9uLWw6IDUwJTtcbiAgLS1jLWFjdGlvbjogaHNsKHZhcigtLWMtYWN0aW9uLWgpLCB2YXIoLS1jLWFjdGlvbi1zKSwgdmFyKC0tYy1hY3Rpb24tbCkpO1xuICAvKipcbiAgICAgIHNjYWxlIDEzNDAgYXQgMTZweFxuICAgICAgMzIwcHggYXQgMTJweDtcbiAgICovXG4gIC0tc3RlcC0tMjogY2xhbXAoMC42MXJlbSwgY2FsYygwLjZyZW0gKyAwLjA1dncpLCAwLjY0cmVtKTtcbiAgLS1zdGVwLS0xOiBjbGFtcCgwLjczcmVtLCBjYWxjKDAuNzFyZW0gKyAwLjExdncpLCAwLjhyZW0pO1xuICAtLXN0ZXAtMDogY2xhbXAoMC44OHJlbSwgY2FsYygwLjg0cmVtICsgMC4ydncpLCAxcmVtKTtcbiAgLS1zdGVwLTE6IGNsYW1wKDEuMDVyZW0sIGNhbGMoMC45OXJlbSArIDAuMzF2dyksIDEuMjVyZW0pO1xuICAtLXN0ZXAtMjogY2xhbXAoMS4yNnJlbSwgY2FsYygxLjE3cmVtICsgMC40N3Z3KSwgMS41NnJlbSk7XG4gIC0tc3RlcC0zOiBjbGFtcCgxLjUxcmVtLCBjYWxjKDEuMzdyZW0gKyAwLjY5dncpLCAxLjk1cmVtKTtcbiAgLS1zdGVwLTQ6IGNsYW1wKDEuODFyZW0sIGNhbGMoMS42MnJlbSArIDAuOTh2dyksIDIuNDRyZW0pO1xuICAtLXN0ZXAtNTogY2xhbXAoMi4xOHJlbSwgY2FsYygxLjlyZW0gKyAxLjM3dncpLCAzLjA1cmVtKTtcbiAgLS1mei1oMTogdmFyKC0tc3RlcC01KTtcbiAgLS1mei1oMjogdmFyKC0tc3RlcC00KTtcbiAgLS1mei1oMzogdmFyKC0tc3RlcC0zKTtcbiAgLS1mei1oNDogdmFyKC0tc3RlcC0yKTtcbiAgLS1mei1oNTogdmFyKC0tc3RlcC0xKTtcbiAgLS1mei1zbWFsbDogdmFyKC0tc3RlcC0tMSk7XG4gIC0tc3BhY2UtM3hzOiBjbGFtcCgwLjI1cmVtLCBjYWxjKDAuMjVyZW0gKyAwdncpLCAwLjI1cmVtKTtcbiAgLS1zcGFjZS0yeHM6IGNsYW1wKDAuNDRyZW0sIGNhbGMoMC40MnJlbSArIDAuMXZ3KSwgMC41cmVtKTtcbiAgLS1zcGFjZS14czogY2xhbXAoMC42OXJlbSwgY2FsYygwLjY3cmVtICsgMC4xdncpLCAwLjc1cmVtKTtcbiAgLS1zcGFjZS1zOiBjbGFtcCgwLjg4cmVtLCBjYWxjKDAuODRyZW0gKyAwLjJ2dyksIDFyZW0pO1xuICAtLXNwYWNlLW06IGNsYW1wKDEuMzFyZW0sIGNhbGMoMS4yNXJlbSArIDAuMjl2dyksIDEuNXJlbSk7XG4gIC0tc3BhY2UtbDogY2xhbXAoMS43NXJlbSwgY2FsYygxLjY3cmVtICsgMC4zOXZ3KSwgMnJlbSk7XG4gIC0tc3BhY2UteGw6IGNsYW1wKDIuNjNyZW0sIGNhbGMoMi41MXJlbSArIDAuNTl2dyksIDNyZW0pO1xuICAtLXNwYWNlLTJ4bDogY2xhbXAoMy41cmVtLCBjYWxjKDMuMzRyZW0gKyAwLjc4dncpLCA0cmVtKTtcbiAgLS1zcGFjZS0zeGw6IGNsYW1wKDUuMjVyZW0sIGNhbGMoNS4wMXJlbSArIDEuMTh2dyksIDZyZW0pO1xuICAvKiBPbmUtdXAgcGFpcnMgKi9cbiAgLS1zcGFjZS0zeHMtMnhzOiBjbGFtcCgwLjI1cmVtLCBjYWxjKDAuMTdyZW0gKyAwLjM5dncpLCAwLjVyZW0pO1xuICAtLXNwYWNlLTJ4cy14czogY2xhbXAoMC40NHJlbSwgY2FsYygwLjM0cmVtICsgMC40OXZ3KSwgMC43NXJlbSk7XG4gIC0tc3BhY2UteHMtczogY2xhbXAoMC42OXJlbSwgY2FsYygwLjU5cmVtICsgMC40OXZ3KSwgMXJlbSk7XG4gIC0tc3BhY2Utcy1tOiBjbGFtcCgwLjg4cmVtLCBjYWxjKDAuNjhyZW0gKyAwLjk4dncpLCAxLjVyZW0pO1xuICAtLXNwYWNlLW0tbDogY2xhbXAoMS4zMXJlbSwgY2FsYygxLjFyZW0gKyAxLjA4dncpLCAycmVtKTtcbiAgLS1zcGFjZS1sLXhsOiBjbGFtcCgxLjc1cmVtLCBjYWxjKDEuMzZyZW0gKyAxLjk2dncpLCAzcmVtKTtcbiAgLS1zcGFjZS14bC0yeGw6IGNsYW1wKDIuNjNyZW0sIGNhbGMoMi4xOXJlbSArIDIuMTZ2dyksIDRyZW0pO1xuICAtLXNwYWNlLTJ4bC0zeGw6IGNsYW1wKDMuNXJlbSwgY2FsYygyLjcycmVtICsgMy45MnZ3KSwgNnJlbSk7XG4gIC8qIEN1c3RvbSBwYWlycyAqL1xuICAtLXNwYWNlLXMtbDogY2xhbXAoMC44OHJlbSwgY2FsYygwLjUycmVtICsgMS43NnZ3KSwgMnJlbSk7XG4gIC0tZ2FwOiB2YXIoLS1zcGFjZS1tKTtcbiAgLS13LXdpZGdldDogMTVyZW07XG4gIC0tYnhzaC1iYXNlOiAwIDAgMjBweCBoc2woMCAwJSAwJSAvIDAuMSk7XG59XG5cbkBsYXllciB3YXJuaW5ncyB7XG4gIGZpZ3VyZVthcmlhLWxhYmVsXTpub3QoOmhhcyhmaWdjYXB0aW9uKSkge1xuICAgIG91dGxpbmU6IHZhcigtLXdhcm5pbmctb3V0bGluZSk7XG4gICAgLS13YXJuaW5nLWZpZ3VyZS1sYWJlbC1ub3QtdmlzaWJsZTogXCJUaGUgbGFiZWxpbmcgbWV0aG9kIHVzZWQgaXMgbm90IHZpc2libGUgYW5kIG9ubHkgYXZhaWxhYmxlIHRvIGFzc2lzdGl2ZSBzb2Z0d2FyZVwiO1xuICB9XG4gIGZpZ3VyZVthcmlhLWxhYmVsXSBmaWdjYXB0aW9uIHtcbiAgICBvdXRsaW5lOiB2YXIoLS13YXJuaW5nLW91dGxpbmUpO1xuICAgIC0td2FybmluZy1vdmVycmlkZGVuLWZpZ2NhcHRpb246IFwiVGhlIGZpZ3VyZSBoYXMgYSBmaWdjYXB0aW9uIHRoYXQgaXMgb3ZlcnJpZGRlbiBieSBhbiBBUklBIGxhYmVsXCI7XG4gIH1cbn1cbkBsYXllciBlcnJvcnMge1xuICBmaWdjYXB0aW9uOm5vdChmaWd1cmUgPiBmaWdjYXB0aW9uKSB7XG4gICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gICAgLS1lcnJvci1maWdjYXB0aW9uLW5vdC1jaGlsZDogXCJUaGUgZmlnY2FwdGlvbiBpcyBub3QgYSBkaXJlY3QgY2hpbGQgb2YgYSBmaWd1cmVcIjtcbiAgfVxuICBmaWdjYXB0aW9uOmVtcHR5IHtcbiAgICBwYWRkaW5nOiAwLjVleDsgLyogZ2l2ZSBpdCBzb21lIHB1cmNoYXNlICovXG4gICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gICAgLS1lcnJvci1maWdjYXB0aW9uLWVtcHR5OiBcIlRoZSBmaWdjYXB0aW9uIGlzIGVtcHR5XCI7XG4gIH1cbiAgZmlndXJlOm5vdCg6aXMoW2FyaWEtbGFiZWxdLCBbYXJpYS1sYWJlbGxlZGJ5XSkpOm5vdCg6aGFzKGZpZ2NhcHRpb24pKSB7XG4gICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gICAgLS1lcnJvci1uby1maWd1cmUtbGFiZWw6IFwiVGhlIGZpZ3VyZSBpcyBub3QgbGFiZWxlZCBieSBhbnkgYXBwbGljYWJsZSBtZXRob2RcIjtcbiAgfVxuICBmaWd1cmUgPiBmaWdjYXB0aW9uIH4gZmlnY2FwdGlvbiB7XG4gICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gICAgLS1lcnJvci1tdWx0aXBsZS1maWdjYXB0aW9uczogXCJUaGVyZSBhcmUgdHdvIGZpZ2NhcHRpb25zIGZvciBvbmUgZmlndXJlXCI7XG4gIH1cbn1cbmJvZHkgOm5vdCg6aXMoaGVhZGVyLCBuYXYsIG1haW4sIGFzaWRlLCBmb290ZXIpKTpub3QoOmlzKGhlYWRlciwgbmF2LCBtYWluLCBhc2lkZSwgZm9vdGVyKSAqKTpub3QoLnNraXAtbGluaykge1xuICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcbiAgLS1lcnJvci1jb250ZW50LW91dHNpZGUtbGFuZG1hcms6IFwiWW91IGhhdmUgc29tZSBjb250ZW50IHRoYXQgaXMgbm90IGluc2lkZSBhIGxhbmRtYXJrIChoZWFkZXIsIG5hdiwgbWFpbiwgYXNpZGUsIG9yIGZvb3RlcilcIjtcbn1cblxub2xbY2xhc3MqPWJyZWFkY3J1bWJdOm5vdCg6aXMobmF2W2FyaWEtbGFiZWxdLCBuYXZbYXJpYS1sYWJlbGxlZGJ5XSkgb2wpIHtcbiAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gIC0tZXJyb3ItdW5kaXNjb3ZlcmFibGUtYnJlYWRjcnVtYnM6IFwiSXQgbG9va3MgbGlrZSB5b3UgaGF2ZSBwcm92aWRlZCBicmVhZGNydW1iIG5hdmlnYXRpb24gb3V0c2lkZSBhIGxhYmVsZWQgYDxuYXY+YCBsYW5kbWFya1wiO1xufVxuXG5oZWFkZXIgbmF2Omhhcyh1bCA+IHVsKSB7XG4gIG91dGxpbmU6IHZhcigtLXdhcm5pbmctb3V0bGluZSk7XG4gIC0td2FybmluZy1uZXN0ZWQtbmF2aWdhdGlvbjogXCJZb3UgYXBwZWFyIHRvIGJlIHVzaW5nIHRpZXJlZC9uZXN0ZWQgbmF2aWdhdGlvbiBpbiB5b3VyIGhlYWRlci4gVGhpcyBjYW4gYmUgZGlmZmljdWx0IHRvIHRyYXZlcnNlLiBJbmRleCBwYWdlcyB3aXRoIHRhYmxlcyBvZiBjb250ZW50IGFyZSBwcmVmZXJhYmxlLlwiO1xufVxuXG46aXMoZGl2ID4gZGl2ID4gZGl2ID4gZGl2ID4gKikge1xuICBvdXRsaW5lOiB2YXIoLS13YXJuaW5nLW91dGxpbmUpO1xuICAtLXdhcm5pbmctZGl2aXRpczogXCJUaGVyZeKAmXMgYSB3aG9sZSBsb3Qgb2YgbmVzdGluZyBnb2luZyBvbiBoZXJlLiBJcyBpdCBuZWVkZWQgdG8gYWNoaWV2ZSB0aGUgbGF5b3V0PyAoaXQgaXMgbm90KVwiO1xufVxuXG5hOm5vdChbaHJlZl0pIHtcbiAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gIC0tZXJyb3I6IFwiVGhlIGxpbmsgZG9lcyBub3QgaGF2ZSBhbiBocmVmLiBEaWQgeW91IG1lYW4gdG8gdXNlIGEgPGJ1dHRvbj4/XCI7XG59XG5cbmFbaHJlZl49amF2YXNjcmlwdF0ge1xuICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcbiAgLS1lcnJvci1qYXZhc2NyaXB0LWhyZWY6IFwiVGhlIGhyZWYgZG9lcyBub3QgYXBwZWFyIHRvIGluY2x1ZGUgYSBsb2NhdGlvbi4gRGlkIHlvdSBtZWFuIHRvIHVzZSBhIDxidXR0b24+P1wiO1xufVxuXG5hW2Rpc2FibGVkXSB7XG4gIG91dGxpbmU6IHZhcigtLWVycm9yLW91dGxpbmUpO1xuICAtLWVycm9yLWFuY2hvci1kaXNhYmxlZDogXCJUaGUgZGlzYWJsZWQgcHJvcGVydHkgaXMgbm90IHZhbGlkIG9uIGFuY2hvcnMgKGxpbmtzKS4gRGlkIHlvdSBtZWFuIHRvIHVzZSBhIDxidXR0b24+P1wiO1xufVxuXG5sYWJlbDpub3QoOmhhcyg6aXMoaW5wdXQsIG91dHB1dCwgdGV4dGFyZWEsIHNlbGVjdCkpKTpub3QoW2Zvcl0pIHtcbiAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XG4gIC0tZXJyb3ItdW5hc3NvY2lhdGVkLWxhYmVsOiBcIlRoZSA8bGFiZWw+IG5laXRoZXIgdXNlcyB0aGUgYGZvcmAgYXR0cmlidXRlIG5vciB3cmFwcyBhbiBhcHBsaWNhYmxlIGZvcm0gZWxlbWVudFwiIDtcbn1cblxuaW5wdXQ6bm90KGZvcm0gaW5wdXQpIHtcbiAgb3V0bGluZTogdmFyKC0td2FybmluZy1vdXRsaW5lKTtcbiAgLS1lcnJvci1pbnB1dC1vcnBoYW46IFwiVGhlIGlucHV0IGlzIG91dHNpZGUgYSA8Zm9ybT4gZWxlbWVudC4gVXNlcnMgbWF5IGJlbmVmaXQgZnJvbSA8Zm9ybT4gc2VtYW50aWNzIGFuZCBiZWhhdmlvcnMuXCIgO1xufVxuXG5Aa2V5ZnJhbWVzIGNoZXZyb24taW4ge1xuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IGNpcmNsZSgxMTEuNiUgYXQgMCA1MCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGNoZXZyb24tb3V0IHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogY2lyY2xlKDExMS42JSBhdCAwIDUwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiBjaXJjbGUoMCBhdCA5MCUgOTUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBjaGV2cm9uLXRyYW5zaXRpb24ge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDBweCwgMTAwJSAxMDAlLCAwJSAxMDAlKTtcbiAgfVxuICA1MCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAwJSAxMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMTAwJSAxMDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzdGFydCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDAlKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHdyaXRlIHtcbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZpbGxJbiB7XG4gIHRvIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cbi50cmFuc2l0aW9uLWZhZGUge1xuICB0cmFuc2l0aW9uOiAxcztcbiAgb3BhY2l0eTogMTtcbn1cblxuaHRtbC5pcy1hbmltYXRpbmcgLnRyYW5zaXRpb24tZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5zcGxpdCAubGV0dGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmZhZGUtaW4ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDJzIGVhc2Utb3V0O1xufVxuLmluLXZpZXcgLmZhZGUtaW4ge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmFkZS1pbi16b29tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDJzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gODAwbXMgZWFzZS1vdXQ7XG59XG4uaW4tdmlldyAuZmFkZS1pbi16b29tLCAuZmFkZS1pbi16b29tLmluLXZpZXcge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG5Aa2V5ZnJhbWVzIHpvb20ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgfVxufVxuLndyYXBwZXIge1xuICB3aWR0aDogbWluKHZhcigtLXNpemUtY29udGFpbmVyKSwgdmFyKC0tc2l6ZS1jb250YWluZXItbWF4KSk7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG5cbnRleHRhcmVhLCBzZWxlY3QsIGlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9cGFzc3dvcmRdLCBpbnB1dFt0eXBlPXBob25lXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPW51bWJlcl0sIGlucHV0W3R5cGU9c2VhcmNoXSwgaW5wdXRbdHlwZT11cmxdLCBpbnB1dFt0eXBlPWRhdGVdLCBpbnB1dFt0eXBlPW1vbnRoXSwgaW5wdXRbdHlwZT13ZWVrXSwgaW5wdXRbdHlwZT1kYXRldGltZV0sIGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLCBpbnB1dFt0eXBlPWVtYWlsXSB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXI6IHZhcigtLWJkLWlucHV0LCAjY2NjKTtcbiAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG50ZXh0YXJlYTpmb2N1cywgc2VsZWN0OmZvY3VzLCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cywgaW5wdXRbdHlwZT1waG9uZV06Zm9jdXMsIGlucHV0W3R5cGU9dGVsXTpmb2N1cywgaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzLCBpbnB1dFt0eXBlPXNlYXJjaF06Zm9jdXMsIGlucHV0W3R5cGU9dXJsXTpmb2N1cywgaW5wdXRbdHlwZT1kYXRlXTpmb2N1cywgaW5wdXRbdHlwZT1tb250aF06Zm9jdXMsIGlucHV0W3R5cGU9d2Vla106Zm9jdXMsIGlucHV0W3R5cGU9ZGF0ZXRpbWVdOmZvY3VzLCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpmb2N1cywgaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsIHRleHRhcmVhOmFjdGl2ZSwgc2VsZWN0OmFjdGl2ZSwgaW5wdXRbdHlwZT10ZXh0XTphY3RpdmUsIGlucHV0W3R5cGU9cGFzc3dvcmRdOmFjdGl2ZSwgaW5wdXRbdHlwZT1waG9uZV06YWN0aXZlLCBpbnB1dFt0eXBlPXRlbF06YWN0aXZlLCBpbnB1dFt0eXBlPW51bWJlcl06YWN0aXZlLCBpbnB1dFt0eXBlPXNlYXJjaF06YWN0aXZlLCBpbnB1dFt0eXBlPXVybF06YWN0aXZlLCBpbnB1dFt0eXBlPWRhdGVdOmFjdGl2ZSwgaW5wdXRbdHlwZT1tb250aF06YWN0aXZlLCBpbnB1dFt0eXBlPXdlZWtdOmFjdGl2ZSwgaW5wdXRbdHlwZT1kYXRldGltZV06YWN0aXZlLCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTphY3RpdmUsIGlucHV0W3R5cGU9ZW1haWxdOmFjdGl2ZSB7XG4gIGJvcmRlcjogdmFyKC0tYmQtaW5wdXQtYWN0aXZlKTtcbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLndyYXBwZXItZ3JpZCB7XG4gIC0tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNwYWNlLXMsIDFyZW0pO1xuICAtLWNvbnRlbnQtbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lciwgODBlbSk7XG4gIC0tYnJlYWtvdXQtbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lci1tYXgsIDEwMGVtKTtcbiAgLS1icmVha291dC1zaXplOiBjYWxjKFxuICAgICAgdmFyKC0tYnJlYWtvdXQtbWF4LXdpZHRoKSAvIDIgLSB2YXIoLS1jb250ZW50LW1heC13aWR0aCkgLyAyXG4gICk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogW2Z1bGwtd2lkdGgtc3RhcnRdIG1pbm1heCh2YXIoLS1wYWRkaW5nLWlubGluZSksIDFmcikgW2JyZWFrb3V0LXN0YXJ0XSBtaW5tYXgoMCwgdmFyKC0tYnJlYWtvdXQtc2l6ZSkpIFtjb250ZW50LXN0YXJ0XSBtaW4oMTAwJSAtIHZhcigtLXBhZGRpbmctaW5saW5lKSAqIDIsIHZhcigtLWNvbnRlbnQtbWF4LXdpZHRoKSkgW2NvbnRlbnQtZW5kXSBtaW5tYXgoMCwgdmFyKC0tYnJlYWtvdXQtc2l6ZSkpIFticmVha291dC1lbmRdIG1pbm1heCh2YXIoLS1wYWRkaW5nLWlubGluZSksIDFmcikgW2Z1bGwtd2lkdGgtZW5kXTtcbn1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1idXR0b25dLFxuW3R5cGU9cmVzZXRdLFxuW3R5cGU9c3VibWl0XSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMsXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctc2VsZWN0aW9uLCAjZmNmY2ZjKTtcbiAgY29sb3I6IHZhcigtLWMtc2VsZWN0aW9uLCAjZmZmKTtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAwLjZyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZ2Mtc2Nyb2xsYmFyKTtcbn1cblxuaHRtbCB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDogdmFyKC0tc2Nyb2xsLXBhZGRpbmcsIDY1cHgpO1xuICBoYW5naW5nLXB1bmN0dWF0aW9uOiBmaXJzdCBsYXN0O1xuICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG59XG5cbmh0bWwsXG5ib2R5IHtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1iZ2Mtc2Nyb2xsYmFyKSB2YXIoLS1iZy1ib2R5KTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYm9keSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi10ZXh0KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIHBhZGRpbmc6IHZhcigtLXAtYm9keSwgMCk7XG4gIG1hcmdpbjogdmFyKC0tbS1ib2R5LCAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mei1iYXNlKTtcbn1cbmJvZHkudG9nZ2xlZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ncmlkLXJlc3BvbnNpdmUge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1uLCAzKSwgMWZyKTtcbiAgZ2FwOiAxMHB4O1xufVxuQG1lZGlhICh3aWR0aCA8IDgwMHB4KSB7XG4gIC5ncmlkLXJlc3BvbnNpdmUge1xuICAgIC0tbjogMjtcbiAgfVxufVxuQG1lZGlhICh3aWR0aCA8IDQwMHB4KSB7XG4gIC5ncmlkLXJlc3BvbnNpdmUge1xuICAgIC0tbjogMTtcbiAgfVxufVxuXG5hOm5vdChbY2xhc3NdKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cztcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbmgxIGE6bm90KFtjbGFzc10pLCBoMiBhOm5vdChbY2xhc3NdKSwgaDMgYTpub3QoW2NsYXNzXSksIGg0IGE6bm90KFtjbGFzc10pLCBoNSBhOm5vdChbY2xhc3NdKSwgaDYgYTpub3QoW2NsYXNzXSkge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gIGNvbG9yOiBoc2wodmFyKC0tYy1hY3Rpb24taCksIHZhcigtLWMtYWN0aW9uLXMpLCB2YXIoLS1jLWFjdGlvbi1sKSk7XG4gIC0taWNvbi1maWxsOiBjdXJyZW50Q29sb3I7XG4gIC0taWNvbi1zdHJva2U6IGN1cnJlbnRDb2xvcjtcbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS1jLWxpbmspO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYy1saW5rLWhvdmVyKTtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5ociB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhyLCAjY2NjKTtcbiAgYm9yZGVyOiBub25lO1xuICBoZWlnaHQ6IDFweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG59XG5cbi5jb3JlX2xvYWRlci1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDk5O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIDAuM3M7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcbiAgei1pbmRleDogLTE7XG59XG4uY29yZV9sb2FkZXItb3ZlcmxheSBzdmcgcGF0aCB7XG4gIGZpbGw6IGluaGVyaXQ7XG59XG4uY29yZV9sb2FkZXItb3ZlcmxheSB1c2Uge1xuICBmaWxsOiB2YXIoLS1icmFuZC1ibHVlKTtcbn1cbi5jb3JlX2xvYWRlci1vdmVybGF5Li1yZW1vdmVkIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IC0xO1xufVxuLmNvcmVfbG9hZGVyLW92ZXJsYXkuLXNob3cge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbn1cbi5jb3JlX2xvYWRlci1vdmVybGF5Li1mcm9udCB7XG4gIHotaW5kZXg6IDk5OTk7XG59XG4uY29yZV9sb2FkZXItb3ZlcmxheS4tZnJvbnQgLmxvYWRlcl9pbWFnZSBzdmcge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuLmNvcmVfbG9hZGVyLW92ZXJsYXkgLmxvYWRlcl9pbWFnZSB7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogYXV0bztcbn1cbi5jb3JlX2xvYWRlci1vdmVybGF5IC5sb2FkZXJfaW1hZ2Ugc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMsIHRyYW5zZm9ybSAxcztcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgb3BhY2l0eTogMDtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbn1cbi5jb3JlX2xvYWRlci1vdmVybGF5IC5sb2FkZXJfaW1hZ2UgcGF0aCB7XG4gIHdpbGwtY2hhbmdlOiBzdHJva2UtZGFzaGFycmF5LCBzdHJva2UtZGFzaG9mZnNldDtcbiAgc3Ryb2tlOiAjZmZmO1xuICBzdHJva2UtbGluZWNhcDogc3F1YXJlO1xuICBmaWxsOiB2YXIoLS1icmFuZC1ibHVlKTtcbiAgc3Ryb2tlLXdpZHRoOiAwO1xuICBhbmltYXRpb246IHdyaXRlIDIuNXMgZWFzZS1vdXQsIGZpbGxJbiAxcyBjdWJpYy1iZXppZXIoMCwgMC41LCAxLCAwLjUpO1xuICBhbmltYXRpb24tZGVsYXk6IDFzLCAzcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICBjb2xvcjogI2ZmZjtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbn1cbi5jb3JlX2xvYWRlci1vdmVybGF5IC5sb2FkZXJfaW1hZ2UgcGF0aC5vcmFuZ2Uge1xuICBjb2xvcjogI0U5NUUxRDtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiB2YXIoLS1jLWhlYWRpbmdzLCBjdXJyZW50Q29sb3IpO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtaGVhZGluZ3MpO1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnotaDEpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDEsIDEuMSk7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mei1oMik7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1oMiwgMS4xKTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IHZhcigtLWZ6LWgzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWgzLCAxLjEpO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnotaDQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDQsIDEuMSk7XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiB2YXIoLS1mei1oNSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1oNSwgMS4xKTtcbn1cblxuaDYge1xuICBmb250LXNpemU6IHZhcigtLWZ6LWg2KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWg2LCAxLjEpO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnotc21hbGwpO1xufVxuXG5wLFxudWwsXG5vbCxcbmRsLFxuYmxvY2txdW90ZSxcbmZpZ3VyZSxcbnRhYmxlLFxuaHIge1xuICB0ZXh0LXdyYXA6IHByZXR0eTtcbn1cblxuLmZsb3cgPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWZsb3ctc3BhY2UsIDEuNWVtKTtcbn1cblxudWxbY2xhc3NdLFxub2xbY2xhc3NdIHtcbiAgbWFyZ2luOiB2YXIoLS1fbSwgMCk7XG4gIHBhZGRpbmc6IHZhcigtLV9wLCAwKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbnVsOmVtcHR5LFxub2w6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udGV4dC1jb2x1bW5zIHtcbiAgY29sdW1uczogMjAwcHggMjtcbiAgY29sdW1uLWdhcDogMWVtO1xuICBjb2x1bW4tcnVsZTogMXB4IGRhc2hlZCB2YXIoLS1jLWhyKTtcbn1cblxuQGNvdW50ZXItc3R5bGUgZW1vamktbGlzdCB7XG4gIHN5c3RlbTogY3ljbGljO1xuICBzeW1ib2xzOiDwn42OIPCfjYog8J+NiyDwn42MIPCfjYkg8J+NhyDwn42TIPCfjYg7XG4gIHN1ZmZpeDogXCIgXCI7XG59XG5vbC5lbW9qaS1saXN0IHtcbiAgbGlzdC1zdHlsZTogZW1vamktbGlzdDtcbn1cblxuZGV0YWlscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LWlubGluZS1zaXplOiA2MGNoO1xufVxuXG5zdW1tYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmRldGFpbHM6OmRldGFpbHMtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBibG9jay1zaXplOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBibG9jay1zaXplLCBjb250ZW50LXZpc2liaWxpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xufVxuXG5kZXRhaWxzW29wZW5dOjpkZXRhaWxzLWNvbnRlbnQge1xuICBibG9jay1zaXplOiBhdXRvO1xufVxuXG5zdW1tYXJ5OjptYXJrZXIge1xuICBjb250ZW50OiBcIsK7XCI7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbnN1bW1hcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiwrtcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiAtMC4wNXJlbTtcbiAgdHJhbnNpdGlvbjogcm90YXRlIDAuMnM7XG4gIGxlZnQ6IC0xcmVtO1xufVxuXG5kZXRhaWxzW29wZW5dIHN1bW1hcnk6OmJlZm9yZSB7XG4gIHJvdGF0ZTogOTBkZWc7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiAwLjA1cmVtO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgaGFuZ2luZy1wdW5jdHVhdGlvbjogbm9uZTtcbn1cbmJ1dHRvbjo6cGxhY2Vob2xkZXIsXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG5zZWxlY3Q6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWMtbXV0ZWQpO1xufVxuXG5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tYy1sYWJlbCk7XG59XG5sYWJlbC5sZWdhbCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXNpemU6IHZhcigtLWZ6LXNtYWxsKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogdmFyKC0tYy1tdXRlZCwgI2NjYyk7XG59XG5sYWJlbC5sZWdhbCBhIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9cGhvbmVdLCBpbnB1dFt0eXBlPXRlbF0sIGlucHV0W3R5cGU9bnVtYmVyXSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXVybF0sIGlucHV0W3R5cGU9ZGF0ZV0sIGlucHV0W3R5cGU9bW9udGhdLCBpbnB1dFt0eXBlPXdlZWtdLCBpbnB1dFt0eXBlPWRhdGV0aW1lXSwgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sIGlucHV0W3R5cGU9ZW1haWxdIHtcbiAgY2FyZXQtY29sb3I6IHZhcigtLWMtY2FyZXQpO1xufVxuaW5wdXRbdHlwZT1jb2xvcl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5pbnB1dCB7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tYy1jYXJldCk7XG59XG5cbmlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pOmludmFsaWQsXG5pbnB1dDp1c2VyLWludmFsaWQge1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jLWVycm9yLCAjZjAwKTtcbn1cblxuaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bik6dmFsaWQsXG5pbnB1dDp1c2VyLXZhbGlkIHtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLCB2YXIoLS1jLWFjdGlvbikpO1xufVxuXG5pbnB1dDpmb2N1czppbnZhbGlkIHtcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy13YXJuaW5nLCBvcmFuZ2UpO1xufVxuXG4uYnV0dG9uLFxuW3R5cGU9c3VibWl0XSxcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYmctaGVhZGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKHZhcigtLWJnLWJ1dHRvbi1oLCAwKSwgdmFyKC0tYmctYnV0dG9uLXMsIDAlKSwgdmFyKC0tYmctYnV0dG9uLWwsIDAlKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhlYWRlcik7XG4gIGNvbG9yOiBoc2wodmFyKC0tYy1idXR0b24taCwgMCksIHZhcigtLWMtYnV0dG9uLXMsIDAlKSwgdmFyKC0tYy1idXR0b24tbCwgMTAwJSkpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zKSB2YXIoLS1zcGFjZS1sKTtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zO1xufVxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjphY3RpdmUsXG5bdHlwZT1zdWJtaXRdOmhvdmVyLFxuW3R5cGU9c3VibWl0XTphY3RpdmUsXG5bdHlwZT1idXR0b25dOmhvdmVyLFxuW3R5cGU9YnV0dG9uXTphY3RpdmUsXG5bdHlwZT1yZXNldF06aG92ZXIsXG5bdHlwZT1yZXNldF06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6IHZhcigtLWJnLWhlYWRlcik7XG59XG4uYnV0dG9uOmRpc2FibGVkLFxuW3R5cGU9c3VibWl0XTpkaXNhYmxlZCxcblt0eXBlPWJ1dHRvbl06ZGlzYWJsZWQsXG5bdHlwZT1yZXNldF06ZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tYy1kaXNhYmxlZCk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZW51LXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm1lbnUtdG9nZ2xlIHBhdGgge1xuICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1zcGVlZCwgMC4zcykgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cbi5tZW51LW9wZW4gLm1lbnUtdG9nZ2xlIHBhdGg6Zmlyc3QtY2hpbGQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcbn1cbi5tZW51LW9wZW4gLm1lbnUtdG9nZ2xlIHBhdGg6bnRoLWNoaWxkKDIpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgyJSwgMCk7XG59XG4ubWVudS1vcGVuIC5tZW51LXRvZ2dsZSBwYXRoOm50aC1jaGlsZCgzKSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlKC0yJSwgLTE3JSk7XG59XG5cbi5ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cblxuLmZpZWxkIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMTI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3MjBweCkge1xuICAuY29sLTYge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDY7XG4gIH1cbiAgLmNvbC00IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA0O1xuICB9XG4gIC5jb2wtOCB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gODtcbiAgfVxuICAuY29sLTMge1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDM7XG4gIH1cbiAgLmNvbC05IHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiA5O1xuICB9XG59XG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcbn1cblxudGV4dGFyZWEge1xuICBtaW4taGVpZ2h0OiAxNDBweDtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLmhpbnQge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgY29sb3I6ICM1NTU7XG59XG5cbi5zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBkYXNoZWQgI2U1ZTVlNTtcbn1cblxuLm9wdGlvbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm9wdGlvbnMgLm9wdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuNnJlbTtcbn1cblxuLnJlcXVpcmVkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiICpcIjtcbiAgY29sb3I6ICNkMTE7XG59XG5cbi5maWxlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cblxuLnN1Ym1pdCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLmZvb3Rub3RlIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiAjNDQ0O1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5jb25zZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC42cmVtO1xufVxuXG4udHdvLWNvbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogdmFyKC0tZ2FwKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XG4gIC50d28tY29sIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbn1cbi5uYXYgdWwsXG5uYXYgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5pbmxpbmUtY29udGFjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4uaW5saW5lLWNvbnRhY3Qgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5tYWluLW5hdmlnYXRpb24gdWwgW2FyaWEtY3VycmVudD1wYWdlXSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ubWFpbi1uYXZpZ2F0aW9uIHVsIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZS0zeHMpO1xufVxuLm1haW4tbmF2aWdhdGlvbiB1bCBsaS5hY3RpdmUgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm1haW4tbmF2aWdhdGlvbiB1bCAuc3ViLW1lbnUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdGQtbWVudS10cmFuc2Zvcm0sIDUwMG1zKSBlYXNlLCBib3gtc2hhZG93IHZhcigtLXRkLW1lbnUtYm94LXNoYWRvdywgMzAwbXMpIGVhc2U7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10ZC1tZW51LWJveC1zaGFkb3csIDMwMG1zKSwgMG1zO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2Utcyk7XG59XG4ubWFpbi1uYXZpZ2F0aW9uIHVsIC5zdWItbWVudSBsaSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGxpIGEsXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIGxpIHNwYW4ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiB1bCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubWFpbi1uYXZpZ2F0aW9uIC5zdWItbWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIC5tYWluLW5hdmlnYXRpb24gLnRvcC1sZXZlbCArIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2Utcyk7XG4gIH1cbiAgLm1haW4tbmF2aWdhdGlvbiAudG9wLWxldmVsOmxhc3QtY2hpbGQgLnN1Yi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5tYWluLW5hdmlnYXRpb24gLnRvcC1sZXZlbCAuc3ViLW1lbnUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICB9XG4gIC5tYWluLW5hdmlnYXRpb24gLnRvcC1sZXZlbCAuc3ViLW1lbnUgbGkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10ZC1tZW51LWJveC1zaGFkb3csIDMwMG1zKTtcbiAgfVxuICAubWFpbi1uYXZpZ2F0aW9uIC50b3AtbGV2ZWw6aG92ZXIgLnN1Yi1tZW51LCAubWFpbi1uYXZpZ2F0aW9uIC50b3AtbGV2ZWw6YWN0aXZlIC5zdWItbWVudSwgLm1haW4tbmF2aWdhdGlvbiAudG9wLWxldmVsOmZvY3VzIC5zdWItbWVudSwgLm1haW4tbmF2aWdhdGlvbiAudG9wLWxldmVsLm9wZW4gLnN1Yi1tZW51IHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgdmFyKC0tdGQtbWVudS10cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxuICAubWFpbi1uYXZpZ2F0aW9uIC50b3AtbGV2ZWw6aG92ZXIgLnN1Yi1tZW51IGxpLCAubWFpbi1uYXZpZ2F0aW9uIC50b3AtbGV2ZWw6YWN0aXZlIC5zdWItbWVudSBsaSwgLm1haW4tbmF2aWdhdGlvbiAudG9wLWxldmVsOmZvY3VzIC5zdWItbWVudSBsaSwgLm1haW4tbmF2aWdhdGlvbiAudG9wLWxldmVsLm9wZW4gLnN1Yi1tZW51IGxpIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS10ZC1tZW51LXRyYW5zZm9ybSwgNTAwbXMpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmZvb3Rlci1uYXYgYSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG5uYXYucGFnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmcpLzM7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNpdGUtZm9vdGVyIG5hdiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogZGlzYztcbn1cblxuLnBpbGxzIC5waWxsIHtcbiAgcGFkZGluZzogdmFyKC0tX3AtcGlsbCwgdmFyKC0tc3BhY2UteHMpKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaGlkZGVuLXN2ZyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uZmlsbGVkLWljb24ge1xuICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XG4gIGNsaXAtcnVsZTogZXZlbm9kZDtcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbiAgc3Ryb2tlLW1pdGVybGltaXQ6IDI7XG4gIGZpbGw6IHZhcigtLWljb24tZmlsbCwgI2U0ZTRlNCk7XG59XG5cbi5zdHJva2VkLWljb24ge1xuICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XG4gIGNsaXAtcnVsZTogZXZlbm9kZDtcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcbiAgc3Ryb2tlLW1pdGVybGltaXQ6IDI7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0taWNvbi1zdHJva2UsICNlNGU0ZTQpO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cblxuc3ZnLmxvZ28ge1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuc3ZnLmxvZ28gcGF0aCB7XG4gIGZpbGw6IGluaGVyaXQ7XG59XG5zdmcubG9nbyB1c2Uge1xuICBmaWxsOiB2YXIoLS1icmFuZC1ibHVlKTtcbn1cblxuaW1nLFxudmlkZW8sXG5pZnJhbWUsXG5zdmcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuc3ZnIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaWNvbi1ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaWNvbi1ib3gtaW5saW5lIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNvbnRhY3QtYm94IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uY29udGFjdC1ib3ggc3ZnLFxuLmNvbnRhY3QtYm94IGZpZ3VyZSB7XG4gIGZsZXgtYmFzaXM6IDMwJTtcbiAgbWluLXdpZHRoOiB2YXIoLS1taXctY29udGFjdC1ib3gtaWNvbiwgMzBweCk7XG4gIG1heC13aWR0aDogdmFyKC0tbWF3LWNvbnRhY3QtYm94LWljb24sIDM1cHgpO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlLXhzKTtcbn1cblxuLmljb24ge1xuICB3aWR0aDogdmFyKC0taWNvbi1zaXplLCA0OHB4KTtcbiAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUsIDQ4cHgpO1xuICBtaW4td2lkdGg6IHZhcigtLWljb24tc2l6ZSwgNDhweCk7XG59XG5cbi5pY29uLXhzIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS14cywgMzJweCk7XG59XG5cbi5pY29uLTJ4cyB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUtMnhzLCAyOHB4KTtcbn1cblxuLmljb24tM3hzIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS0zeHMsIDI0cHgpO1xufVxuXG4uaWNvbi00eHMge1xuICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLTR4cywgMjBweCk7XG59XG5cbi5pY29uLTV4cyB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUtNXhzLCAxNnB4KTtcbn1cblxuLmljb24tcyB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUtcywgMzJweCk7XG59XG5cbi5pY29uLW0ge1xuICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLW0sIDQ4cHgpO1xufVxuXG4uaWNvbi1sIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS1sLCA2NHB4KTtcbn1cblxuLmljb24teGwge1xuICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLXhsLCA5NnB4KTtcbn1cblxuLmljb24tMnhsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS0yeGwsIDEyOHB4KTtcbn1cblxuLmljb24tM3hsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS0zeGwsIDE5MnB4KTtcbn1cblxuLmljb24tNHhsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS00eGwsIDI1NnB4KTtcbn1cblxuLnN0cm9rZS1zIHtcbiAgLS1zdHJva2Utd2lkdGg6IDEuM3B4O1xuICAtLXN0cm9rZS1saW5lam9pbjogbWl0ZXI7XG4gIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xufVxuXG4uc3Ryb2tlLW0ge1xuICAtLXN0cm9rZS13aWR0aDogMnB4O1xuICAtLXN0cm9rZS1saW5lam9pbjogbWl0ZXI7XG4gIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xufVxuXG4uc3Ryb2tlLWwge1xuICAtLXN0cm9rZS13aWR0aDogNHB4O1xuICAtLXN0cm9rZS1saW5lam9pbjogbWl0ZXI7XG4gIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xufVxuXG4uc3Ryb2tlLXhsIHtcbiAgLS1zdHJva2Utd2lkdGg6IDZweDtcbiAgLS1zdHJva2UtbGluZWpvaW46IG1pdGVyO1xuICAtLXN0cm9rZS1taXRlcmxpbWl0OiAxMDtcbn1cblxuLnN0cm9rZS0yeGwge1xuICAtLXN0cm9rZS13aWR0aDogOHB4O1xuICAtLXN0cm9rZS1saW5lam9pbjogbWl0ZXI7XG4gIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xufVxuXG4uYnV0dG9uIHN2ZyB7XG4gIC0taWNvbi1maWxsOiB2YXIoLS1jLWFjdGlvbik7XG4gIC0taWNvbi1zdHJva2U6IHZhcigtLWMtYWN0aW9uKTtcbn1cblxuLmlubGluZS1pY29ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5pY29uIHtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSwgMjRweCk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplLCAyNHB4KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1pY29uLXNpemUsIDI0cHgpO1xufVxuXG4uaWNvbi0tMTYge1xuICAtLWljb24tc2l6ZTogMTZweDtcbn1cblxuLmljb24tLTMyIHtcbiAgLS1pY29uLXNpemU6IDMycHg7XG59XG5cbi5pY29uLS00OCB7XG4gIC0taWNvbi1zaXplOiA0OHB4O1xufVxuXG4uaWNvbi0tNjQge1xuICAtLWljb24tc2l6ZTogNjRweDtcbn1cblxuLmljb24tLTk2IHtcbiAgLS1pY29uLXNpemU6IDk2cHg7XG59XG5cbi5pY29uLS0xMjgge1xuICAtLWljb24tc2l6ZTogMTI4cHg7XG59XG5cbi5pY29uLS0yNTYge1xuICAtLWljb24tc2l6ZTogMjU2cHg7XG59XG5cbi5tZWRpYS1zY3JvbGxlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGdyaWQtYXV0by1jb2x1bW5zOiB2YXIoLS1fY29sLXdpZHRoLCAyNSUpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZ2FwOiB2YXIoLS1fZ2FwLCB2YXIoLS1zcGFjZS1zKSk7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xufVxuLm1lZGlhLXNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGhlaWdodDogNnB4O1xuICB3aWR0aDogNnB4O1xufVxuLm1lZGlhLXNjcm9sbGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtZ3JheSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLnNuYXBzLWlubGluZSB7XG4gIHNjcm9sbC1zbmFwLXR5cGU6IGlubGluZSBtYW5kYXRvcnk7XG4gIHNjcm9sbC1wYWRkaW5nLWlubGluZTogdmFyKC0tc3BhY2UteHMpO1xufVxuLnNuYXBzLWlubGluZSA+ICoge1xuICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG59XG5cbi5zaW5nbGUtcG9zdCxcbi5zaW5nbGUtcG9zdC1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1zcGFjaW5nKSAvIDMpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItLWJyYW5kLWxpZ2h0Z3JheSk7XG59XG5cbi5yZWxhdGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnJlbGF0ZWQgLnNpbmdsZS1wb3N0LWxpc3Qge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWJhc2lzOiAzMyU7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ucmVsYXRlZCAuc2luZ2xlLXBvc3QtbGlzdCBmaWd1cmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2luZ2xlLXBvc3QtbGlzdCArIC5zaW5nbGUtcG9zdC1saXN0IHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAvIDMpO1xufVxuLnNpbmdsZS1wb3N0LWxpc3QgPiAqIHtcbiAgZmxleC1ncm93OiAxO1xufVxuLnNpbmdsZS1wb3N0LWxpc3QgZmlndXJlIHtcbiAgZmxleC1iYXNpczogNDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMjgwcHg7XG59XG4uc2luZ2xlLXBvc3QtbGlzdCBzZWN0aW9uLmNvbnRlbnQge1xuICBmbGV4LWJhc2lzOiA1MCU7XG4gIG1heC13aWR0aDogODBjaDtcbn1cbi5zaW5nbGUtcG9zdC1saXN0IC5yZWFkbW9yZSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNpemUtcGFkZGluZyk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1ldGEge1xuICBmbGV4LWJhc2lzOiAxMCU7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc2l6ZS1wYWRkaW5nKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNpemUtcGFkZGluZyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogMjBjaDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5zaW5nbGUtcG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uc2luZ2xlLXBvc3QgaGVhZGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxMCU7XG59XG4uc2luZ2xlLXBvc3QgYXNpZGUge1xuICBmbGV4LWJhc2lzOiAxMCU7XG59XG4uc2luZ2xlLXBvc3Qgc2VjdGlvbi5jb250ZW50IHtcbiAgZmxleC1iYXNpczogODAlO1xufVxuLnNpbmdsZS1wb3N0IGJsb2NrcXVvdGUge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgcGFkZGluZzogdmFyKC0tc2l6ZS1wYWRkaW5nKS8yIHZhcigtLXNpemUtcGFkZGluZyk7XG4gIG1heC13aWR0aDogODBjaDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8qKlxuICogIHN0eWxlcyBzaGFyZWQgYnkgYWxsIHNjcmVlbiBzaXplcyB3aXRob3V0IGdyaWQgc3VwcG9ydFxuICoqL1xuW2NsYXNzKj1ncmlkLV0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IHZhcigtLWdhcCwgMnJlbSk7XG59XG5cbi5jb250ZW50IHtcbiAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICBncmlkLXJvdzogYXV0bztcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLmdyaWQtLWhhbGYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IHZhcigtLWdhcCwgMXJlbSk7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLmdyaWQtLXRoaXJkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiB2YXIoLS1nYXAsIDFyZW0pO1xuICB9XG59XG5cbkBzdXBwb3J0cyAoY29udGFpbjogbGF5b3V0KSB7XG4gIC5jYXJkIHtcbiAgICBjb250YWluOiBsYXlvdXQ7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5ncmlkLS1yZXZlcnNlIDpmaXJzdC1jaGlsZCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbn1cblxuLmdyaWQtLXNpZGViYXIge1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInNpZGViYXIgY29udGVudFwiO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cblxuLnNraXAtbGluayB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgei1pbmRleDogMTAwMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1hY3Rpb24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UteHMpIHZhcigtLXNwYWNlLW0pO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5za2lwLWxpbms6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLnNpdGUtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjdzIGVhc2Utb3V0O1xuICB6LWluZGV4OiA5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhlYWRlciwgI2ZmZik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2UtbCk7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNwYWNlLXhsKTtcbn1cbi5zaXRlLWhlYWRlciAubG9nbyB7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIG1hcmdpbi1ibG9jazogMDtcbn1cbi5zaXRlLWhlYWRlciBpbWcge1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBhc3BlY3QtcmF0aW86IDIwMC81Nztcbn1cbi5zaXRlLWhlYWRlciAuaGVhZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhlYWRlcik7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc3BhY2UteGwpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZS14bCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2MHB4KSB7XG4gIC5zaXRlLWZvb3RlciB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxufVxuXG4uZGVzaWduZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZS14cywgMC41cmVtKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UteHMsIDAuNXJlbSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLXhzLCAwLjVyZW0pO1xufVxuLmRlc2lnbmVyIHN2ZyB7XG4gIGhlaWdodDogdmFyKC0taC1kZXNpZ25lci1sb2dvLCAxZW0pO1xuICB3aWR0aDogYXV0bztcbn0iLCIvKiBTZWxmIGhvc3RlZCBmb250cyAqL1xyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkNhbXB0b25cIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvY2FtcHRvbi1saWdodC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkNhbXB0b25cIjtcclxuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvY2FtcHRvbi1zZW1pYm9sZC13ZWJmb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbi8qICBTdHJ1Y3R1cmUgKi9cclxuJHNpemUtbW9iaWxlOiA3NjBweDtcclxuXHJcbjpyb290IHtcclxuICAgIC0tc2Nyb2xsLXBhZGRpbmc6IDY1cHg7XHJcbiAgICAtLXNpemUtb3V0ZXItY29udGFpbmVyOiAxMDBlbTtcclxuICAgIC0tc2l6ZS1jb250YWluZXItbWF4OiA5NXZ3O1xyXG4gICAgLS1zaXplLWNvbnRhaW5lci1kZWZhdWx0OiA1MGVtO1xyXG4gICAgLS1zaXplLWNvbnRhaW5lcjogdmFyKC0tc2l6ZS1jb250YWluZXItZGVmYXVsdCk7XHJcbiAgICAtLWgtaGVhZGVyLW1vYmlsZTogNTBweDtcclxuXHJcbiAgICAtLWMtd2hpdGU6IGhzbCgwLCAwJSwgMTAwJSk7XHJcbiAgICAtLWMtdGV4dDogaHNsKDAsIDAlLCA3JSk7XHJcblxyXG4gICAgLS1jLXByaW1hcnktaDogMDtcclxuICAgIC0tYy1wcmltYXJ5LXM6IDAlO1xyXG4gICAgLS1jLXByaW1hcnktbDogMCU7XHJcblxyXG4gICAgLS1jLXNlY29uZGFyeS1oOiAwO1xyXG4gICAgLS1jLXNlY29uZGFyeS1zOiAwJTtcclxuICAgIC0tYy1zZWNvbmRhcnktbDogMCU7XHJcblxyXG4gICAgLS1jLXByaW1hcnk6IGhzbChcclxuICAgICAgICB2YXIoLS1jLXByaW1hcnktaCksXHJcbiAgICAgICAgdmFyKC0tYy1wcmltYXJ5LXMpLFxyXG4gICAgICAgIHZhcigtLWMtcHJpbWFyeS1sKVxyXG4gICAgKTtcclxuICAgIC0tYy1zZWNvbmRhcnk6IGhzbChcclxuICAgICAgICB2YXIoLS1jLXNlY29uZGFyeS1oKSxcclxuICAgICAgICB2YXIoLS1jLXNlY29uZGFyeS1zKSxcclxuICAgICAgICB2YXIoLS1jLXNlY29uZGFyeS1sKVxyXG4gICAgKTtcclxuXHJcbiAgICAtLWJkLWlucHV0OiAxcHggc29saWQgI2NjYztcclxuICAgIC0tYy1hY2NlbnQ6IHZhcigtLWMtYWN0aW9uKTtcclxuICAgIC0tYy1jYXJldDogdmFyKC0tYy1hY3Rpb24pO1xyXG5cclxuICAgIC0tYmctaHI6ICNjY2M7XHJcbiAgICAtLWZ6LWJhc2U6IDE2cHg7XHJcbiAgICAtLWZ6LWJhc2UtbW9iaWxlOiAxNnB4O1xyXG5cclxuICAgIC0tbS1ib2R5OiAwO1xyXG4gICAgLS1wLWJvZHk6IDA7XHJcblxyXG4gICAgLS1iZy1zZWxlY3Rpb246ICNjY2M7XHJcbiAgICAtLWMtc2VsZWN0aW9uOiAjZmNmY2ZjO1xyXG5cclxuICAgIC0tYmctaGVhZGVyOiAjMTYyMzJlO1xyXG4gICAgLS1iZy1ib2R5OiAjZmZmO1xyXG4gICAgLS1pY29uLWZpbGw6ICNjY2M7XHJcblxyXG4gICAgLS1iZ2Mtc2Nyb2xsYmFyOiAjY2NjO1xyXG5cclxuICAgIC0tdGQtbWVudS10cmFuc2Zvcm06IDUwMG1zO1xyXG4gICAgLS10ZC1tZW51LWJveC1zaGFkb3c6IDMwMG1zO1xyXG5cclxuICAgIC0tZmYtdGV4dDogXCJDYW1wdG9uXCI7XHJcbiAgICAtLWZmLWhlYWRpbmdzOiBcIkNhbXB0b25cIjtcclxuXHJcbiAgICAtLWMtYWN0aW9uLWg6IDUwO1xyXG4gICAgLS1jLWFjdGlvbi1zOiAxMDAlO1xyXG4gICAgLS1jLWFjdGlvbi1sOiA1MCU7XHJcbiAgICAtLWMtYWN0aW9uOiBoc2wodmFyKC0tYy1hY3Rpb24taCksIHZhcigtLWMtYWN0aW9uLXMpLCB2YXIoLS1jLWFjdGlvbi1sKSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgICAgc2NhbGUgMTM0MCBhdCAxNnB4XHJcbiAgICAgICAgMzIwcHggYXQgMTJweDtcclxuICAgICAqL1xyXG4gICAgLS1zdGVwLS0yOiBjbGFtcCgwLjYxcmVtLCBjYWxjKDAuNnJlbSArIDAuMDV2dyksIDAuNjRyZW0pO1xyXG4gICAgLS1zdGVwLS0xOiBjbGFtcCgwLjczcmVtLCBjYWxjKDAuNzFyZW0gKyAwLjExdncpLCAwLjhyZW0pO1xyXG4gICAgLS1zdGVwLTA6IGNsYW1wKDAuODhyZW0sIGNhbGMoMC44NHJlbSArIDAuMnZ3KSwgMXJlbSk7XHJcbiAgICAtLXN0ZXAtMTogY2xhbXAoMS4wNXJlbSwgY2FsYygwLjk5cmVtICsgMC4zMXZ3KSwgMS4yNXJlbSk7XHJcbiAgICAtLXN0ZXAtMjogY2xhbXAoMS4yNnJlbSwgY2FsYygxLjE3cmVtICsgMC40N3Z3KSwgMS41NnJlbSk7XHJcbiAgICAtLXN0ZXAtMzogY2xhbXAoMS41MXJlbSwgY2FsYygxLjM3cmVtICsgMC42OXZ3KSwgMS45NXJlbSk7XHJcbiAgICAtLXN0ZXAtNDogY2xhbXAoMS44MXJlbSwgY2FsYygxLjYycmVtICsgMC45OHZ3KSwgMi40NHJlbSk7XHJcbiAgICAtLXN0ZXAtNTogY2xhbXAoMi4xOHJlbSwgY2FsYygxLjlyZW0gKyAxLjM3dncpLCAzLjA1cmVtKTtcclxuXHJcbiAgICAtLWZ6LWgxOiB2YXIoLS1zdGVwLTUpO1xyXG4gICAgLS1mei1oMjogdmFyKC0tc3RlcC00KTtcclxuICAgIC0tZnotaDM6IHZhcigtLXN0ZXAtMyk7XHJcbiAgICAtLWZ6LWg0OiB2YXIoLS1zdGVwLTIpO1xyXG4gICAgLS1mei1oNTogdmFyKC0tc3RlcC0xKTtcclxuICAgIC0tZnotc21hbGw6IHZhcigtLXN0ZXAtLTEpO1xyXG5cclxuICAgIC0tc3BhY2UtM3hzOiBjbGFtcCgwLjI1cmVtLCBjYWxjKDAuMjVyZW0gKyAwdncpLCAwLjI1cmVtKTtcclxuICAgIC0tc3BhY2UtMnhzOiBjbGFtcCgwLjQ0cmVtLCBjYWxjKDAuNDJyZW0gKyAwLjF2dyksIDAuNXJlbSk7XHJcbiAgICAtLXNwYWNlLXhzOiBjbGFtcCgwLjY5cmVtLCBjYWxjKDAuNjdyZW0gKyAwLjF2dyksIDAuNzVyZW0pO1xyXG4gICAgLS1zcGFjZS1zOiBjbGFtcCgwLjg4cmVtLCBjYWxjKDAuODRyZW0gKyAwLjJ2dyksIDFyZW0pO1xyXG4gICAgLS1zcGFjZS1tOiBjbGFtcCgxLjMxcmVtLCBjYWxjKDEuMjVyZW0gKyAwLjI5dncpLCAxLjVyZW0pO1xyXG4gICAgLS1zcGFjZS1sOiBjbGFtcCgxLjc1cmVtLCBjYWxjKDEuNjdyZW0gKyAwLjM5dncpLCAycmVtKTtcclxuICAgIC0tc3BhY2UteGw6IGNsYW1wKDIuNjNyZW0sIGNhbGMoMi41MXJlbSArIDAuNTl2dyksIDNyZW0pO1xyXG4gICAgLS1zcGFjZS0yeGw6IGNsYW1wKDMuNXJlbSwgY2FsYygzLjM0cmVtICsgMC43OHZ3KSwgNHJlbSk7XHJcbiAgICAtLXNwYWNlLTN4bDogY2xhbXAoNS4yNXJlbSwgY2FsYyg1LjAxcmVtICsgMS4xOHZ3KSwgNnJlbSk7XHJcblxyXG4gICAgLyogT25lLXVwIHBhaXJzICovXHJcbiAgICAtLXNwYWNlLTN4cy0yeHM6IGNsYW1wKDAuMjVyZW0sIGNhbGMoMC4xN3JlbSArIDAuMzl2dyksIDAuNXJlbSk7XHJcbiAgICAtLXNwYWNlLTJ4cy14czogY2xhbXAoMC40NHJlbSwgY2FsYygwLjM0cmVtICsgMC40OXZ3KSwgMC43NXJlbSk7XHJcbiAgICAtLXNwYWNlLXhzLXM6IGNsYW1wKDAuNjlyZW0sIGNhbGMoMC41OXJlbSArIDAuNDl2dyksIDFyZW0pO1xyXG4gICAgLS1zcGFjZS1zLW06IGNsYW1wKDAuODhyZW0sIGNhbGMoMC42OHJlbSArIDAuOTh2dyksIDEuNXJlbSk7XHJcbiAgICAtLXNwYWNlLW0tbDogY2xhbXAoMS4zMXJlbSwgY2FsYygxLjFyZW0gKyAxLjA4dncpLCAycmVtKTtcclxuICAgIC0tc3BhY2UtbC14bDogY2xhbXAoMS43NXJlbSwgY2FsYygxLjM2cmVtICsgMS45NnZ3KSwgM3JlbSk7XHJcbiAgICAtLXNwYWNlLXhsLTJ4bDogY2xhbXAoMi42M3JlbSwgY2FsYygyLjE5cmVtICsgMi4xNnZ3KSwgNHJlbSk7XHJcbiAgICAtLXNwYWNlLTJ4bC0zeGw6IGNsYW1wKDMuNXJlbSwgY2FsYygyLjcycmVtICsgMy45MnZ3KSwgNnJlbSk7XHJcblxyXG4gICAgLyogQ3VzdG9tIHBhaXJzICovXHJcbiAgICAtLXNwYWNlLXMtbDogY2xhbXAoMC44OHJlbSwgY2FsYygwLjUycmVtICsgMS43NnZ3KSwgMnJlbSk7XHJcblxyXG4gICAgLS1nYXA6IHZhcigtLXNwYWNlLW0pO1xyXG4gICAgLS13LXdpZGdldDogMTVyZW07XHJcblxyXG4gICAgLS1ieHNoLWJhc2U6IDAgMCAyMHB4IGhzbCgwIDAlIDAlIC8gMC4xKTtcclxufVxyXG4iLCJAbGF5ZXIgd2FybmluZ3Mge1xyXG5cclxuICAgIGZpZ3VyZVthcmlhLWxhYmVsXTpub3QoOmhhcyhmaWdjYXB0aW9uKSkge1xyXG4gICAgICAgIG91dGxpbmU6IHZhcigtLXdhcm5pbmctb3V0bGluZSk7XHJcbiAgICAgICAgLS13YXJuaW5nLWZpZ3VyZS1sYWJlbC1ub3QtdmlzaWJsZTogJ1RoZSBsYWJlbGluZyBtZXRob2QgdXNlZCBpcyBub3QgdmlzaWJsZSBhbmQgb25seSBhdmFpbGFibGUgdG8gYXNzaXN0aXZlIHNvZnR3YXJlJztcclxuICAgIH1cclxuXHJcbiAgICBmaWd1cmVbYXJpYS1sYWJlbF0gZmlnY2FwdGlvbiB7XHJcbiAgICAgICAgb3V0bGluZTogdmFyKC0td2FybmluZy1vdXRsaW5lKTtcclxuICAgICAgICAtLXdhcm5pbmctb3ZlcnJpZGRlbi1maWdjYXB0aW9uOiAnVGhlIGZpZ3VyZSBoYXMgYSBmaWdjYXB0aW9uIHRoYXQgaXMgb3ZlcnJpZGRlbiBieSBhbiBBUklBIGxhYmVsJztcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBsYXllciBlcnJvcnMge1xyXG5cclxuICAgIGZpZ2NhcHRpb246bm90KGZpZ3VyZSA+IGZpZ2NhcHRpb24pIHtcclxuICAgICAgICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcclxuICAgICAgICAtLWVycm9yLWZpZ2NhcHRpb24tbm90LWNoaWxkOiAnVGhlIGZpZ2NhcHRpb24gaXMgbm90IGEgZGlyZWN0IGNoaWxkIG9mIGEgZmlndXJlJztcclxuICAgIH1cclxuXHJcbiAgICBmaWdjYXB0aW9uOmVtcHR5IHtcclxuICAgICAgICBwYWRkaW5nOiAwLjVleDsgLyogZ2l2ZSBpdCBzb21lIHB1cmNoYXNlICovXHJcbiAgICAgICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XHJcbiAgICAgICAgLS1lcnJvci1maWdjYXB0aW9uLWVtcHR5OiAnVGhlIGZpZ2NhcHRpb24gaXMgZW1wdHknO1xyXG4gICAgfVxyXG5cclxuICAgIGZpZ3VyZTpub3QoOmlzKFthcmlhLWxhYmVsXSwgW2FyaWEtbGFiZWxsZWRieV0pKTpub3QoOmhhcyhmaWdjYXB0aW9uKSkge1xyXG4gICAgICAgIG91dGxpbmU6IHZhcigtLWVycm9yLW91dGxpbmUpO1xyXG4gICAgICAgIC0tZXJyb3Itbm8tZmlndXJlLWxhYmVsOiAnVGhlIGZpZ3VyZSBpcyBub3QgbGFiZWxlZCBieSBhbnkgYXBwbGljYWJsZSBtZXRob2QnO1xyXG4gICAgfVxyXG5cclxuICAgIGZpZ3VyZSA+IGZpZ2NhcHRpb24gfiBmaWdjYXB0aW9uIHtcclxuICAgICAgICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcclxuICAgICAgICAtLWVycm9yLW11bHRpcGxlLWZpZ2NhcHRpb25zOiAnVGhlcmUgYXJlIHR3byBmaWdjYXB0aW9ucyBmb3Igb25lIGZpZ3VyZSc7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ib2R5IDpub3QoOmlzKGhlYWRlcixuYXYsbWFpbixhc2lkZSxmb290ZXIpKTpub3QoOmlzKGhlYWRlcixuYXYsbWFpbixhc2lkZSxmb290ZXIpICopOm5vdCguc2tpcC1saW5rKSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcclxuICAgIC0tZXJyb3ItY29udGVudC1vdXRzaWRlLWxhbmRtYXJrOiAnWW91IGhhdmUgc29tZSBjb250ZW50IHRoYXQgaXMgbm90IGluc2lkZSBhIGxhbmRtYXJrIChoZWFkZXIsIG5hdiwgbWFpbiwgYXNpZGUsIG9yIGZvb3RlciknO1xyXG59XHJcblxyXG5vbFtjbGFzcyo9XCJicmVhZGNydW1iXCJdOm5vdCg6aXMobmF2W2FyaWEtbGFiZWxdLCBuYXZbYXJpYS1sYWJlbGxlZGJ5XSkgb2wpIHtcclxuICAgIG91dGxpbmU6IHZhcigtLWVycm9yLW91dGxpbmUpO1xyXG4gICAgLS1lcnJvci11bmRpc2NvdmVyYWJsZS1icmVhZGNydW1iczogJ0l0IGxvb2tzIGxpa2UgeW91IGhhdmUgcHJvdmlkZWQgYnJlYWRjcnVtYiBuYXZpZ2F0aW9uIG91dHNpZGUgYSBsYWJlbGVkIGA8bmF2PmAgbGFuZG1hcmsnO1xyXG59XHJcblxyXG5oZWFkZXIgbmF2Omhhcyh1bCA+IHVsKSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS13YXJuaW5nLW91dGxpbmUpO1xyXG4gICAgLS13YXJuaW5nLW5lc3RlZC1uYXZpZ2F0aW9uOiAnWW91IGFwcGVhciB0byBiZSB1c2luZyB0aWVyZWQvbmVzdGVkIG5hdmlnYXRpb24gaW4geW91ciBoZWFkZXIuIFRoaXMgY2FuIGJlIGRpZmZpY3VsdCB0byB0cmF2ZXJzZS4gSW5kZXggcGFnZXMgd2l0aCB0YWJsZXMgb2YgY29udGVudCBhcmUgcHJlZmVyYWJsZS4nO1xyXG4gIH1cclxuXHJcbjppcyhkaXYgPiBkaXYgPiBkaXYgPiBkaXYgPiAqKSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS13YXJuaW5nLW91dGxpbmUpO1xyXG4gICAgLS13YXJuaW5nLWRpdml0aXM6ICdUaGVyZeKAmXMgYSB3aG9sZSBsb3Qgb2YgbmVzdGluZyBnb2luZyBvbiBoZXJlLiBJcyBpdCBuZWVkZWQgdG8gYWNoaWV2ZSB0aGUgbGF5b3V0PyAoaXQgaXMgbm90KSc7XHJcbn1cclxuXHJcbmE6bm90KFtocmVmXSkge1xyXG4gICAgb3V0bGluZTogdmFyKC0tZXJyb3Itb3V0bGluZSk7XHJcbiAgICAtLWVycm9yOiAnVGhlIGxpbmsgZG9lcyBub3QgaGF2ZSBhbiBocmVmLiBEaWQgeW91IG1lYW4gdG8gdXNlIGEgPGJ1dHRvbj4/JztcclxufVxyXG5hW2hyZWZePVwiamF2YXNjcmlwdFwiXSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcclxuICAgIC0tZXJyb3ItamF2YXNjcmlwdC1ocmVmOiAnVGhlIGhyZWYgZG9lcyBub3QgYXBwZWFyIHRvIGluY2x1ZGUgYSBsb2NhdGlvbi4gRGlkIHlvdSBtZWFuIHRvIHVzZSBhIDxidXR0b24+Pyc7XHJcbn1cclxuXHJcbmFbZGlzYWJsZWRdIHtcclxuICAgIG91dGxpbmU6IHZhcigtLWVycm9yLW91dGxpbmUpO1xyXG4gICAgLS1lcnJvci1hbmNob3ItZGlzYWJsZWQ6ICdUaGUgZGlzYWJsZWQgcHJvcGVydHkgaXMgbm90IHZhbGlkIG9uIGFuY2hvcnMgKGxpbmtzKS4gRGlkIHlvdSBtZWFuIHRvIHVzZSBhIDxidXR0b24+Pyc7XHJcbn1cclxubGFiZWw6bm90KDpoYXMoOmlzKGlucHV0LG91dHB1dCx0ZXh0YXJlYSxzZWxlY3QpKSk6bm90KFtmb3JdKSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS1lcnJvci1vdXRsaW5lKTtcclxuICAgIC0tZXJyb3ItdW5hc3NvY2lhdGVkLWxhYmVsOiAnVGhlIDxsYWJlbD4gbmVpdGhlciB1c2VzIHRoZSBgZm9yYCBhdHRyaWJ1dGUgbm9yIHdyYXBzIGFuIGFwcGxpY2FibGUgZm9ybSBlbGVtZW50J1xyXG59XHJcbmlucHV0Om5vdChmb3JtIGlucHV0KSB7XHJcbiAgICBvdXRsaW5lOiB2YXIoLS13YXJuaW5nLW91dGxpbmUpO1xyXG4gICAgLS1lcnJvci1pbnB1dC1vcnBoYW46ICdUaGUgaW5wdXQgaXMgb3V0c2lkZSBhIDxmb3JtPiBlbGVtZW50LiBVc2VycyBtYXkgYmVuZWZpdCBmcm9tIDxmb3JtPiBzZW1hbnRpY3MgYW5kIGJlaGF2aW9ycy4nXHJcbn0iLCJAa2V5ZnJhbWVzIGNoZXZyb24taW4ge1xyXG4gICAgLy8gNDAlIHtcclxuICAgIC8vICAgICBjbGlwLXBhdGg6IGNpcmNsZSg1MCUgYXQgMCA1MCUpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIDEwMCUge1xyXG4gICAgICAgIGNsaXAtcGF0aDogY2lyY2xlKDExMS42JSBhdCAwIDUwJSk7XHJcbiAgICB9XHJcbn1cclxuQGtleWZyYW1lcyBjaGV2cm9uLW91dCB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoMTExLjYlIGF0IDAgNTAlKTtcclxuICAgIH1cclxuICAgIC8vIDYwJSB7XHJcbiAgICAvLyAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNTAlIGF0IDAgNTAlKTtcclxuICAgIC8vIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIGNsaXAtcGF0aDpjaXJjbGUoMCBhdCA5MCUgOTUlKTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBjaGV2cm9uLXRyYW5zaXRpb24ge1xyXG5cclxuICAgIDAlIHtcclxuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgMHB4LCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xyXG4gICAgfVxyXG4gICAgNTAlIHtcclxuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgICBjbGlwLXBhdGg6ICBwb2x5Z29uKDEwMCUgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDEwMCUgMTAwJSk7O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuQGtleWZyYW1lcyBzdGFydHtcclxuICBmcm9te1xyXG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTQwJSk7XHJcbiAgfVxyXG4gIHRve1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApXHJcbiAgfVxyXG59XHJcbkBrZXlmcmFtZXMgd3JpdGV7XHJcbiAgdG97XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDowO1xyXG4gIH1cclxufVxyXG5Aa2V5ZnJhbWVzIGZpbGxJbntcclxuICB0b3tcclxuICAgIGZpbGw6Y3VycmVudENvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi50cmFuc2l0aW9uLWZhZGUge1xyXG4gIHRyYW5zaXRpb246IDFzO1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbmh0bWwuaXMtYW5pbWF0aW5nIC50cmFuc2l0aW9uLWZhZGUge1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi5zcGxpdCAubGV0dGVye1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi5mYWRlLWluIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMnMgZWFzZS1vdXQ7XHJcblxyXG4gIC5pbi12aWV3ICYge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbi5mYWRlLWluLXpvb20ge1xyXG4gIHRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAycyBlYXNlLW91dCwgdHJhbnNmb3JtIDgwMG1zIGVhc2Utb3V0O1xyXG5cclxuICAuaW4tdmlldyAmLCYuaW4tdmlldyB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG4gIH1cclxufSIsIkBtaXhpbiBzaGFkb3coKSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMjRweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCA3cHggcmdiYSgwLCAwLCAwLCAwLjEpLFxyXG4gICAgICAgIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG59XHJcblxyXG5AbWl4aW4gaGlkZS1kZXNrdG9wKCkge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHNpemUtbW9iaWxlKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGhpZGUtbW9iaWxlKCkge1xyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNpemUtbW9iaWxlKSB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGNvbnRhaW5lcigpIHtcclxuICAgIHdpZHRoOiBtaW4odmFyKC0tc2l6ZS1jb250YWluZXIpLCA5NHZ3KTtcclxuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XHJcbn1cclxuXHJcbkBtaXhpbiByb3VuZC1idXR0b24oKSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBoZWlnaHQ6IDRyZW07XHJcbiAgICB3aWR0aDogNHJlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogcmVtKDEzcHgpO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcblxyXG5AbWl4aW4gdW5kZXJsaW5lKCkge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDRyZW07XHJcbiAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItdW5kZXJsaW5lKTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAtMnJlbTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gZG91YmxlQ2lyY2xlcygpIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgd2lkdGg6IDAuNHJlbTtcclxuICAgICAgICBoZWlnaHQ6IDAuNHJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjZmZmLCAwLjUpO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAtMnJlbTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwLjhyZW07XHJcbiAgICB9XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgdG9wOiAwLjdyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBjb250YWluZXIge1xyXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lcik7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lcikpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGJlZm9yZS1jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgID4gKiB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICY6YmVmb3JlLFxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgem9vbSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAzcHg7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0ZS1ib3JkZXIoKSB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XHJcbiAgICAgICAgYW5pbWF0aW9uOiB6b29tIDJzIGluZmluaXRlO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYWZ0KCkge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJhY2tncm91bmQ6ICM4ZGM2M2Y7XHJcbiAgICBoZWlnaHQ6IDJweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiA4MHB4O1xyXG4gICAgbGVmdDogMnJlbTtcclxuICAgIHRvcDogLTAuMjM0NTY3cmVtO1xyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uLXJlc2V0IHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBmb250OiBpbmhlcml0O1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuJWJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tcmVzZXQ7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1zZWNvbmRhcnkpO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCB2YXIoLS1jLXByaW1hcnkpO1xyXG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcpIC8gNSB2YXIoLS1zcGFjaW5nKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2Utb3V0O1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1wcmltYXJ5KTtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIHVuZGVybGluZS1saW5rKCRjb2xvcjogI2ZmZiwgJG92ZXI6ICRjb2xvcl9fYnJhbmRfcHJpbWFyeSkge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDk7XHJcbiAgICAmOjpiZWZvcmUsXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogcmVtKDJweCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG4gICAgfVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDFzO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvdmVyO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHVuZGVybGluZS1vdXQ7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjZzO1xyXG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XHJcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcbiAgICB9XHJcbiAgICAmOmhvdmVyOjphZnRlciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiB1bmRlcmxpbmU7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjZzO1xyXG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XHJcbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzdHJva2VkLXRleHQoKSB7XHJcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAxcHg7XHJcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcclxuICAgIHRleHQtc3Ryb2tlOiAxcHg7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5AbWl4aW4gc3RyaXBlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAmOjpiZWZvcmUsXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG4gICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAyJSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC41cyAwcywgdHJhbnNmb3JtIDAuNXMgMC41cztcclxuICAgIH1cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gICAgICAgIHdpZHRoOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG4kcmVtLWJhc2VsaW5lOiAxNnB4ICFkZWZhdWx0O1xyXG4kcmVtLWZhbGxiYWNrOiBmYWxzZSAhZGVmYXVsdDtcclxuJHJlbS1weC1vbmx5OiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiByZW0tc2VwYXJhdG9yKCRsaXN0LCAkc2VwYXJhdG9yOiBmYWxzZSkge1xyXG4gICAgQGlmICRzZXBhcmF0b3IgPT0gXCJjb21tYVwiIG9yICRzZXBhcmF0b3IgPT0gXCJzcGFjZVwiIHtcclxuICAgICAgICBAcmV0dXJuIGFwcGVuZCgkbGlzdCwgbnVsbCwgJHNlcGFyYXRvcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhcImxpc3Qtc2VwYXJhdG9yXCIpID09IHRydWUge1xyXG4gICAgICAgIEByZXR1cm4gbGlzdC1zZXBhcmF0b3IoJGxpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxpc3Qtc2VwYXJhdG9yIHBvbHlmaWxsIGJ5IEh1Z28gR2lyYXVkZWwgKGh0dHBzOi8vc2Fzcy1jb21wYXRpYmlsaXR5LmdpdGh1Yi5pby8jbGlzdF9zZXBhcmF0b3JfZnVuY3Rpb24pXHJcbiAgICAkdGVzdC1saXN0OiAoKTtcclxuICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgICAgICAkdGVzdC1saXN0OiBhcHBlbmQoJHRlc3QtbGlzdCwgJGl0ZW0sIHNwYWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIGlmKCR0ZXN0LWxpc3QgPT0gJGxpc3QsIHNwYWNlLCBjb21tYSk7XHJcbn1cclxuXHJcbkBtaXhpbiByZW0tYmFzZWxpbmUoJHpvb206IDEwMCUpIHtcclxuICAgIGZvbnQtc2l6ZTogJHpvb20gLyAxNnB4ICogJHJlbS1iYXNlbGluZTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbS1jb252ZXJ0KCR0bywgJHZhbHVlcy4uLikge1xyXG4gICAgJHJlc3VsdDogKCk7XHJcbiAgICAkc2VwYXJhdG9yOiByZW0tc2VwYXJhdG9yKCR2YWx1ZXMpO1xyXG5cclxuICAgIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgICAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09XHJcbiAgICAgICAgICAgIFwibnVtYmVyXCIgYW5kXHJcbiAgICAgICAgICAgIHVuaXQoJHZhbHVlKSA9PVxyXG4gICAgICAgICAgICBcInJlbVwiIGFuZFxyXG4gICAgICAgICAgICAkdG8gPT1cclxuICAgICAgICAgICAgXCJweFwiXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAkcmVzdWx0OiBhcHBlbmQoXHJcbiAgICAgICAgICAgICAgICAkcmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgJHZhbHVlIC8gMXJlbSAqICRyZW0tYmFzZWxpbmUgKyAwcHgsXHJcbiAgICAgICAgICAgICAgICAkc2VwYXJhdG9yXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBAZWxzZSBpZlxyXG4gICAgICAgICAgICB0eXBlLW9mKCR2YWx1ZSkgPT1cclxuICAgICAgICAgICAgXCJudW1iZXJcIiBhbmRcclxuICAgICAgICAgICAgdW5pdCgkdmFsdWUpID09XHJcbiAgICAgICAgICAgIFwicHhcIiBhbmRcclxuICAgICAgICAgICAgJHRvID09XHJcbiAgICAgICAgICAgIFwicmVtXCJcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdmFsdWUgLyAkcmVtLWJhc2VsaW5lICsgMHJlbSwgJHNlcGFyYXRvcik7XHJcbiAgICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gXCJsaXN0XCIge1xyXG4gICAgICAgICAgICAkdmFsdWUtc2VwYXJhdG9yOiByZW0tc2VwYXJhdG9yKCR2YWx1ZSk7XHJcbiAgICAgICAgICAgICR2YWx1ZTogcmVtLWNvbnZlcnQoJHRvLCAkdmFsdWUuLi4pO1xyXG4gICAgICAgICAgICAkdmFsdWU6IHJlbS1zZXBhcmF0b3IoJHZhbHVlLCAkdmFsdWUtc2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSwgJHNlcGFyYXRvcik7XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkdmFsdWUsICRzZXBhcmF0b3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIGlmKGxlbmd0aCgkcmVzdWx0KSA9PSAxLCBudGgoJHJlc3VsdCwgMSksICRyZXN1bHQpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCR2YWx1ZXMuLi4pIHtcclxuICAgIEBpZiAkcmVtLXB4LW9ubHkge1xyXG4gICAgICAgIEByZXR1cm4gcmVtLWNvbnZlcnQocHgsICR2YWx1ZXMuLi4pO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQHJldHVybiByZW0tY29udmVydChyZW0sICR2YWx1ZXMuLi4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gcmVtKCRwcm9wZXJ0aWVzLCAkdmFsdWVzLi4uKSB7XHJcbiAgICBAaWYgdHlwZS1vZigkcHJvcGVydGllcykgPT0gXCJtYXBcIiB7XHJcbiAgICAgICAgQGVhY2ggJHByb3BlcnR5IGluIG1hcC1rZXlzKCRwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlbSgkcHJvcGVydHksIG1hcC1nZXQoJHByb3BlcnRpZXMsICRwcm9wZXJ0eSkpO1xyXG4gICAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XHJcbiAgICAgICAgICAgIEBpZiAkcmVtLWZhbGxiYWNrIG9yICRyZW0tcHgtb25seSB7XHJcbiAgICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06IHJlbS1jb252ZXJ0KHB4LCAkdmFsdWVzLi4uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgbm90ICRyZW0tcHgtb25seSB7XHJcbiAgICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06IHJlbS1jb252ZXJ0KHJlbSwgJHZhbHVlcy4uLik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBncmlkKCRjb2x1bW5zLCAkZ2FwOiB2YXIoLS1nYXAsIDFyZW0pKSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2l6ZS1tb2JpbGUpIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCRjb2x1bW5zLCAxZnIpO1xyXG4gICAgICAgIGdhcDogJGdhcDtcclxuICAgIH1cclxufVxyXG4iLCIld3JhcHBlciB7XHJcbiAgICB3aWR0aDogbWluKHZhcigtLXNpemUtY29udGFpbmVyKSwgdmFyKC0tc2l6ZS1jb250YWluZXItbWF4KSk7XHJcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xyXG59XHJcblxyXG4lY29udGFjdC1saXN0IHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgICAgc3BhbixcclxuICAgICAgICBzdHJvbmcge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4laW5wdXQge1xyXG4gICAgcGFkZGluZzogMC41ZW07XHJcbiAgICBib3JkZXI6IHZhcigtLWJkLWlucHV0LCAjY2NjKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAxcztcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1iZC1pbnB1dC1hY3RpdmUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4lYnV0dG9uLWJhc2Uge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbiVib3gtYmFzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAyMXB4IHJnYmEoMCwgMCwgMCwgMC4wOSk7XHJcbn1cclxuXHJcbiV1bmRlcmxpbmUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygodmFyKC0tc3BhY2luZykgLyAyKSk7XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycmVtO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICAgICAgYm90dG9tOiAtMS40NXJlbTtcclxuICAgICAgICB3aWR0aDogNHJlbTtcclxuICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbiV2aXN1YWxseS1oaWRkZW4ge1xyXG4gICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xyXG4gICAgaGVpZ2h0OiAxcHg7XHJcbiAgICB3aWR0aDogMXB4O1xyXG4gICAgbWFyZ2luOiAtMXB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbiV3cmFwcGVyLWdyaWQge1xyXG4gICAgLS1wYWRkaW5nLWlubGluZTogdmFyKC0tc3BhY2UtcywgMXJlbSk7XHJcbiAgICAtLWNvbnRlbnQtbWF4LXdpZHRoOiB2YXIoLS1zaXplLWNvbnRhaW5lciwgODBlbSk7XHJcbiAgICAtLWJyZWFrb3V0LW1heC13aWR0aDogdmFyKC0tc2l6ZS1jb250YWluZXItbWF4LCAxMDBlbSk7XHJcbiAgICAtLWJyZWFrb3V0LXNpemU6IGNhbGMoXHJcbiAgICAgICAgdmFyKC0tYnJlYWtvdXQtbWF4LXdpZHRoKSAvIDIgLSB2YXIoLS1jb250ZW50LW1heC13aWR0aCkgLyAyXHJcbiAgICApO1xyXG5cclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6XHJcbiAgICAgICAgW2Z1bGwtd2lkdGgtc3RhcnRdIG1pbm1heCh2YXIoLS1wYWRkaW5nLWlubGluZSksIDFmcilcclxuICAgICAgICBbYnJlYWtvdXQtc3RhcnRdIG1pbm1heCgwLCB2YXIoLS1icmVha291dC1zaXplKSlcclxuICAgICAgICBbY29udGVudC1zdGFydF0gbWluKFxyXG4gICAgICAgICAgICAxMDAlIC0gdmFyKC0tcGFkZGluZy1pbmxpbmUpICogMixcclxuICAgICAgICAgICAgdmFyKC0tY29udGVudC1tYXgtd2lkdGgpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIFtjb250ZW50LWVuZF0gbWlubWF4KDAsIHZhcigtLWJyZWFrb3V0LXNpemUpKSBbYnJlYWtvdXQtZW5kXSBtaW5tYXgoXHJcbiAgICAgICAgICAgIHZhcigtLXBhZGRpbmctaW5saW5lKSxcclxuICAgICAgICAgICAgMWZyXHJcbiAgICAgICAgKVxyXG4gICAgICAgIFtmdWxsLXdpZHRoLWVuZF07XHJcbn1cclxuXHJcbiVjb250ZW50LWdyaWQge1xyXG4gICAgLS1nYXA6IGNsYW1wKDFyZW0sIDZ2dywgM3JlbSk7XHJcbiAgICAtLWZ1bGw6IG1pbm1heCh2YXIoLS1nYXApLCAxZnIpO1xyXG4gICAgLS1jb250ZW50OiBtaW4oNTBjaCwgMTAwJSAtIHZhcigtLWdhcCkgKiAyKTtcclxuICAgIC0tcG9wb3V0OiBtaW5tYXgoMCwgMnJlbSk7XHJcbiAgICAtLWZlYXR1cmU6IG1pbm1heCgwLCA1cmVtKTtcclxuXHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxyXG4gICAgICAgIFtmdWxsLXN0YXJ0XSB2YXIoLS1mdWxsKVxyXG4gICAgICAgIFtmZWF0dXJlLXN0YXJ0XSB2YXIoLS1mZWF0dXJlKVxyXG4gICAgICAgIFtwb3BvdXQtc3RhcnRdIHZhcigtLXBvcG91dClcclxuICAgICAgICBbY29udGVudC1zdGFydF0gdmFyKC0tY29udGVudCkgW2NvbnRlbnQtZW5kXVxyXG4gICAgICAgIHZhcigtLXBvcG91dCkgW3BvcG91dC1lbmRdXHJcbiAgICAgICAgdmFyKC0tZmVhdHVyZSkgW2ZlYXR1cmUtZW5kXVxyXG4gICAgICAgIHZhcigtLWZ1bGwpIFtmdWxsLWVuZF07XHJcbn1cclxuXHJcbi8vIHVzZWQgc29tZSBjb2RlIGZyb21cclxuLy8gaHR0cHM6Ly9zbW9sY3NzLmRldi9cclxuXHJcbiVzdGFjay1sYXlvdXQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwic3RhY2tcIjtcclxuXHJcbiAgICBhc3BlY3QtcmF0aW86IHZhcigtLXN0YWNrLWFzcGVjdC1yYXRpbywgMTYvOSk7XHJcblxyXG4gICAgJiA+ICoge1xyXG4gICAgICAgIGdyaWQtYXJlYTogc3RhY2s7XHJcbiAgICB9XHJcbn1cclxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xyXG5cclxuLyogRG9jdW1lbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cclxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXHJcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxufVxyXG5cclxuLyogU2VjdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cclxuICovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICovXHJcblxyXG5hcnRpY2xlLFxyXG5hc2lkZSxcclxuZm9vdGVyLFxyXG5oZWFkZXIsXHJcbm5hdixcclxuc2VjdGlvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXHJcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuaDEge1xyXG4gIGZvbnQtc2l6ZTogMmVtO1xyXG4gIG1hcmdpbjogMC42N2VtIDA7XHJcbn1cclxuXHJcbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXHJcbiAqL1xyXG5cclxuZmlnY2FwdGlvbixcclxuZmlndXJlLFxyXG5tYWluIHsgLyogMSAqL1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxyXG4gKi9cclxuXHJcbmZpZ3VyZSB7XHJcbiAgbWFyZ2luOiAxZW0gNDBweDtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXHJcbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gKi9cclxuXHJcbmhyIHtcclxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xyXG4gIGhlaWdodDogMDsgLyogMSAqL1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxucHJlIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxyXG4gKi9cclxuXHJcbmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXHJcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxyXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmFiYnJbdGl0bGVdIHtcclxuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxyXG4gKi9cclxuXHJcbmIsXHJcbnN0cm9uZyB7XHJcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmIsXHJcbnN0cm9uZyB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuY29kZSxcclxua2JkLFxyXG5zYW1wIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxyXG4gKi9cclxuXHJcbmRmbiB7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxyXG4gKi9cclxuXHJcbm1hcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XHJcbiAgY29sb3I6ICMwMDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zbWFsbCB7XHJcbiAgZm9udC1zaXplOiA4MCU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cclxuICogYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuICBmb250LXNpemU6IDc1JTtcclxuICBsaW5lLWhlaWdodDogMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG5zdWIge1xyXG4gIGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuc3VwIHtcclxuICB0b3A6IC0wLjVlbTtcclxufVxyXG5cclxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxyXG4gKi9cclxuXHJcbmF1ZGlvLFxyXG52aWRlbyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cclxuICovXHJcblxyXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXHJcbiAqL1xyXG5cclxuaW1nIHtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICovXHJcblxyXG5zdmc6bm90KDpyb290KSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLyogRm9ybXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxyXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXHJcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXHJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICAvLyBtYXJnaW46IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxyXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQgeyAvKiAxICovXHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuc2VsZWN0IHsgLyogMSAqL1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXHJcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cclxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cclxuW3R5cGU9XCJyZXNldFwiXSxcclxuW3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cclxuICovXHJcblxyXG5idXR0b246LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XHJcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXHJcbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcclxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xyXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xyXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICovXHJcblxyXG5wcm9ncmVzcyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cclxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cclxuICovXHJcblxyXG5bdHlwZT1cImNoZWNrYm94XCJdLFxyXG5bdHlwZT1cInJhZGlvXCJdIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgcGFkZGluZzogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gKi9cclxuXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxyXG4gKi9cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxyXG4gKi9cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxyXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4gKi9cclxuXHJcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXHJcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBJbnRlcmFjdGl2ZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cclxuICovXHJcblxyXG5kZXRhaWxzLCAvKiAxICovXHJcbm1lbnUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc3VtbWFyeSB7XHJcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG59XHJcblxyXG4vKiBTY3JpcHRpbmdcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cclxuICovXHJcblxyXG5jYW52YXMge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxyXG4gKi9cclxuXHJcbnRlbXBsYXRlIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKiBIaWRkZW5cclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXHJcbiAqL1xyXG5cclxuW2hpZGRlbl0ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn0iLCIqIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbio6OnNlbGVjdGlvbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1zZWxlY3Rpb24sICNmY2ZjZmMpO1xyXG4gICAgY29sb3I6IHZhcigtLWMtc2VsZWN0aW9uLCAjZmZmKTtcclxufVxyXG5cclxuOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogMC42cmVtO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZDtcclxufVxyXG5cclxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZ2Mtc2Nyb2xsYmFyKTtcclxufVxyXG5cclxuaHRtbCB7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xyXG4gICAgc2Nyb2xsLXBhZGRpbmctdG9wOiB2YXIoLS1zY3JvbGwtcGFkZGluZywgNjVweCk7XHJcbiAgICBoYW5naW5nLXB1bmN0dWF0aW9uOiBmaXJzdCBsYXN0O1xyXG4gICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xyXG59XHJcblxyXG5odG1sLFxyXG5ib2R5IHtcclxuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYmdjLXNjcm9sbGJhcikgdmFyKC0tYmctYm9keSk7XHJcbiAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYm9keSk7XHJcbiAgICBmb250LWZhbWlseTogdmFyKC0tZmYtdGV4dCk7XHJcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcclxuICAgIHBhZGRpbmc6IHZhcigtLXAtYm9keSwgMCk7XHJcbiAgICBtYXJnaW46IHZhcigtLW0tYm9keSwgMCk7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZ6LWJhc2UpO1xyXG5cclxuICAgICYudG9nZ2xlZCB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5ncmlkLXJlc3BvbnNpdmUge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLW4sMyksMWZyKTtcclxuICAgIGdhcDogMTBweDtcclxuICAgIEBtZWRpYSAod2lkdGggPCA4MDBweCkge1xyXG4gICAgICAtLW46IDI7XHJcbiAgICB9XHJcbiAgICBAbWVkaWEgKHdpZHRoIDwgNDAwcHgpIHtcclxuICAgICAgLS1uOiAxO1xyXG4gICAgfVxyXG59XHJcblxyXG46YW55LWxpbmt7XHJcbiAgICAvLyBzdHlsZSBqdXN0IGxpbmtzIHRoYXQgaGF2ZSBhIGhyZWYgYXR0cmlidXRlXHJcbn1cclxuXHJcbmE6bm90KFtjbGFzc10pIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNHM7XHJcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xyXG5cclxuICAgIGgxICYsXHJcbiAgICBoMiAmLFxyXG4gICAgaDMgJixcclxuICAgIGg0ICYsXHJcbiAgICBoNSAmLFxyXG4gICAgaDYgJiB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiBoc2wodmFyKC0tYy1hY3Rpb24taCksIHZhcigtLWMtYWN0aW9uLXMpLCB2YXIoLS1jLWFjdGlvbi1sKSk7XHJcbiAgICAgICAgLS1pY29uLWZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgICAgICAtLWljb24tc3Ryb2tlOiBjdXJyZW50Q29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbmEge1xyXG4gICAgY29sb3I6IHZhcigtLWMtbGluayk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbmE6aG92ZXIge1xyXG4gICAgY29sb3I6IHZhcigtLWMtbGluay1ob3Zlcik7XHJcbn1cclxuXHJcbmZpZ3VyZSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5ociB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1ociwgI2NjYyk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBoZWlnaHQ6IDFweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZmxleC1iYXNpczogMTAwJTtcclxufVxyXG4iLCIuY29yZV9sb2FkZXItb3ZlcmxheSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgLjNzO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcclxuICAgIHotaW5kZXg6IC0xO1xyXG5cclxuICAgIHN2ZyBwYXRoIHtcclxuICAgICAgICBmaWxsOiBpbmhlcml0O1xyXG4gICAgfVxyXG5cclxuICAgIHVzZSB7XHJcbiAgICAgICAgZmlsbDogdmFyKC0tYnJhbmQtYmx1ZSlcclxuICAgIH1cclxuXHJcbiAgICAmLi1yZW1vdmVkIHtcclxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHotaW5kZXg6IC0xO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAmLi1zaG93IHtcclxuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC41cztcclxuICAgIH1cclxuXHJcbiAgICAmLi1mcm9udCB7XHJcbiAgICAgICAgei1pbmRleDogOTk5OTtcclxuXHJcbiAgICAgICAgLmxvYWRlcl9pbWFnZSBzdmcge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubG9hZGVyX2ltYWdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cywgdHJhbnNmb3JtIDFzO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGF0aHtcclxuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHN0cm9rZS1kYXNoYXJyYXksIHN0cm9rZS1kYXNob2Zmc2V0O1xyXG4gICAgICAgICAgICBzdHJva2U6I2ZmZjtcclxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHNxdWFyZTtcclxuICAgICAgICAgICAgZmlsbDogdmFyKC0tYnJhbmQtYmx1ZSk7XHJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aDowO1xyXG4gICAgICAgICAgICBhbmltYXRpb246IHdyaXRlIDIuNXMgZWFzZS1vdXQsIGZpbGxJbiAxcyBjdWJpYy1iZXppZXIoMCwuNSwxLC41KTtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxcywgM3M7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO1xyXG4gICAgICAgICAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xyXG5cclxuICAgICAgICAgICAgJi5vcmFuZ2V7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI0U5NUUxRDtcclxuICAgICAgICAgICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4iLCIuc2NyZWVuLXJlYWRlci10ZXh0IHtcclxuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcclxuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcclxuICAgIGhlaWdodDogMXB4O1xyXG4gICAgd2lkdGg6IDFweDtcclxuICAgIG1hcmdpbjogLTFweDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICAgIHRleHQtd3JhcDogYmFsYW5jZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1oZWFkaW5ncywgY3VycmVudENvbG9yKTtcclxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1oZWFkaW5ncyk7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG59XHJcblxyXG5oMSB7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZ6LWgxKTtcclxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1oMSwgMS4xKTtcclxufVxyXG5cclxuaDIge1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mei1oMik7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDIsIDEuMSk7XHJcbn1cclxuXHJcbmgzIHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnotaDMpO1xyXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWgzLCAxLjEpO1xyXG59XHJcblxyXG5oNCB7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZ6LWg0KTtcclxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1oNCwgMS4xKTtcclxufVxyXG5cclxuaDUge1xyXG4gICAgZm9udC1zaXplOiB2YXIoLS1mei1oNSk7XHJcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtaDUsIDEuMSk7XHJcbn1cclxuXHJcbmg2IHtcclxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnotaDYpO1xyXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLWg2LCAxLjEpO1xyXG59XHJcblxyXG5zbWFsbCB7XHJcbiAgICBmb250LXNpemU6IHZhcigtLWZ6LXNtYWxsKTtcclxufVxyXG5cclxucCxcclxudWwsXHJcbm9sLFxyXG5kbCxcclxuYmxvY2txdW90ZSxcclxuZmlndXJlLFxyXG50YWJsZSxcclxuaHIge1xyXG4gICAgdGV4dC13cmFwOiBwcmV0dHk7XHJcbn1cclxuXHJcbi5mbG93ID4gKiArICoge1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tZmxvdy1zcGFjZSwgMS41ZW0pO1xyXG59XHJcblxyXG51bCxcclxub2wge1xyXG4gICAgJltjbGFzc10ge1xyXG4gICAgICAgIG1hcmdpbjogdmFyKC0tX20sMCk7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3AsMCk7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIH1cclxuICAgIC8vIGlmIG5vdGhpbmcgaW4gdGhlIGxpc3QsIGhpZGUgaXRcclxuICAgICY6ZW1wdHl7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLnRleHQtY29sdW1uc3tcclxuICBjb2x1bW5zOiAyMDBweCAyO1xyXG4gIGNvbHVtbi1nYXA6IDFlbTtcclxuICBjb2x1bW4tcnVsZTogMXB4IGRhc2hlZCB2YXIoLS1jLWhyKTtcclxufVxyXG5cclxuQGNvdW50ZXItc3R5bGUgZW1vamktbGlzdCB7XHJcbiAgICBzeXN0ZW06IGN5Y2xpYztcclxuICAgIHN5bWJvbHM6IPCfjY4g8J+NiiDwn42LIPCfjYwg8J+NiSDwn42HIPCfjZMg8J+NiDtcclxuICAgIHN1ZmZpeDogXCIgXCI7XHJcbn1cclxuXHJcbm9sLmVtb2ppLWxpc3Qge1xyXG4gICAgbGlzdC1zdHlsZTogZW1vamktbGlzdDtcclxufVxyXG5cclxuZGV0YWlscyB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1heC1pbmxpbmUtc2l6ZTogNjBjaDtcclxufVxyXG5cclxuc3VtbWFyeSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuZGV0YWlsczo6ZGV0YWlscy1jb250ZW50IHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRibG9jay1zaXplOiAwO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYmxvY2stc2l6ZSwgY29udGVudC12aXNpYmlsaXR5O1xyXG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XHJcblx0dHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XHJcbn1cclxuXHJcbmRldGFpbHNbb3Blbl06OmRldGFpbHMtY29udGVudCB7XHJcblx0YmxvY2stc2l6ZTogYXV0bztcclxuXHQvLyBibG9jay1zaXplOiBjYWxjLXNpemUoYXV0bywgc2l6ZSk7XHJcbn1cclxuXHJcbnN1bW1hcnk6Om1hcmtlciB7XHJcblx0Y29udGVudDogJ8K7JztcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG59XHJcbnN1bW1hcnk6OmJlZm9yZSB7XHJcblx0Y29udGVudDogJ8K7JztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0aW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xyXG5cdGluc2V0LWJsb2NrLXN0YXJ0OiAtMC4wNXJlbTtcclxuXHR0cmFuc2l0aW9uOiByb3RhdGUgMC4ycztcclxuICAgIGxlZnQ6IC0xcmVtO1xyXG59XHJcblxyXG5kZXRhaWxzW29wZW5dIHN1bW1hcnk6OmJlZm9yZSB7XHJcblx0cm90YXRlOiA5MGRlZztcclxuXHRpbnNldC1ibG9jay1zdGFydDogMC4wNXJlbTtcclxufSIsImJ1dHRvbixcclxuaW5wdXQsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxuICAgIGhhbmdpbmctcHVuY3R1YXRpb246IG5vbmU7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLW11dGVkKTtcclxuICAgIH1cclxufVxyXG5cclxubGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogdmFyKC0tYy1sYWJlbCk7XHJcblxyXG4gICAgJi5sZWdhbCB7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1mei1zbWFsbCk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtbXV0ZWQsICNjY2MpO1xyXG5cclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmlucHV0IHtcclxuICAgICZbdHlwZT1cInRleHRcIl0sXHJcbiAgICAmW3R5cGU9XCJwYXNzd29yZFwiXSxcclxuICAgICZbdHlwZT1cInBob25lXCJdLFxyXG4gICAgJlt0eXBlPVwidGVsXCJdLFxyXG4gICAgJlt0eXBlPVwibnVtYmVyXCJdLFxyXG4gICAgJlt0eXBlPVwic2VhcmNoXCJdLFxyXG4gICAgJlt0eXBlPVwidXJsXCJdLFxyXG4gICAgJlt0eXBlPVwiZGF0ZVwiXSxcclxuICAgICZbdHlwZT1cIm1vbnRoXCJdLFxyXG4gICAgJlt0eXBlPVwid2Vla1wiXSxcclxuICAgICZbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4gICAgJlt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXHJcbiAgICAmW3R5cGU9XCJlbWFpbFwiXSB7XHJcbiAgICAgICAgQGV4dGVuZCAlaW5wdXQ7XHJcbiAgICAgICAgY2FyZXQtY29sb3I6IHZhcigtLWMtY2FyZXQpO1xyXG4gICAgfVxyXG4gICAgJlt0eXBlPVwiY29sb3JcIl0ge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG59XHJcblxyXG5pbnB1dCB7XHJcbiAgICBhY2NlbnQtY29sb3I6IHZhcigtLWMtY2FyZXQpO1xyXG59XHJcblxyXG5pbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKTppbnZhbGlkLFxyXG5pbnB1dDp1c2VyLWludmFsaWQge1xyXG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1lcnJvciwgI2YwMCk7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25zL2lucHV0LWludmFsaWQuc3ZnKTtcclxufVxyXG5cclxuaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bik6dmFsaWQsXHJcbmlucHV0OnVzZXItdmFsaWQge1xyXG4gICAgb3V0bGluZS1jb2xvcjogdmFyKC0tYy1zdWNjZXNzLCB2YXIoLS1jLWFjdGlvbikpO1xyXG4gICAgLy8gYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29ucy9pbnB1dC12YWxpZC5zdmcpO1xyXG59XHJcblxyXG5pbnB1dDpmb2N1czppbnZhbGlkIHtcclxuICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWMtd2FybmluZywgb3JhbmdlKTtcclxufVxyXG5cclxuc2VsZWN0IHtcclxuICAgIEBleHRlbmQgJWlucHV0O1xyXG59XHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgICBAZXh0ZW5kICVpbnB1dDtcclxufVxyXG5cclxuLy8gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxyXG4vLyBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG4vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgICAgei1pbmRleDogMDtcclxuLy8gICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbi8vICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbi8vICAgICAmICsgbGFiZWwge1xyXG4vLyAgICAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuLy8gICAgICAgICBAaW5jbHVkZSBiZWZvcmUtY29udGVudDtcclxuXHJcbi8vICAgICAgICAgJjpiZWZvcmUge1xyXG4vLyAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbi8vICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbi8vICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8gICAgICAgICAgICAgdG9wOiAwO1xyXG4vLyAgICAgICAgIH1cclxuXHJcbi8vICAgICAgICAgJjpiZWZvcmUge1xyXG4vLyAgICAgICAgICAgICB3aWR0aDogMzBweDtcclxuLy8gICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4vLyAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4vLyAgICAgICAgIH1cclxuXHJcbi8vICAgICAgICAgJjpiZWZvcmUge1xyXG4vLyAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XHJcbi8vICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XHJcbi8vICAgICAgICAgICAgIGhlaWdodDogMTVweDtcclxuLy8gICAgICAgICAgICAgd2lkdGg6IDE1cHg7XHJcbi8vICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXMgZWFzZTtcclxuLy8gICAgICAgICB9XHJcbi8vICAgICB9XHJcblxyXG4vLyAgICAgJjpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcclxuLy8gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLXNlY29uZGFyeSk7XHJcbi8vICAgICB9XHJcbi8vIH1cclxuXHJcbi8vIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSB7XHJcbi8vICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbi8vIH1cclxuIiwiLmJ1dHRvbixcclxuW3R5cGU9XCJzdWJtaXRcIl0sXHJcblt0eXBlPVwiYnV0dG9uXCJdLFxyXG5bdHlwZT1cInJlc2V0XCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYmctaGVhZGVyKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCh2YXIoLS1iZy1idXR0b24taCwwKSwgdmFyKC0tYmctYnV0dG9uLXMsMCUpLCB2YXIoLS1iZy1idXR0b24tbCwgMCUpKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhlYWRlcik7XHJcbiAgICBjb2xvcjogaHNsKHZhcigtLWMtYnV0dG9uLWgsMCksIHZhcigtLWMtYnV0dG9uLXMsMCUpLCB2YXIoLS1jLWJ1dHRvbi1sLCAxMDAlKSk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zKSB2YXIoLS1zcGFjZS1sKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcztcclxuXHJcblxyXG4gICAgJjpob3ZlciwgJjphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWJnLWhlYWRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgICAgY29sb3I6IHZhcigtLWMtZGlzYWJsZWQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICAgIEBleHRlbmQgJWJ1dHRvbi1iYXNlO1xyXG59XHJcblxyXG4uYnV0dG9uLXNlY29uZGFyeSxcclxuLmJ1dHRvbi1hbHQge1xyXG59XHJcblxyXG4ucmVhZG1vcmUge1xyXG59XHJcblxyXG4ubWVudS10b2dnbGUge1xyXG4gICAgQGluY2x1ZGUgaGlkZS1kZXNrdG9wKCk7XHJcblxyXG4gICAgcGF0aCB7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tc3BlZWQsIDAuM3MpIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAubWVudS1vcGVuICYge1xyXG4gICAgICAgIHBhdGg6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF0aDpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKDIlLCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcGF0aDpudGgtY2hpbGQoMykge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgtMiUsIC0xNyUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCJAaW1wb3J0IFwiZm9ybXMvZmllbGRzXCI7XHJcbkBpbXBvcnQgXCJmb3Jtcy9idXR0b25zXCI7XHJcblxyXG4uZ3JpZCB7XHJcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xyXG4gICAgICBnYXA6IHZhcigtLWdhcCk7XHJcbiAgICB9XHJcbiAgICAuZmllbGQgeyBncmlkLWNvbHVtbjogc3BhbiAxMjsgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDcyMHB4KSB7XHJcbiAgICAgIC5jb2wtNiB7IGdyaWQtY29sdW1uOiBzcGFuIDY7IH1cclxuICAgICAgLmNvbC00IHsgZ3JpZC1jb2x1bW46IHNwYW4gNDsgfVxyXG4gICAgICAuY29sLTggeyBncmlkLWNvbHVtbjogc3BhbiA4OyB9XHJcbiAgICAgIC5jb2wtMyB7IGdyaWQtY29sdW1uOiBzcGFuIDM7IH1cclxuICAgICAgLmNvbC05IHsgZ3JpZC1jb2x1bW46IHNwYW4gOTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGxhYmVsIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAuMzVyZW07IH1cclxuXHJcbiAgICAvLyBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuICAgIC8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuICAgIC8vIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbiAgICAvLyBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuICAgIC8vIHRleHRhcmVhLFxyXG4gICAgLy8gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xyXG4gICAgLy8gICB3aWR0aDogMTAwJTtcclxuICAgIC8vICAgcGFkZGluZzogLjdyZW0gLjhyZW07XHJcbiAgICAvLyAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XHJcbiAgICAvLyAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAvLyAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGV4dGFyZWEgeyBtaW4taGVpZ2h0OiAxNDBweDsgcmVzaXplOiB2ZXJ0aWNhbDsgfVxyXG5cclxuICAgIC5oaW50IHsgZm9udC1zaXplOiAuOXJlbTsgY29sb3I6ICM1NTU7IH1cclxuXHJcbiAgICAuc2VjdGlvbiB7IG1hcmdpbi10b3A6IDJyZW07IHBhZGRpbmctdG9wOiAxcmVtOyBib3JkZXItdG9wOiAxcHggZGFzaGVkICNlNWU1ZTU7IH1cclxuXHJcbiAgICAub3B0aW9ucyB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogLjVyZW07IH1cclxuXHJcbiAgICAub3B0aW9ucyAub3B0aW9uIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogLjZyZW07IH1cclxuXHJcbiAgICAucmVxdWlyZWQ6OmFmdGVyIHsgY29udGVudDogXCIgKlwiOyBjb2xvcjogI2QxMTsgfVxyXG5cclxuICAgIC5maWxlcyB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogdmFyKC0tZ2FwKTsgfVxyXG5cclxuICAgIC5zdWJtaXQgeyBtYXJnaW4tdG9wOiAxLjVyZW07IH1cclxuICAgIC8vIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcclxuICAgIC8vICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC8vICAgYm9yZGVyOiAwO1xyXG4gICAgLy8gICBiYWNrZ3JvdW5kOiAjMTExO1xyXG4gICAgLy8gICBjb2xvcjogI2ZmZjtcclxuICAgIC8vICAgcGFkZGluZzogLjlyZW0gMS4xcmVtO1xyXG4gICAgLy8gICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgLy8gICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgLy8gICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAvLyB9XHJcbiAgICAuZm9vdG5vdGUgeyBmb250LXNpemU6IC45cmVtOyBjb2xvcjogIzQ0NDsgbWFyZ2luLXRvcDogLjVyZW07IH1cclxuICAgIC5jb25zZW50IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogLjZyZW07IH1cclxuICAgIC50d28tY29sIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiB2YXIoLS1nYXApOyB9XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzIwcHgpIHsgLnR3by1jb2wgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IH0gfSIsIi5uYXYsXHJcbm5hdiB7XHJcbiAgICB1bCB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuLmlubGluZS1jb250YWN0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWFpbi1uYXZpZ2F0aW9uIHtcclxuICAgIHVsIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG4gICAgICAgIFthcmlhLWN1cnJlbnQ9XCJwYWdlXCJdIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLTN4cyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaS5hY3RpdmUgYSB7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRkLW1lbnUtdHJhbnNmb3JtLCA1MDBtcykgZWFzZSxcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3cgdmFyKC0tdGQtbWVudS1ib3gtc2hhZG93LCAzMDBtcykgZWFzZTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRkLW1lbnUtYm94LXNoYWRvdywgMzAwbXMpLCAwbXM7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZS1zKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zdWItbWVudSBsaSB7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1bCBsaSBhLFxyXG4gICAgICAgIHVsIGxpIHNwYW4ge1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDAuOGVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2l6ZS1tb2JpbGUpIHtcclxuICAgICAgICB1bCB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc3ViLW1lbnUge1xyXG4gICAgICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudG9wLWxldmVsIHtcclxuICAgICAgICAgICAgJiArIGxpIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZS1zKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zdWItbWVudSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLnN1Yi1tZW51IGxpIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdGQtbWVudS1ib3gtc2hhZG93LCAzMDBtcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6YWN0aXZlLFxyXG4gICAgICAgICAgICAmOmZvY3VzLFxyXG4gICAgICAgICAgICAmLm9wZW4ge1xyXG4gICAgICAgICAgICAgICAgLnN1Yi1tZW51IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgdmFyKC0tdGQtbWVudS10cmFuc2Zvcm0sIDUwMG1zKTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAuc3ViLW1lbnUgbGkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IHZhcigtLXRkLW1lbnUtdHJhbnNmb3JtLCA1MDBtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSAvLyBtYWluIG5hdmlnYXRpb24gZW5kc1xyXG5cclxuLmZvb3Rlci1uYXYge1xyXG4gICAgYSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbm5hdi5wYWdlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZykgLyAzO1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4uc2l0ZS1mb290ZXIgbmF2IHtcclxuICAgIHVsIHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5waWxscyB7XHJcbiAgICAucGlsbCB7XHJcbiAgICAgICAgcGFkZGluZzogdmFyKC0tX3AtcGlsbCwgdmFyKC0tc3BhY2UteHMpKTtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB9XHJcbn1cclxuIiwiLmhpZGRlbi1zdmcge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi5maWxsZWQtaWNvbiB7XHJcbiAgICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7XHJcbiAgICBjbGlwLXJ1bGU6IGV2ZW5vZGQ7XHJcbiAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xyXG4gICAgc3Ryb2tlLW1pdGVybGltaXQ6IDI7XHJcbiAgICBmaWxsOiB2YXIoLS1pY29uLWZpbGwsICNlNGU0ZTQpO1xyXG59XHJcblxyXG4uc3Ryb2tlZC1pY29uIHtcclxuICAgIGZpbGwtcnVsZTogZXZlbm9kZDtcclxuICAgIGNsaXAtcnVsZTogZXZlbm9kZDtcclxuICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XHJcbiAgICBzdHJva2UtbWl0ZXJsaW1pdDogMjtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2U6IHZhcigtLWljb24tc3Ryb2tlLCAjZTRlNGU0KTtcclxuICAgIHN0cm9rZS13aWR0aDogMXB4O1xyXG59XHJcblxyXG5zdmcubG9nbyB7XHJcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG5cclxuICAgIHBhdGgge1xyXG4gICAgICAgIGZpbGw6IGluaGVyaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgdXNlIHtcclxuICAgICAgICBmaWxsOiB2YXIoLS1icmFuZC1ibHVlKTtcclxuICAgIH1cclxufVxyXG5cclxuaW1nLFxyXG52aWRlbyxcclxuaWZyYW1lLFxyXG5zdmcge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG5zdmcge1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG5AaW1wb3J0IFwiaWNvbi1ib3hcIjtcclxuQGltcG9ydCBcImljb24tc2l6ZXNcIjtcclxuXHJcbi5pbmxpbmUtaWNvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmljb24ge1xyXG4gICAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSwgMjRweCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSwgMjRweCk7XHJcbiAgICBtaW4td2lkdGg6IHZhcigtLWljb24tc2l6ZSwgMjRweCk7XHJcbn1cclxuXHJcbi5pY29uLS0xNiB7XHJcbiAgICAtLWljb24tc2l6ZTogMTZweDtcclxufVxyXG5cclxuLmljb24tLTMyIHtcclxuICAgIC0taWNvbi1zaXplOiAzMnB4O1xyXG59XHJcblxyXG4uaWNvbi0tNDgge1xyXG4gICAgLS1pY29uLXNpemU6IDQ4cHg7XHJcbn1cclxuXHJcbi5pY29uLS02NCB7XHJcbiAgICAtLWljb24tc2l6ZTogNjRweDtcclxufVxyXG5cclxuLmljb24tLTk2IHtcclxuICAgIC0taWNvbi1zaXplOiA5NnB4O1xyXG59XHJcblxyXG4uaWNvbi0tMTI4IHtcclxuICAgIC0taWNvbi1zaXplOiAxMjhweDtcclxufVxyXG5cclxuLmljb24tLTI1NiB7XHJcbiAgICAtLWljb24tc2l6ZTogMjU2cHg7XHJcbn1cclxuXHJcbi5tZWRpYS1zY3JvbGxlciB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICAgIGdyaWQtYXV0by1jb2x1bW5zOiB2YXIoLS1fY29sLXdpZHRoLCAyNSUpO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBnYXA6IHZhcigtLV9nYXAsIHZhcigtLXNwYWNlLXMpKTtcclxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgICAgICBoZWlnaHQ6IDZweDtcclxuICAgICAgICB3aWR0aDogNnB4O1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWdyYXkpO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIH1cclxufVxyXG5cclxuLnNuYXBzLWlubGluZSB7XHJcbiAgICBzY3JvbGwtc25hcC10eXBlOiBpbmxpbmUgbWFuZGF0b3J5O1xyXG4gICAgc2Nyb2xsLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zcGFjZS14cyk7XHJcblxyXG4gICAgPiAqIHtcclxuICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XHJcbiAgICB9XHJcbn1cclxuIiwiLmljb24tYm94IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5pY29uLWJveC1pbmxpbmUge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmNvbnRhY3QtYm94IHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblxyXG4gICAgc3ZnLFxyXG4gICAgZmlndXJlIHtcclxuICAgICAgICBmbGV4LWJhc2lzOiAzMCU7XHJcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taXctY29udGFjdC1ib3gtaWNvbiwgMzBweCk7XHJcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYXctY29udGFjdC1ib3gtaWNvbiwgMzVweCk7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZS14cyk7XHJcbiAgICB9XHJcbn1cclxuIiwiLmljb24ge1xyXG4gICAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSwgNDhweCk7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSwgNDhweCk7XHJcbiAgICBtaW4td2lkdGg6IHZhcigtLWljb24tc2l6ZSwgNDhweCk7XHJcbn1cclxuXHJcbi5pY29uLXhzIHtcclxuICAgIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUteHMsIDMycHgpO1xyXG59XHJcblxyXG4uaWNvbi0yeHMge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS0yeHMsIDI4cHgpO1xyXG59XHJcblxyXG4uaWNvbi0zeHMge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS0zeHMsIDI0cHgpO1xyXG59XHJcblxyXG4uaWNvbi00eHMge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS00eHMsIDIwcHgpO1xyXG59XHJcblxyXG4uaWNvbi01eHMge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS01eHMsIDE2cHgpO1xyXG59XHJcblxyXG4uaWNvbi1zIHtcclxuICAgIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUtcywgMzJweCk7XHJcbn1cclxuXHJcbi5pY29uLW0ge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS1tLCA0OHB4KTtcclxufVxyXG5cclxuLmljb24tbCB7XHJcbiAgICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLWwsIDY0cHgpO1xyXG59XHJcblxyXG4uaWNvbi14bCB7XHJcbiAgICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLXhsLCA5NnB4KTtcclxufVxyXG5cclxuLmljb24tMnhsIHtcclxuICAgIC0taWNvbi1zaXplOiB2YXIoLS1pY29uLXNpemUtMnhsLCAxMjhweCk7XHJcbn1cclxuXHJcbi5pY29uLTN4bCB7XHJcbiAgICAtLWljb24tc2l6ZTogdmFyKC0taWNvbi1zaXplLTN4bCwgMTkycHgpO1xyXG59XHJcblxyXG4uaWNvbi00eGwge1xyXG4gICAgLS1pY29uLXNpemU6IHZhcigtLWljb24tc2l6ZS00eGwsIDI1NnB4KTtcclxufVxyXG5cclxuLnN0cm9rZS1zIHtcclxuICAgIC0tc3Ryb2tlLXdpZHRoOiAxLjNweDtcclxuICAgIC0tc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjtcclxuICAgIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xyXG59XHJcbi5zdHJva2UtbSB7XHJcbiAgICAtLXN0cm9rZS13aWR0aDogMnB4O1xyXG4gICAgLS1zdHJva2UtbGluZWpvaW46IG1pdGVyO1xyXG4gICAgLS1zdHJva2UtbWl0ZXJsaW1pdDogMTA7XHJcbn1cclxuXHJcbi5zdHJva2UtbCB7XHJcbiAgICAtLXN0cm9rZS13aWR0aDogNHB4O1xyXG4gICAgLS1zdHJva2UtbGluZWpvaW46IG1pdGVyO1xyXG4gICAgLS1zdHJva2UtbWl0ZXJsaW1pdDogMTA7XHJcbn1cclxuXHJcbi5zdHJva2UteGwge1xyXG4gICAgLS1zdHJva2Utd2lkdGg6IDZweDtcclxuICAgIC0tc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjtcclxuICAgIC0tc3Ryb2tlLW1pdGVybGltaXQ6IDEwO1xyXG59XHJcblxyXG4uc3Ryb2tlLTJ4bCB7XHJcbiAgICAtLXN0cm9rZS13aWR0aDogOHB4O1xyXG4gICAgLS1zdHJva2UtbGluZWpvaW46IG1pdGVyO1xyXG4gICAgLS1zdHJva2UtbWl0ZXJsaW1pdDogMTA7XHJcbn1cclxuXHJcbi5idXR0b24gc3ZnIHtcclxuICAgIC0taWNvbi1maWxsOiB2YXIoLS1jLWFjdGlvbik7XHJcbiAgICAtLWljb24tc3Ryb2tlOiB2YXIoLS1jLWFjdGlvbik7XHJcbn1cclxuIiwiLnNpbmdsZS1wb3N0LFxyXG4uc2luZ2xlLXBvc3QtbGlzdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tc3BhY2luZykgLyAzKTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItLWJyYW5kLWxpZ2h0Z3JheSk7XHJcbn1cclxuXHJcbi5yZWxhdGVkIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgLnNpbmdsZS1wb3N0LWxpc3Qge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGZsZXgtYmFzaXM6IDMzJTtcclxuICAgIGJvcmRlci1ib3R0b206IDA7XHJcblxyXG4gICAgZmlndXJlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zaW5nbGUtcG9zdC1saXN0IHtcclxuICAmICsgLnNpbmdsZS1wb3N0LWxpc3Qge1xyXG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zcGFjaW5nKSAvIDMpO1xyXG4gIH1cclxuXHJcbiAgJiA+ICoge1xyXG4gICAgZmxleC1ncm93OiAxO1xyXG4gIH1cclxuXHJcbiAgZmlndXJlIHtcclxuICAgIGZsZXgtYmFzaXM6IDQwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1pbi13aWR0aDogMjgwcHg7XHJcbiAgfVxyXG5cclxuICBzZWN0aW9uLmNvbnRlbnQge1xyXG4gICAgZmxleC1iYXNpczogNTAlO1xyXG4gICAgbWF4LXdpZHRoOiA4MGNoO1xyXG4gIH1cclxuXHJcbiAgLnJlYWRtb3JlIHtcclxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNpemUtcGFkZGluZyk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4ubWV0YSB7XHJcbiAgZmxleC1iYXNpczogMTAlO1xyXG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc2l6ZS1wYWRkaW5nKTtcclxuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2l6ZS1wYWRkaW5nKTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG1heC13aWR0aDogMjBjaDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnNpbmdsZS1wb3N0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG5cclxuICBoZWFkZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAxMCU7XHJcbiAgfVxyXG5cclxuICBhc2lkZSB7XHJcbiAgICBmbGV4LWJhc2lzOiAxMCU7XHJcbiAgfVxyXG5cclxuICBzZWN0aW9uLmNvbnRlbnQge1xyXG4gICAgZmxleC1iYXNpczogODAlO1xyXG4gIH1cclxuXHJcbiAgYmxvY2txdW90ZSB7XHJcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIGN1cnJlbnRDb2xvcjtcclxuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtcGFkZGluZykgLyAyIHZhcigtLXNpemUtcGFkZGluZyk7XHJcbiAgICBtYXgtd2lkdGg6IDgwY2g7XHJcbiAgICBtYXJnaW4tbGVmdDogMDtcclxuICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqICBzdHlsZXMgc2hhcmVkIGJ5IGFsbCBzY3JlZW4gc2l6ZXMgd2l0aG91dCBncmlkIHN1cHBvcnRcclxuICoqL1xyXG5cclxuQGltcG9ydCBcImJhc2VcIjtcclxuIiwiLndyYXBwZXIge1xyXG4gICAgQGV4dGVuZCAld3JhcHBlcjtcclxufVxyXG5cclxuW2NsYXNzKj1cImdyaWQtXCJdIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBnYXA6IHZhcigtLWdhcCwgMnJlbSk7XHJcbn1cclxuXHJcbi53cmFwcGVyLWdyaWQge1xyXG4gICAgQGV4dGVuZCAld3JhcHBlci1ncmlkO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcbiAgICBncmlkLWFyZWE6IGNvbnRlbnQ7XHJcbiAgICBncmlkLXJvdzogYXV0bztcclxufVxyXG5cclxuLmdyaWQtLWhhbGYge1xyXG4gICAgQGluY2x1ZGUgZ3JpZCgyKTtcclxufVxyXG5cclxuLmdyaWQtLXRoaXJkIHtcclxuICAgIEBpbmNsdWRlIGdyaWQoMyk7XHJcbn1cclxuXHJcbi8vIENhcmQgY29udGFpbmVyIHF1ZXJ5XHJcbkBzdXBwb3J0cyAoY29udGFpbjogbGF5b3V0KSB7XHJcbiAgICAuY2FyZCB7XHJcbiAgICAgICAgY29udGFpbjogbGF5b3V0O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZ3JpZC0tcmV2ZXJzZSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2l6ZS1tb2JpbGUpIHtcclxuICAgICAgICA6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBvcmRlcjogMjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5ncmlkLS1zaWRlYmFyIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwic2lkZWJhciBjb250ZW50XCI7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAyZnI7XHJcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XHJcbn1cclxuXHJcbi5za2lwLWxpbmt7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwcHg7bGVmdDogMTBweDtcclxuICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICBiYWNrZ3JvdW5kOnZhcigtLWMtYWN0aW9uKTtcclxuICAgIGNvbG9yOnZhcigtLWMtdGV4dCk7XHJcbiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZS14cykgdmFyKC0tc3BhY2UtbSk7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcblxyXG4gICAgJjpmb2N1c3tcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG4gICAgfVxyXG59IiwiLnNpdGUtaGVhZGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjdzIGVhc2Utb3V0O1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaGVhZGVyLCAjZmZmKTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXNwYWNlLWwpO1xyXG4gICAgbWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tc3BhY2UteGwpO1xyXG5cclxuICAgIC5sb2dve1xyXG4gICAgICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcclxuICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaW1ne1xyXG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcclxuICAgICAgICBhc3BlY3QtcmF0aW86IDIwMC81NztcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG4vLyBAaW1wb3J0IFwiaGVhZGVyL2hlYWRyb29tXCI7XHJcbiIsIi5zaXRlLWZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1oZWFkZXIpO1xyXG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjZS14bCk7XHJcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZS14bCk7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNpemUtbW9iaWxlKSB7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNjcm9sbC1wYWRkaW5nKTtcclxuICAgIH1cclxufVxyXG5cclxuLmRlc2lnbmVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZS14cywgMC41cmVtKTtcclxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlLXhzLCAwLjVyZW0pO1xyXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UteHMsIDAuNXJlbSk7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgICBoZWlnaHQ6IHZhcigtLWgtZGVzaWduZXItbG9nbywgMWVtKTtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9*/