/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/css-loader@7.1.2_webpack@5.102.1/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/.pnpm/postcss-loader@8.2.0_postcss@8.5.6_webpack@5.102.1/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js!./node_modules/.pnpm/sass-loader@16.0.6_sass@1.94.0_webpack@5.102.1/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[4]!./src/assets/scss/app.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.btn__animated::after, .loader {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.trns-1 {
  -webkit-transition: all 0.1s ease-in-out;
  transition: all 0.1s ease-in-out;
}

.trns-2 {
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}

.trns-3 {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.ml-5 {
  margin-left: 5px;
}

.ml-10 {
  margin-left: 10px;
}

.ml-15 {
  margin-left: 15px;
}

.ml-20 {
  margin-left: 20px;
}

.ml-25 {
  margin-left: 25px;
}

.ml-30 {
  margin-left: 30px;
}

.ml-35 {
  margin-left: 35px;
}

.ml-40 {
  margin-left: 40px;
}

.ml-45 {
  margin-left: 45px;
}

.ml-50 {
  margin-left: 50px;
}

.mr-5 {
  margin-right: 5px;
}

.mr-10 {
  margin-right: 10px;
}

.mr-15 {
  margin-right: 15px;
}

.mr-20 {
  margin-right: 20px;
}

.mr-25 {
  margin-right: 25px;
}

.mr-30 {
  margin-right: 30px;
}

.mr-35 {
  margin-right: 35px;
}

.mr-40 {
  margin-right: 40px;
}

.mr-45 {
  margin-right: 45px;
}

.mr-50 {
  margin-right: 50px;
}

@media print {
  *,
  *::before,
  *::after {
    background: #fff !important;
    color: #000 !important;
    /* Black prints faster */
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    -webkit-text-decoration: underline;
    text-decoration: underline;
  }
  a[href]::after {
    content: " (" attr(href) ")";
  }
  abbr[title]::after {
    content: " (" attr(title) ")";
  }
  /*
   * Don't show links that are fragment identifiers,
   * or use the `javascript:` pseudo protocol
   */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: "";
  }
  pre {
    white-space: pre-wrap !important;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /*
   * Printing Tables:
   * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}
@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}
:root {
  --font-family: 'Montserrat', sans-serif;
  --xs: 320px;
  --sm: 576px;
  --md: 768px;
  --lg: 992px;
  --xl: 1200px;
  --xxl: 1400px;
  --container-width: var(--xxl);
  --base-transition: .3s ;
}

html {
  font-size: 50.5%;
}
@media (min-width: 1281px) {
  html {
    font-size: 62.5%;
  }
}

/*! normalize.css v8.0.1 | 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 iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

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

/**
 * Render the `main` element consistently in IE.
 */
main {
  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
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          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
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

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

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

/**
 * 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 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
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

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

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

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * 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 {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

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

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  -webkit-box-sizing: border-box;
          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 in Chrome and Safari on macOS.
 */
[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 Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

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

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

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

.modal-close button, .section__technologies .element, .section__intro, .section__intro .box, .section__intro .clutch-reward, .section, .logo, #menu, .hamburger .hamburger-box, .loader-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.section video, .section .bgd picture, .section .bgd__img {
  height: 100%;
  width: 100%;
}

.section__intro .clutch-reward {
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

a {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:focus, a:focus-visible, a:active {
  color: inherit;
  -webkit-text-decoration: none;
  text-decoration: none;
}

button {
  cursor: pointer;
}
:focus,
:hover {
  outline: none;
  -webkit-text-decoration: none;
  text-decoration: none;
}

::-moz-focus-inner {
  border: 0;
  outline: none;
}

:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 transparent;
}

::-moz-selection {
  color: #fff;
  background: #2cb5a7;
  text-shadow: none;
}

::selection {
  color: #fff;
  background: #2cb5a7;
  text-shadow: none;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

.hidden,
[hidden] {
  display: none !important;
}

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  /* 1 */
}

.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  width: auto;
}

svg:not(:root) {
  overflow: hidden;
}

#app {
  width: 100%;
  height: 100%;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Montserrat', sans-serif, sans-serif;
  font-family: var(--font-family), sans-serif;
  font-weight: 300;
}

.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-top: 0;
  margin-bottom: 1rem;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

label {
  font-weight: normal;
}

::-webkit-scrollbar {
  width: 8px;
  height: 12px;
  background-color: #292b2c;
}

*::-webkit-scrollbar-track {
  border-radius: 6px;
  background-color: #292b2c;
}

*::-webkit-scrollbar-thumb {
  border-radius: 6px;
  background-color: #2cb5a7;
}

*::-webkit-scrollbar-thumb:window-inactive {
  background-color: rgba(0, 0, 0, 0.5);
}

*::-webkit-scrollbar-corner {
  background-color: #292b2c;
}

a, a:hover {
  -webkit-transition: color .3s ;
  transition: color .3s ;
  -webkit-transition: color var(--base-transition);
  transition: color var(--base-transition);
}

input[type=text] {
  -webkit-transition: border .3s, background-color .3s ;
  transition: border .3s, background-color .3s ;
  -webkit-transition: border var(--base-transition), background-color var(--base-transition);
  transition: border var(--base-transition), background-color var(--base-transition);
}

h1, h2, h3, h4 {
  -webkit-transition: font-size .3s ;
  transition: font-size .3s ;
  -webkit-transition: font-size var(--base-transition);
  transition: font-size var(--base-transition);
}

@-webkit-keyframes pulsate {
  0% {
    -webkit-transform: scale(0.1, 0.1);
            transform: scale(0.1, 0.1);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.2, 1.2);
            transform: scale(1.2, 1.2);
    opacity: 0;
  }
}

@keyframes pulsate {
  0% {
    -webkit-transform: scale(0.1, 0.1);
            transform: scale(0.1, 0.1);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.2, 1.2);
            transform: scale(1.2, 1.2);
    opacity: 0;
  }
}
.pulsate {
  -webkit-animation: pulsate 2s ease-out;
          animation: pulsate 2s ease-out;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

@-webkit-keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0);
  }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
            transform: translate3d(-10px, 0, 0);
  }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
            transform: translate3d(10px, 0, 0);
  }
}
.shake {
  -webkit-animation: shake 2s ease-out;
          animation: shake 2s ease-out;
}

@-webkit-keyframes flicker {
  0%, 18%, 22%, 25%, 53%, 57%, 100% {
    text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, 0 0 40px #2f71db, 0 0 80px #2f71db, 0 0 90px #2f71db, 0 0 100px #2f71db, 0 0 150px #2f71db;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  20%, 24%, 55% {
    text-shadow: none;
  }
}

@keyframes flicker {
  0%, 18%, 22%, 25%, 53%, 57%, 100% {
    text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, 0 0 40px #2f71db, 0 0 80px #2f71db, 0 0 90px #2f71db, 0 0 100px #2f71db, 0 0 150px #2f71db;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  20%, 24%, 55% {
    text-shadow: none;
  }
}
.g-glow-neon {
  -webkit-animation: flicker 2.5s infinite alternate;
          animation: flicker 2.5s infinite alternate;
  color: #fff;
}

.g-glow-default {
  text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, 0 0 40px #2cb5a7, 0 0 80px #2cb5a7, 0 0 90px #2cb5a7, 0 0 100px #2cb5a7, 0 0 150px #2cb5a7;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.g-glow-blue {
  text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, 0 0 40px #2f71db, 0 0 80px #2f71db, 0 0 90px #2f71db, 0 0 100px #2f71db, 0 0 150px #2f71db;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.r-text {
  --text-fs-title: 3rem;
  --text-fs-pretitle: 1.4rem;
  --text-fs-desc: 1.6rem;
  --text-color: #fff;
  --text-fw: 500;
}
.r-text__pretitle {
  font-size: var(--text-fs-pretitle);
  font-weight: var(--text-fw);
  color: var(--text-color);
  letter-spacing: 3px;
  position: absolute;
  bottom: 0;
  left: 0;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
  will-change: transform;
  -webkit-transform: scaleX(0) skewX(0deg);
          transform: scaleX(0) skewX(0deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.r-text__pretitle::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #2cb5a7;
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.r-text__pretitle {
  -webkit-transform: translate3d(-30px, 5px, 0) rotate(-90deg);
          transform: translate3d(-30px, 5px, 0) rotate(-90deg);
  -webkit-transform-origin: top left;
          transform-origin: top left;
}
@media (min-width: 769px) {
  .r-text__pretitle {
    -webkit-transform: translate3d(0, 5px, 0) rotate(-90deg);
            transform: translate3d(0, 5px, 0) rotate(-90deg);
  }
}
.r-text__title {
  margin-bottom: 1rem;
  font-size: var(--text-fs-title);
  color: var(--text-color);
  font-weight: var(--text-fw);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  text-transform: uppercase;
  position: relative;
  -webkit-transform: scaleX(0) skewX(0deg);
          transform: scaleX(0) skewX(0deg);
  will-change: transform;
  transform: scaleX(0) skewX(0deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.r-text__title::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #2cb5a7;
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.r-text__desc {
  font-size: var(--text-fs-desc);
  font-weight: 400;
  color: var(--text-color);
  letter-spacing: 1px;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 0.2rem;
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  line-height: 1.6;
  padding: 10px;
  min-height: 10rem;
  will-change: transform;
  -webkit-transform: scaleX(0) skewX(0deg);
          transform: scaleX(0) skewX(0deg);
  -webkit-transform-origin: left;
          transform-origin: left;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.r-text__desc::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #2cb5a7;
  -webkit-transform-origin: right;
          transform-origin: right;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.is-active .r-text .r-text__pretitle::before {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
.is-active .r-text .r-text__title, .is-active .r-text .r-text__desc {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}
.is-active .r-text .r-text__title::before, .is-active .r-text .r-text__desc::before {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}

@-webkit-keyframes drawSVG {
  from {
    stroke-dashoffset: 4800;
  }
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes drawSVG {
  from {
    stroke-dashoffset: 4800;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@-webkit-keyframes move-1 {
  from {
    -webkit-transform: translate3d(20px, 0, 0) scale(1.1);
            transform: translate3d(20px, 0, 0) scale(1.1);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes move-1 {
  from {
    -webkit-transform: translate3d(20px, 0, 0) scale(1.1);
            transform: translate3d(20px, 0, 0) scale(1.1);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@-webkit-keyframes move-3 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(1.2);
            transform: translate3d(0, 0, 0) scale(1.2);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes move-3 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(1.2);
            transform: translate3d(0, 0, 0) scale(1.2);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@-webkit-keyframes move-4 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1.5);
            transform: translate3d(0, 0, 0) scale(1.5);
  }
}
@keyframes move-4 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1.5);
            transform: translate3d(0, 0, 0) scale(1.5);
  }
}
@-webkit-keyframes move-5 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(0.9);
            transform: translate3d(0, 0, 0) scale(0.9);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes move-5 {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(0.9);
            transform: translate3d(0, 0, 0) scale(0.9);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@media (min-width: 1113px) {
  @-webkit-keyframes move-5 {
    from {
      -webkit-transform: translate3d(0, -50px, 0) scale(1.1);
              transform: translate3d(0, -50px, 0) scale(1.1);
      opacity: 0;
    }
    to {
      -webkit-transform: translate3d(0, 0, 0) scale(1);
              transform: translate3d(0, 0, 0) scale(1);
      opacity: 1;
    }
  }
  @keyframes move-5 {
    from {
      -webkit-transform: translate3d(0, -50px, 0) scale(1.1);
              transform: translate3d(0, -50px, 0) scale(1.1);
      opacity: 0;
    }
    to {
      -webkit-transform: translate3d(0, 0, 0) scale(1);
              transform: translate3d(0, 0, 0) scale(1);
      opacity: 1;
    }
  }
}
@-webkit-keyframes move-in {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(0.9);
            transform: translate3d(0, 0, 0) scale(0.9);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@keyframes move-in {
  from {
    -webkit-transform: translate3d(0, 0, 0) scale(0.9);
            transform: translate3d(0, 0, 0) scale(0.9);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
@-webkit-keyframes glitch-effect {
  0% {
    clip: rect(95px, 3000px, 70px, 0);
  }
  5% {
    clip: rect(96px, 3000px, 234px, 0);
  }
  10% {
    clip: rect(40px, 3000px, 113px, 0);
  }
  15% {
    clip: rect(198px, 3000px, 90px, 0);
  }
  20% {
    clip: rect(184px, 3000px, 84px, 0);
  }
  25% {
    clip: rect(327px, 3000px, 2px, 0);
  }
  30% {
    clip: rect(224px, 3000px, 46px, 0);
  }
  35% {
    clip: rect(24px, 3000px, 1px, 0);
  }
  40% {
    clip: rect(194px, 3000px, 77px, 0);
  }
  45% {
    clip: rect(289px, 3000px, 135px, 0);
  }
  50% {
    clip: rect(43px, 3000px, 14px, 0);
  }
  55% {
    clip: rect(70px, 3000px, 227px, 0);
  }
  60% {
    clip: rect(169px, 3000px, 167px, 0);
  }
  65% {
    clip: rect(123px, 3000px, 5px, 0);
  }
  70% {
    clip: rect(253px, 3000px, 213px, 0);
  }
  75% {
    clip: rect(381px, 3000px, 183px, 0);
  }
  80% {
    clip: rect(397px, 3000px, 92px, 0);
  }
  85% {
    clip: rect(103px, 3000px, 240px, 0);
  }
  90% {
    clip: rect(287px, 3000px, 43px, 0);
  }
  95% {
    clip: rect(126px, 3000px, 84px, 0);
  }
  100% {
    clip: rect(26px, 3000px, 193px, 0);
  }
}
@keyframes glitch-effect {
  0% {
    clip: rect(95px, 3000px, 70px, 0);
  }
  5% {
    clip: rect(96px, 3000px, 234px, 0);
  }
  10% {
    clip: rect(40px, 3000px, 113px, 0);
  }
  15% {
    clip: rect(198px, 3000px, 90px, 0);
  }
  20% {
    clip: rect(184px, 3000px, 84px, 0);
  }
  25% {
    clip: rect(327px, 3000px, 2px, 0);
  }
  30% {
    clip: rect(224px, 3000px, 46px, 0);
  }
  35% {
    clip: rect(24px, 3000px, 1px, 0);
  }
  40% {
    clip: rect(194px, 3000px, 77px, 0);
  }
  45% {
    clip: rect(289px, 3000px, 135px, 0);
  }
  50% {
    clip: rect(43px, 3000px, 14px, 0);
  }
  55% {
    clip: rect(70px, 3000px, 227px, 0);
  }
  60% {
    clip: rect(169px, 3000px, 167px, 0);
  }
  65% {
    clip: rect(123px, 3000px, 5px, 0);
  }
  70% {
    clip: rect(253px, 3000px, 213px, 0);
  }
  75% {
    clip: rect(381px, 3000px, 183px, 0);
  }
  80% {
    clip: rect(397px, 3000px, 92px, 0);
  }
  85% {
    clip: rect(103px, 3000px, 240px, 0);
  }
  90% {
    clip: rect(287px, 3000px, 43px, 0);
  }
  95% {
    clip: rect(126px, 3000px, 84px, 0);
  }
  100% {
    clip: rect(26px, 3000px, 193px, 0);
  }
}
#svg-icons {
  position: absolute;
  height: 0;
  width: 0;
}

svg {
  -webkit-transition: fill .3s, stroke .3s, background-color .3s, color .3s ;
  transition: fill .3s, stroke .3s, background-color .3s, color .3s ;
  -webkit-transition: fill var(--base-transition), stroke var(--base-transition), background-color var(--base-transition), color var(--base-transition);
  transition: fill var(--base-transition), stroke var(--base-transition), background-color var(--base-transition), color var(--base-transition);
}

.mk-svg svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
  color: currentColor;
}

.loader {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #292b2c;
  z-index: 9999;
}

.loader-text {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  text-align: center;
  line-height: 10rem;
}
.loader-text span {
  display: inline-block;
  margin: 0 0.5rem;
  color: #fff;
  -webkit-filter: blur(0);
          filter: blur(0);
  -webkit-animation: blur-text 2s alternate infinite;
          animation: blur-text 2s alternate infinite;
}
.loader-text span:nth-child(1) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.loader-text span:nth-child(2) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.loader-text span:nth-child(3) {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.loader-text span:nth-child(4) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.loader-text span:nth-child(5) {
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}
.loader-text span:nth-child(6) {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.loader-text span:nth-child(7) {
  -webkit-animation-delay: 0.7s;
          animation-delay: 0.7s;
}
.loader-text span:nth-child(8) {
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}
.loader-text span:nth-child(9) {
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s;
}
.loader-text span:nth-child(10) {
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
.loader-text span:nth-child(11) {
  -webkit-animation-delay: 1.1s;
          animation-delay: 1.1s;
}
.loader-text span:nth-child(12) {
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
}
.loader-text span:nth-child(13) {
  -webkit-animation-delay: 1.3s;
          animation-delay: 1.3s;
}
.loader-text span:nth-child(14) {
  -webkit-animation-delay: 1.4s;
          animation-delay: 1.4s;
}
.loader-text span:nth-child(15) {
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s;
}
.loader-text span:nth-child(16) {
  -webkit-animation-delay: 1.6s;
          animation-delay: 1.6s;
}
.loader-text span:nth-child(17) {
  -webkit-animation-delay: 1.7s;
          animation-delay: 1.7s;
}
.loader-text span:nth-child(18) {
  -webkit-animation-delay: 1.8s;
          animation-delay: 1.8s;
}
.loader-text span:nth-child(19) {
  -webkit-animation-delay: 1.9s;
          animation-delay: 1.9s;
}
.loader-text span:nth-child(20) {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}
.loader-text span:nth-child(21) {
  -webkit-animation-delay: 2.1s;
          animation-delay: 2.1s;
}
.loader-text span:nth-child(22) {
  -webkit-animation-delay: 2.2s;
          animation-delay: 2.2s;
}

@-webkit-keyframes blur-text {
  0% {
    -webkit-filter: blur(0px);
            filter: blur(0px);
  }
  100% {
    -webkit-filter: blur(3px);
            filter: blur(3px);
  }
}
@keyframes blur-text {
  0% {
    -webkit-filter: blur(0px);
            filter: blur(0px);
  }
  100% {
    -webkit-filter: blur(3px);
            filter: blur(3px);
  }
}
.c-progressbar {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 12px;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
}
@media (max-width: 767px) {
  .c-progressbar {
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%;
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    width: calc(100dvh + 20px);
    height: 12px;
    top: -20px;
  }
}
.c-progressbar progress {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  width: 100%;
  height: 12px;
  border: none;
  background: transparent;
  background-attachment: fixed;
  pointer-events: none;
}
.c-progressbar progress::-webkit-progress-bar {
  background: transparent;
}
.c-progressbar progress::-webkit-progress-value {
  background: -webkit-gradient(linear, left top, right top, from(#db38b5), color-stop(#01b3e3), color-stop(#25ce7b), color-stop(#fdc741), color-stop(#ff6b01), to(#fc4236));
  background: linear-gradient(to right, #db38b5, #01b3e3, #25ce7b, #fdc741, #ff6b01, #fc4236);
  background-attachment: fixed;
}
.c-progressbar progress::-moz-progress-bar {
  background: linear-gradient(to right, #db38b5, #01b3e3, #25ce7b, #fdc741, #ff6b01, #fc4236);
  background-attachment: fixed;
}

[data-three-cursor] {
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
  overflow: hidden;
}

.w-scroll-down {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  width: 4rem;
  height: 4rem;
  margin-left: -2rem;
  display: inline-block;
  background-size: contain;
  opacity: 0;
  -webkit-transition: 0.5s;
  transition: 0.5s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}
@media (min-width: 1281px) {
  .w-scroll-down {
    bottom: 2rem;
    width: 7rem;
    height: 6rem;
    margin-left: -3.5rem;
  }
}

.w-toggle-sound {
  z-index: 10;
  border: 0;
  color: #fff;
  background: transparent;
  outline: 0;
  padding: 10px;
  font-size: 16px;
}
@media (min-width: 768px) {
  .w-toggle-sound {
    width: 40px;
    height: 40px;
  }
}
.w-toggle-sound:hover, .w-toggle-sound:focus, .w-toggle-sound:focus-visible, .w-toggle-sound:active {
  color: #2cb5a7;
  text-shadow: 1px 1px 15px #2cb5a7, 1px 1px 15px #2cb5a7;
}
.dark .w-toggle-sound {
  color: #292b2c;
}
.w-audio {
  z-index: -1;
  position: absolute;
  height: 0;
  width: 0;
  visibility: hidden;
}

*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html {
  background-color: #f0f3f4;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}

html, body {
  overflow-x: hidden;
  width: 100%;
  height: 100%;
}

body {
  font-family: 'Montserrat', sans-serif;
  font-family: var(--font-family);
  -webkit-font-smoothing: antialiased;
  line-height: 1.42857143;
  color: #999899;
  background-color: transparent;
  font-size: 1.6rem;
}

main {
  overflow-x: hidden;
}

.red {
  color: #ee3b5b;
}

.green {
  color: #2cb5a7;
}

.hamburger {
  padding: 14px;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  text-transform: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
}
.hamburger:hover, .hamburger:focus, .hamburger:focus-visible, .hamburger:active {
  border: 0;
  outline: 0;
}
.hamburger:not(.is-active):hover .hamburger-box .hamburger-inner::before {
  -webkit-transform: translateX(-4px);
          transform: translateX(-4px);
}
.hamburger:not(.is-active):hover .hamburger-box .hamburger-inner::after {
  -webkit-transform: translateX(4px);
          transform: translateX(4px);
}
.hamburger:hover .hamburger-box .hamburger-inner {
  background-color: #2cb5a7;
  -webkit-transition: background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear;
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.hamburger:hover .hamburger-box .hamburger-inner::before, .hamburger:hover .hamburger-box .hamburger-inner::after {
  background-color: #2cb5a7;
  -webkit-transition: background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear;
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.hamburger .hamburger-box {
  width: 40px;
  height: 24px;
  position: relative;
}
.hamburger .hamburger-box .hamburger-inner {
  display: block;
  position: absolute;
  top: 50%;
  width: 40px;
  height: 4px;
  margin-top: -2px;
  background-color: #fff;
  border-radius: 4px;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
  top: 2px;
  -webkit-transition: background-color 0.1s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: background-color 0.1s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.1s linear;
  transition: transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.1s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.dark .hamburger .hamburger-box .hamburger-inner {
  background-color: #292b2c;
}
.dark .hamburger .hamburger-box .hamburger-inner::before, .dark .hamburger .hamburger-box .hamburger-inner::after {
  background-color: #292b2c;
}
.hamburger .hamburger-box .hamburger-inner::before, .hamburger .hamburger-box .hamburger-inner::after {
  content: "";
  display: block;
  width: 40px;
  height: 4px;
  background-color: #fff;
  border-radius: 4px;
  position: absolute;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
}
.hamburger .hamburger-box .hamburger-inner::before {
  top: 10px;
  -webkit-transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear;
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.hamburger .hamburger-box .hamburger-inner::after {
  bottom: -10px;
  top: 20px;
  -webkit-transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear;
  transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), background-color 0.3s linear, -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.hamburger.is-active .hamburger-inner {
  background-color: transparent !important;
}
.hamburger.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s linear;
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  -webkit-transform: translate3d(0, 10px, 0) rotate(45deg);
          transform: translate3d(0, 10px, 0) rotate(45deg);
}
.hamburger.is-active .hamburger-inner::after {
  top: 0;
  -webkit-transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s linear;
  transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s linear, -webkit-transform 0.15s 0.32s cubic-bezier(0.215, 0.61, 0.355, 1);
  -webkit-transform: translate3d(0, 10px, 0) rotate(-45deg);
          transform: translate3d(0, 10px, 0) rotate(-45deg);
}

aside .sidebar {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 240px;
  height: 100%;
  z-index: 1000;
  -webkit-transform: translate3d(240px, 0, 0);
          transform: translate3d(240px, 0, 0);
  -webkit-transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  background: #292b2c;
  will-change: transform;
  border: 0 solid transparent;
  border-left-width: 4px;
}
@media (min-width: 1113px) {
  aside .sidebar {
    width: 300px;
    height: 100%;
    -webkit-transform: translate3d(300px, 0, 0);
            transform: translate3d(300px, 0, 0);
  }
}
aside .sidebar.is-nudge {
  -webkit-transform: translate3d(270px, 0, 0);
          transform: translate3d(270px, 0, 0);
  -webkit-transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  border-color: #fff;
}
aside .sidebar.is-active {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  border-color: #2cb5a7;
}
aside .wrapper {
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: 0;
}
aside .inner {
  position: absolute;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform: perspective(2000px) translate3d(-15rem, 0, 0);
          transform: perspective(2000px) translate3d(-15rem, 0, 0);
  -webkit-transform-origin: 0 0 0;
          transform-origin: 0 0 0;
  -webkit-transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  transition: all 500ms cubic-bezier(0.31, 0.19, 0.16, 1);
  z-index: 9;
  background: #292b2c;
}
aside #menu {
  position: absolute;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 10;
}
aside .sidebar.is-active .inner {
  -webkit-transform: perspective(2000px) translate3d(0, 0, 0);
          transform: perspective(2000px) translate3d(0, 0, 0);
}
aside .open-menu {
  display: inline-block;
  position: absolute;
  right: 40%;
  width: 100%;
  height: 100%;
  cursor: pointer;
  right: -100%;
  position: absolute;
  z-index: 9;
}
@media (max-width: 767px) {
  aside .open-menu {
    display: none;
  }
}
aside .heading {
  position: absolute;
  top: 9%;
  right: 54%;
  width: 10rem;
  height: 1.5rem;
  font-size: 1.2rem;
  letter-spacing: 0.4rem;
  text-align: center;
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0) rotate(-90deg);
          transform: translate3d(0, 0, 0) rotate(-90deg);
  -webkit-transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media (min-width: 1113px) {
  aside .heading {
    top: 29%;
    right: 80%;
  }
}
aside .sidebar.is-active .heading, aside .sidebar.is-active .line {
  opacity: 0;
  right: 0;
  -webkit-transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
aside .sidebar.is-nudge .heading {
  color: #2cb5a7;
}
aside .sidebar.is-nudge .line {
  background-color: #2cb5a7;
}
aside .line {
  width: 3rem;
  height: 1px;
  position: absolute;
  top: 10%;
  right: 56%;
  opacity: 1;
  -webkit-transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  background-color: #fff;
}
@media (min-width: 1113px) {
  aside .line {
    width: 5rem;
    height: 1px;
    position: absolute;
    top: 30%;
    right: 74%;
  }
}
.is-menu-active aside .line {
  right: 0;
  -webkit-transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: all 500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
.dark aside .line {
  background-color: #292b2c;
}
.dark aside .txt--clr-white {
  color: #292b2c;
}

#menu {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
}

header .menu {
  position: fixed;
  top: 20px;
  left: 25px;
  z-index: 10;
}
@media (min-width: 768px) {
  header .menu {
    top: 40px;
    left: 40px;
  }
}

.nav-menu {
  position: fixed;
  top: 30px;
  right: 20px;
  z-index: 10;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (min-width: 768px) {
  .nav-menu {
    right: 20px;
  }
}
@media (min-width: 1113px) {
  .nav-menu {
    top: 45px;
    right: 100px;
  }
}
.nav-menu a {
  color: #fff;
  font-weight: 700;
  padding: 10px 15px;
}
.nav-menu a:hover {
  color: #2cb5a7;
  text-shadow: 1px 1px 15px #2cb5a7, 1px 1px 15px #2cb5a7;
}
.nav__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  width: 42.7rem;
  background-size: 42.7rem 16rem;
  overflow: hidden;
  cursor: pointer;
  background-color: #212121;
  text-align: center;
  position: relative;
  border-bottom: 0.1rem solid #292b2c;
  -webkit-transition: all 0.3s linear;
  transition: all 0.3s linear;
}
.nav__link:hover {
  -webkit-transition: all 0.3s cubic-bezier(0.08, 0.57, 0.73, 1.18);
  transition: all 0.3s cubic-bezier(0.08, 0.57, 0.73, 1.18);
}
.nav__link:hover .nav__over {
  -webkit-transform: translate3d(22rem, 0, 0);
          transform: translate3d(22rem, 0, 0);
  -webkit-transition: all 1s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 1s cubic-bezier(0.23, 1, 0.32, 1);
}
@media (min-width: 1113px) {
  .nav__link:hover .nav__over {
    -webkit-transform: translate3d(20rem, 0, 0);
            transform: translate3d(20rem, 0, 0);
  }
}
.nav__link:hover .nav__text-1 {
  -webkit-transform: translate3d(0.5rem, 0, 0) skewX(4deg);
          transform: translate3d(0.5rem, 0, 0) skewX(4deg);
}
.nav__link:hover .nav__text-2 {
  color: #292b2c;
  -webkit-transform: translate3d(0, 0, 0) skewX(4deg);
          transform: translate3d(0, 0, 0) skewX(4deg);
  -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.nav__link:hover .nav__line {
  -webkit-transform: translate3d(42.7rem, 0, 0);
          transform: translate3d(42.7rem, 0, 0);
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
  opacity: 1;
}
.nav__link.active, .nav__link:hover {
  background-color: #292b2c;
}
.nav__link.active .nav__text-2 {
  color: #fff;
  -webkit-transform: translate3d(0, 0, 0) skewX(4deg);
          transform: translate3d(0, 0, 0) skewX(4deg);
  -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.nav__link.active .nav__over {
  background-color: #2cb5a7;
  color: #fff;
  -webkit-transform: translate3d(20rem, 0, 0);
          transform: translate3d(20rem, 0, 0);
  -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
.nav__link.active:hover .nav__over {
  background-color: #fff;
}
.nav__link.active:hover .nav__text-2 {
  color: #292b2c;
}
.nav__item {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22rem;
  height: 4rem;
  overflow: hidden;
  -webkit-transform: translate3d(-50%, -50%, 0) skewX(-4deg);
          transform: translate3d(-50%, -50%, 0) skewX(-4deg);
  -webkit-transition: all 0.6s cubic-bezier(0.55, 0.055, 0.32, 1);
  transition: all 0.6s cubic-bezier(0.55, 0.055, 0.32, 1);
}
@media (min-width: 1113px) {
  .nav__item {
    width: 20rem;
    height: 4rem;
  }
}
.nav__text-1, .nav__text-2 {
  font-size: 1.2rem;
}
.nav__text-1 {
  position: absolute;
  top: 1.2rem;
  left: 0.1rem;
  color: #fff;
  font-weight: 300;
  font-size: 1.2rem;
  letter-spacing: 0.2rem;
  width: 100%;
  text-align: center;
  -webkit-transform: translate3d(0, 0, 0) skewX(4deg);
          transform: translate3d(0, 0, 0) skewX(4deg);
  -webkit-transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.nav__over {
  position: absolute;
  left: -99%;
  width: 100%;
  height: 100%;
  background-color: #fff;
  overflow: hidden;
  -webkit-transform: translate3d(44rem, 0, 0);
          transform: translate3d(44rem, 0, 0);
  -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}
@media (min-width: 1113px) {
  .nav__over {
    -webkit-transform: translate3d(40rem, 0, 0);
            transform: translate3d(40rem, 0, 0);
  }
}
.nav__text-2 {
  position: absolute;
  top: 1.2rem;
  left: 0.1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2rem;
  width: 100%;
  text-align: center;
  -webkit-transform: translate3d(-22rem, 0, 0) skewX(4deg);
          transform: translate3d(-22rem, 0, 0) skewX(4deg);
  -webkit-transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
@media (min-width: 1113px) {
  .nav__text-2 {
    -webkit-transform: translate3d(-20rem, 0, 0) skewX(4deg);
            transform: translate3d(-20rem, 0, 0) skewX(4deg);
  }
}
.nav__line {
  position: absolute;
  top: 50%;
  left: -100%;
  width: 11.6rem;
  height: 0.1rem;
  opacity: 0;
  background-color: rgb(255, 255, 255);
  -webkit-transform: translate3d(85.4rem, 0, 0);
          transform: translate3d(85.4rem, 0, 0);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.logo {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 1000;
  pointer-events: none;
}
.logo #logo {
  max-width: 26rem;
}
@media (min-width: 1113px) {
  .logo #logo {
    max-width: 50rem;
  }
}

.btn, .btn__client-list {
  -webkit-text-decoration: none;
  text-decoration: none;
  border: 0.1rem solid #2cb5a7;
  position: relative;
  overflow: hidden;
  display: inline-block;
  text-align: center;
  text-transform: uppercase;
  color: #2cb5a7;
  outline: 0;
  background: transparent;
}
.btn:before, .btn__client-list:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: -100%;
  background: linear-gradient(120deg, transparent, rgba(44, 181, 167, 0.4), transparent);
  -webkit-transition: all 650ms;
  transition: all 650ms;
}
.btn:hover, .btn__client-list:hover {
  -webkit-box-shadow: 0.1rem 0.1rem 2.5rem 1rem rgba(44, 181, 167, 0.4);
          box-shadow: 0.1rem 0.1rem 2.5rem 1rem rgba(44, 181, 167, 0.4);
}
.btn:hover::before, .btn__client-list:hover::before {
  left: 100%;
}
.btn__client-list {
  padding: 0.7rem 3rem;
  font-size: 2.4rem;
}
.btn__animated {
  position: relative;
  z-index: 0;
  overflow: hidden;
  display: inline-block;
  padding: 2.2rem 3rem;
  border: 0;
  font-size: 1.8rem;
  cursor: pointer;
  color: #fff;
  text-transform: uppercase;
  font-weight: 700;
}
.btn__animated::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: auto;
  z-index: -2;
  background-color: #2cb5a7;
  background-repeat: no-repeat;
  background-size: 50% 50%, 50% 50%;
  background-position: 0 0, 100% 0, 100% 100%, 0 100%;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#35e0cf), to(#35e0cf)), -webkit-gradient(linear, left top, left bottom, from(#20998c), to(#20998c)), -webkit-gradient(linear, left top, left bottom, from(#35e0cf), to(#35e0cf)), -webkit-gradient(linear, left top, left bottom, from(#20998c), to(#20998c));
  background-image: linear-gradient(#35e0cf, #35e0cf), linear-gradient(#20998c, #20998c), linear-gradient(#35e0cf, #35e0cf), linear-gradient(#20998c, #20998c);
  -webkit-animation: rotate 4s linear infinite;
          animation: rotate 4s linear infinite;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.btn__animated::after {
  content: "";
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  width: calc(100% - 1.2rem);
  height: auto;
  z-index: -1;
  background-color: #2cb5a7;
}
.btn__animated:hover, .btn__animated:active {
  color: #fff;
}
.btn__animated:hover::after, .btn__animated:active::after {
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@-webkit-keyframes rotate {
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn);
  }
}
@keyframes rotate {
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn);
  }
}

.section {
  overflow: hidden;
  min-height: 100dvh;
  width: 100%;
  height: 100dvh;
  -webkit-transition: -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  transition: -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  transition: transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, filter 1s ease-in-out;
  transition: transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, filter 1s ease-in-out, -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  position: fixed;
  top: 0;
  left: 0;
}
.section:not(.section__intro) {
  opacity: 0;
  visibility: hidden;
}
.is-menu-active .section {
  width: 100%;
  -webkit-transform: perspective(2000px) translate3d(-12rem, 0px, 0px);
          transform: perspective(2000px) translate3d(-12rem, 0px, 0px);
  -webkit-transition: -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  transition: -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  transition: transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, filter 1s ease-in-out;
  transition: transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, filter 1s ease-in-out, -webkit-transform 500ms cubic-bezier(0.215, 0.61, 0.355, 1) 0ms, -webkit-filter 1s ease-in-out;
  pointer-events: none;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
  -webkit-filter: blur(0.5rem) grayscale(50%);
          filter: blur(0.5rem) grayscale(50%);
}
.is-menu-active .section::after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: #292b2c;
  opacity: 0.6;
  pointer-events: none;
  z-index: 8;
  -webkit-transition: all 400ms cubic-bezier(0.39, 0.575, 0.565, 1) 0ms;
  transition: all 400ms cubic-bezier(0.39, 0.575, 0.565, 1) 0ms;
  position: absolute;
  top: 0;
}
.section video {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
}
.section .bgd {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.section .bgd picture {
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  position: absolute;
  z-index: 0;
}
.section .bgd__img {
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  -webkit-transition: -webkit-filter 0.3s ease-in-out;
  transition: -webkit-filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out, -webkit-filter 0.3s ease-in-out;
  -webkit-transition-duration: 1.4s;
          transition-duration: 1.4s;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 767px) {
  .section .bgd__img {
    -o-object-position: 70% 50%;
       object-position: 70% 50%;
  }
}
.section.is-active h2, .section.is-active .r-text__pretitle {
  text-shadow: 1px 1px 5px #2cb5a7, 1px 1px 15px #2cb5a7;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.section.is-active .bgd__img {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-filter: grayscale(0%);
          filter: grayscale(0%);
  -webkit-transition: -webkit-filter 0.3s ease-in-out;
  transition: -webkit-filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out, -webkit-filter 0.3s ease-in-out;
  -webkit-transition-delay: 1s;
          transition-delay: 1s;
  -webkit-transition-duration: 1.4s;
          transition-duration: 1.4s;
}
.section .box {
  bottom: auto;
  width: 100%;
  min-height: 100%;
  z-index: 33;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  height: 100%;
  padding: 3rem 2rem 3rem 5rem;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
@media (min-width: 768px) {
  .section .box {
    position: absolute;
    top: auto;
    right: auto;
    bottom: 4rem;
    left: 0;
    padding: 0 0 0 5rem;
    width: 70rem;
    min-height: 14rem;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    height: auto;
  }
}
.section .box__inner {
  width: 100%;
  position: relative;
}
.section .box p:last-of-type {
  margin: 0;
}
.section .box h2, .section .box .r-text__pretitle {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (min-width: 576px) {
  .section .r-text__desc {
    width: 100%;
    font-size: 1.6rem;
  }
}
@media (min-width: 768px) {
  .section .r-text__desc {
    width: 90%;
    left: 22px;
  }
}
.section .r-text__title {
  margin-left: 10px;
}
@media (min-width: 768px) {
  .section .r-text__title {
    margin-left: 30px;
  }
}
.section .r-text.r-text-no-pretitle .r-text__title {
  margin-left: 0;
}
.section .r-text.r-text-no-pretitle .r-text__desc {
  left: 0;
  padding-left: 0;
}

.section__intro .three__mountain {
  width: 100;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.section__intro .box {
  height: 100%;
  width: 100%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  z-index: 3;
}
.section__intro .box__text {
  padding: 0 1.5rem;
  position: absolute;
  bottom: 7rem;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  width: 100%;
}
@media (min-width: 1113px) {
  .section__intro .box__text {
    position: absolute;
    bottom: 4rem;
    left: 4rem;
    -webkit-transform: none;
            transform: none;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    text-align: left;
  }
}
.section__intro .box__text-title {
  padding: 0 3rem;
}
.section__intro .box__text-title h1 {
  font-size: 3.4rem;
  word-wrap: break-word;
  margin-bottom: 3rem;
  color: #fff;
  opacity: 0;
  text-align: center;
}
@media (min-width: 1113px) {
  .section__intro .box__text-title h1 {
    text-align: left;
  }
}
.section__intro .box__text-title p {
  font-size: 1.6rem;
  color: #fff;
  font-weight: 500;
  opacity: 0;
  text-align: center;
  max-width: 600px;
}
@media (min-width: 1113px) {
  .section__intro .box__text-title p {
    text-align: left;
  }
}
.section__intro .box__text-title p:last-child {
  margin-bottom: 0;
}
.section__intro .clutch-reward {
  background-image: url(../../assets/img/clutch-logo-service.7e3ca5.png);
  width: 10rem;
  height: auto;
  z-index: 9;
  display: none;
}
@media (min-width: 1113px) {
  .section__intro .clutch-reward {
    position: absolute;
    right: 10rem;
    bottom: 4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.section__intro .clutch-reward:hover {
  -webkit-transform: scale(1.1) !important;
          transform: scale(1.1) !important;
}

.section__what-we-do::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../../assets/img/raster.2a180e.png) repeat;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.section__what-we-do .bgd__img {
  position: absolute;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  -webkit-transition: -webkit-filter 0.3s ease-in-out;
  transition: -webkit-filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out, -webkit-filter 0.3s ease-in-out;
  -webkit-transition-duration: 1.4s;
          transition-duration: 1.4s;
}
@media (max-width: 767px) {
  .section__what-we-do .bgd__img {
    -o-object-position: 70% 50%;
       object-position: 70% 50%;
  }
}
@media (max-width: 767px) {
  .section__what-we-do.item.item-1 img {
    -o-object-position: right 20% top 50%;
       object-position: right 20% top 50%;
  }
  .section__what-we-do.item.item-4 img {
    -o-object-position: left 50%;
       object-position: left 50%;
  }
  .section__what-we-do.item.item-5 img {
    -o-object-position: right 60% top 50%;
       object-position: right 60% top 50%;
  }
}
.section__what-we-do.item-1 .bgd {
  mix-blend-mode: lighten;
}
.section__what-we-do.item-2 .bgd {
  mix-blend-mode: hard-light;
}
.section__what-we-do.item-2 .bgd::before, .section__what-we-do.item-2 .bgd:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 1;
}
.section__what-we-do.item-2 .bgd::before {
  left: -6px;
  background-image: url(../../assets/img/what-we-do-web.e7d3a3.jpg);
  -webkit-filter: grayscale(100%) sepia(100%) saturate(250%) hue-rotate(120deg) brightness(121%) contrast(121%);
          filter: grayscale(100%) sepia(100%) saturate(250%) hue-rotate(120deg) brightness(121%) contrast(121%);
}
.section__what-we-do.item-2 .bgd::after {
  left: 6px;
  background-image: url(../../assets/img/what-we-do-web.e7d3a3.jpg);
  -webkit-filter: sepia(100%) hue-rotate(190deg) saturate(500%);
          filter: sepia(100%) hue-rotate(190deg) saturate(500%);
}
.section__what-we-do.item-3 .bgd {
  mix-blend-mode: hard-light;
}
.section__what-we-do.item-4 .bgd {
  mix-blend-mode: lighten;
}
.section__what-we-do.item-5 {
  background: #090e10;
}
.section__what-we-do.item-5 .bgd {
  mix-blend-mode: lighten;
}
.section__what-we-do.is-active.item-1 .bgd__img {
  -webkit-animation: move-1 5s linear forwards;
          animation: move-1 5s linear forwards;
}
.section__what-we-do.is-active.item-2 .bgd::before, .section__what-we-do.is-active.item-2 .bgd::after {
  z-index: 2;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.section__what-we-do.is-active.item-2 .bgd::before {
  animation: glitch-effect 2s infinite linear alternate-reverse;
}
.section__what-we-do.is-active.item-2 .bgd::after {
  animation: glitch-effect 3s infinite linear alternate-reverse;
}
.section__what-we-do.is-active.item-3 .bgd__img {
  -webkit-animation: move-3 5s linear forwards;
          animation: move-3 5s linear forwards;
}
.section__what-we-do.is-active.item-4 {
  -webkit-perspective: 10px;
          perspective: 10px;
}
.section__what-we-do.is-active.item-4 .bgd__img {
  -webkit-animation: move-4 150s linear alternate infinite;
          animation: move-4 150s linear alternate infinite;
}
.section__what-we-do.is-active.item-5 .bgd__img {
  -webkit-animation: move-5 5s linear forwards;
          animation: move-5 5s linear forwards;
}

.section__technologies {
  background: #000;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
}
.section__technologies.is-active {
  -webkit-filter: grayscale(0%);
          filter: grayscale(0%);
}
.section__technologies .r-text__desc {
  left: 0;
  padding-left: 0;
}
.section__technologies .r-text__desc h2 {
  font-size: 1.6rem;
  line-height: 1.6;
}
.section__technologies video {
  -o-object-fit: contain;
     object-fit: contain;
}
.section__technologies #tech_canvas {
  width: 100%;
  height: 100%;
}
.section__technologies #tech_canvas > canvas,
.section__technologies #tech_canvas > div {
  pointer-events: none;
}
.section__technologies #tech_canvas.active > canvas {
  pointer-events: all;
}
.section__technologies .element {
  width: 18rem;
  height: auto;
  -webkit-box-shadow: 0 0 1.2rem rgba(47, 113, 219, 0.5);
          box-shadow: 0 0 1.2rem rgba(47, 113, 219, 0.5);
  border: 1px solid rgba(57, 60, 87, 0.27);
  text-align: center;
  cursor: default;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: space-evenly;
      -ms-flex-pack: space-evenly;
          justify-content: space-evenly;
}
@media (min-width: 768px) {
  .section__technologies .element {
    width: 24rem;
    height: 20rem;
  }
}
.section__technologies .element:hover {
  -webkit-box-shadow: 0 0 1.2rem rgba(47, 113, 219, 0.75);
          box-shadow: 0 0 1.2rem rgba(47, 113, 219, 0.75);
  border: 1px solid rgba(47, 113, 219, 0.75);
}
.section__technologies .element .number {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.75);
  display: none;
}
.section__technologies .element .symbol {
  font-size: 4rem;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.75);
  text-shadow: 0 0 1rem rgba(255, 255, 255, 0.95);
}
@media (min-width: 1113px) {
  .section__technologies .element .symbol {
    font-size: 5.5rem;
  }
}
.section__technologies .element .details {
  color: rgba(255, 255, 255, 0.75);
  text-shadow: 0 0 1rem rgba(255, 255, 255, 0.95);
  font-size: 1.8rem;
  padding: 3px 4px;
}
@media (min-width: 1113px) {
  .section__technologies .element .details {
    font-size: 2rem;
    padding: 0 4px;
  }
}

.section__clients::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../../assets/img/raster.2a180e.png) repeat;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.section__clients {
  background: #0a0e11;
  -webkit-transition: background 0.3s ease-in-out;
  transition: background 0.3s ease-in-out;
  -webkit-transition-delay: 1s;
          transition-delay: 1s;
  -webkit-transition-duration: 1.4s;
          transition-duration: 1.4s;
}
@media (min-width: 1113px) {
  .section__clients .box {
    width: 55rem;
  }
}
.section__clients .box h3 {
  margin-bottom: 1em;
  text-align: left;
  color: #fff;
  font-size: 1.8rem;
  line-height: 140%;
}
.section__clients .box h4 {
  font-size: 2rem;
  color: #fff;
  margin-bottom: 2rem;
}
.section__clients .bgd {
  mix-blend-mode: lighten;
}
.section__clients.is-active .bgd__img {
  -webkit-animation: move-5 5s linear forwards;
          animation: move-5 5s linear forwards;
}

.section__blog::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(../../assets/img/raster.2a180e.png) repeat;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.section__blog .btn {
  margin-top: 10px;
}
@media (min-width: 1113px) {
  .section__blog .btn {
    margin-top: 30px;
  }
}
.section__blog .bgd {
  mix-blend-mode: lighten;
}
@keyframes move-1 {
  from {
    -webkit-transform: translate3d(20px, 0, 0) scale(1.1);
            transform: translate3d(20px, 0, 0) scale(1.1);
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
            transform: translate3d(0, 0, 0) scale(1);
  }
}
.section__blog .bgd .bgd__img {
  -webkit-animation: move-1 5s linear forwards;
          animation: move-1 5s linear forwards;
}
.section__blog.is-active .bgd__img {
  -webkit-animation: move-1 5s linear forwards;
          animation: move-1 5s linear forwards;
}

.section__contact {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 0 2rem;
  background: #000;
}
.section__contact video {
  clip-path: polygon(0 0, 70% 0, 100% 100%, 0% 100%);
}
@media (min-width: 768px) {
  .section__contact video {
    clip-path: polygon(0 0, 50% 0, 100% 220%, 0% 100%);
  }
}
@media (min-width: 1441px) {
  .section__contact video {
    clip-path: polygon(0 0, 50% 0, 100% 130%, 0% 100%);
  }
}
.section__contact-overlay {
  background-image: url(../../assets/img/lines-horizontal.a54362.png);
  background-repeat: repeat;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.section__contact .box {
  padding: 20px 20px 60px;
  position: relative;
  width: 100%;
}
@media (min-width: 768px) {
  .section__contact .box {
    position: absolute;
    top: 0;
    right: 0;
    top: 20px;
    right: 0;
    padding: 4rem;
    text-align: right;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
@media (min-width: 1113px) {
  .section__contact .box {
    padding: 5rem 115px;
  }
}
@media (min-width: 1441px) {
  .section__contact .box {
    padding: 5rem 11.5rem;
  }
}
.section__contact .box h2 {
  text-align: left;
  font-size: 6rem;
  margin-bottom: 3.25rem;
  color: #fff;
  text-shadow: 0 0 4px #fff, 0 0 11px #fff, 0 0 19px #fff, 0 0 40px #2cb5a7, 0 0 80px #2cb5a7, 0 0 90px #2cb5a7, 0 0 100px #2cb5a7, 0 0 150px #2cb5a7;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .section__contact .box h2 {
    text-align: center;
    margin-bottom: 6.25rem;
  }
}
.section__contact .box p {
  font-size: 1.6rem;
  line-height: 150%;
  color: #fff;
  max-width: 360px;
}
.section__contact .box .btn {
  margin-top: 2rem;
}
.section__contact .social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 10px;
}
.section__contact .social a {
  color: #2cb5a7;
  border: 1px solid #2cb5a7;
  border-radius: 500px;
  width: 40px;
  height: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0 5px;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
@media (min-width: 1113px) {
  .section__contact .social a {
    margin-left: 10px;
  }
}
.section__contact .social a svg {
  color: currentColor;
  max-width: 20px;
  -webkit-transition: none;
  transition: none;
}
@media (hover: hover) {
  .section__contact .social a:hover {
    color: #2f71db;
    border-color: #2f71db;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
  }
  .section__contact .social a:hover svg {
    -webkit-transition: none;
    transition: none;
  }
}

footer {
  position: absolute;
  bottom: 1rem;
  left: 4rem;
  text-align: left;
}
footer div {
  font-size: 1.6rem;
  color: #fff;
}
@media (min-width: 768px) {
  footer div {
    font-size: 1.2rem;
  }
}

.modal-open {
  overflow: hidden;
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(0, 0, 0, 0.9);
  max-width: 100%;
  max-height: 100%;
}
.modal[open] {
  display: block;
}
.modal::-ms-backdrop {
  background: transparent;
}
.modal::backdrop {
  background: transparent;
}
.modal-dialog {
  position: relative;
  width: auto;
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
  -webkit-transform: translate(0, -50px);
          transform: translate(0, -50px);
  pointer-events: auto;
  margin: 30px auto;
}
.modal[open] .modal-dialog {
  -webkit-transform: none;
          transform: none;
}
.modal-content {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}
.modal-close {
  width: 10rem;
  margin: 0 auto 3rem;
}
.modal-close button {
  background: #2cb5a7;
  height: 10rem;
  width: 10rem;
  border: 0;
  color: #fff;
  font-size: 4.4rem;
  -webkit-transform: rotate(-45deg) scale(0.7);
          transform: rotate(-45deg) scale(0.7);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.modal-close button:hover, .modal-close button:focus, .modal-close button:focus-visible, .modal-close button:active {
  background: #2f71db;
  font-size: 5rem;
}
.modal-header {
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-align: start;
  -webkit-box-align: start;
          align-items: flex-start;
  -ms-flex-pack: justify;
  padding: 1rem 1rem;
  border-top-left-radius: calc(0.3rem - 1px);
  border-top-right-radius: calc(0.3rem - 1px);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 0;
}
.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}
.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
  color: #2b2b2b;
  font-size: 3rem;
}
.modal-body {
  position: relative;
  -ms-flex: 1 1 auto;
  -webkit-box-flex: 1;
          flex: 1 1 auto;
  padding: 2rem;
}
.modal-body a {
  color: #2cb5a7;
}
.modal-body a:hover, .modal-body a:focus, .modal-body a:focus-visible, .modal-body a:active {
  color: #2f71db;
}
.modal-body h3 {
  color: #fff;
  text-align: center;
  font-size: 5rem;
  margin-bottom: 3rem;
  text-transform: uppercase;
  margin-top: 0;
}
.modal.modal-clients .col-md-4 {
  border-left: 0.1rem solid rgba(255, 255, 255, 0.35);
}
@media (max-width: 767px) {
  .modal.modal-clients .col-md-4 {
    border: 0;
  }
}
.modal.modal-clients ul {
  list-style: none;
  padding: 0;
  color: #fff;
  text-align: center;
  margin-bottom: 0;
  margin-top: 0;
}
@media (min-width: 768px) {
  .modal.modal-clients ul {
    font-size: 1.2rem;
    text-align: left;
  }
}
.modal.modal-clients ul li {
  padding-bottom: 0.7rem;
  position: relative;
}
.modal.modal-contact-us .modal-header {
  margin-bottom: 2rem;
}
.modal.modal-contact-us .modal-title {
  color: #fff;
}
.modal.modal-contact-us .modal-close {
  margin: 0 auto 2rem;
}
.modal.modal-contact-us .modal-content {
  background: transparent;
}
.modal.modal-contact-us #contact-form .control-group {
  width: 100%;
  margin-bottom: 2rem;
}
.modal.modal-contact-us #contact-form .control-group.control-group-text {
  width: 100%;
}
.modal.modal-contact-us #contact-form .control-group .controls {
  position: relative;
}
.modal.modal-contact-us #contact-form .control-group .controls textarea, .modal.modal-contact-us #contact-form .control-group .controls input {
  outline: 0;
  margin-bottom: 1rem;
  padding: 1.2rem 2rem;
  background: rgba(0, 0, 0, 0.8);
  border: 0.1rem solid #2cb5a7;
  color: #fff;
  font-size: 1.4rem;
  width: 100%;
  height: 5rem;
}
.modal.modal-contact-us #contact-form .control-group .controls input {
  height: 6rem;
}
.modal.modal-contact-us #contact-form .control-group .controls textarea {
  min-height: 16rem;
  resize: none;
  margin-bottom: 0;
}
.modal.modal-contact-us #contact-form .control-group .controls label {
  color: #fff;
  margin-bottom: 0.5em;
}
.modal.modal-contact-us #contact-form .control-group .controls .help-block ul {
  font-size: 1.2rem;
  color: #ee3b5b;
  list-style: none;
  margin: 0;
  padding: 0;
}
.modal.modal-contact-us #contact-form .control-group .controls textarea + .help-block ul {
  top: 22%;
}
.modal.modal-contact-us #contact-form button.submit {
  font-size: 1.6rem;
  padding: 1.9rem 5rem;
  border: 0;
  width: 18rem;
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-family: var(--font-family);
  font-weight: 700;
  margin: auto;
  background: #2cb5a7;
}
.modal.modal-contact-us #contact-form button.submit:hover, .modal.modal-contact-us #contact-form button.submit:focus, .modal.modal-contact-us #contact-form button.submit:focus-visible, .modal.modal-contact-us #contact-form button.submit:active {
  background: #2f71db;
  color: #fff;
  -webkit-transition: background 0.5s ease-in-out;
  transition: background 0.5s ease-in-out;
}
.modal.modal-contact-us #contact-form #success {
  display: inline-block;
  width: 100%;
  color: #333;
  text-align: left;
}
.modal.modal-contact-us #contact-form #success .alert {
  position: relative;
  margin: 1rem auto 2rem;
  padding: 15px 40px 15px 15px;
  font-size: 14px;
  text-align: center;
}
.modal.modal-contact-us #contact-form #success .alert-success {
  color: #d4edda;
  border: 0.1rem solid #2cb5a7;
}
.modal.modal-contact-us #contact-form #success .alert-success button {
  color: #2cb5a7;
}
.modal.modal-contact-us #contact-form #success .alert-danger {
  color: #ee3b5b;
  border: 0.1rem solid #ee3b5b;
}
.modal.modal-contact-us #contact-form #success .alert-danger button {
  color: #ee3b5b;
}
.modal.modal-contact-us #contact-form #success .alert a {
  font-weight: bold;
}
.modal.modal-contact-us #contact-form #success .alert p:last-of-type {
  margin-bottom: 0;
}
.modal.modal-contact-us #contact-form #success button {
  border: 0;
  position: absolute;
  right: 0;
  top: 0;
  margin: 0;
  padding: 0.5rem 1rem;
  font-size: 3rem;
  background: transparent;
  line-height: 1;
}
.modal.modal-notice {
  color: #fff;
}
.modal h4 {
  color: #2cb5a7;
  font-weight: 500;
  font-size: 2rem;
  position: relative;
  margin-bottom: 1rem;
  text-align: center;
}
@media (min-width: 768px) {
  .modal h4 {
    font-size: 1.5rem;
    text-align: left;
  }
}
.modal .title {
  text-align: center;
}
@media (min-width: 768px) {
  .modal .title {
    text-align: left;
  }
}
.modal .row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5rem;
  -ms-flex-pack: distribute;
      justify-content: space-around;
}
@media (max-width: 767px) {
  .modal .row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
}
.modal .col {
  width: 100%;
}

@media (min-width: 576px) {
  .modal-dialog {
    max-width: 100%;
    margin: 1.75rem auto;
  }
  .modal-sm {
    max-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg,
  .modal-xl {
    max-width: 1025px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    max-width: 1140px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .modal .modal-dialog {
    -webkit-transition: none;
    transition: none;
  }
}
.txt--clr-white {
  color: #fff;
}
.txt--clr-black {
  color: #292b2c;
}
.txt--clr-purple {
  color: #6e4c71;
}
.txt--clr-red {
  color: #ee3b5b;
}
.txt--clr-gray {
  color: #999899;
}
.txt--clr-green {
  color: #2cb5a7;
}
.txt--clr-dark {
  color: #393c57;
}
.txt--clr-blue {
  color: #2f71db;
}

.bg--clr-white {
  background-color: #fff;
}
.bg--clr-black {
  background-color: #292b2c;
}
.bg--clr-purple {
  background-color: #6e4c71;
}
.bg--clr-red {
  background-color: #ee3b5b;
}
.bg--clr-gray {
  background-color: #999899;
}
.bg--clr-green {
  background-color: #2cb5a7;
}
.bg--clr-dark {
  background-color: #393c57;
}
.bg--clr-blue {
  background-color: #2f71db;
}

.btn--clr-white {
  background-color: #fff;
}
.btn--clr-black {
  background-color: #292b2c;
}
.btn--clr-purple {
  background-color: #6e4c71;
}
.btn--clr-red {
  background-color: #ee3b5b;
}
.btn--clr-gray {
  background-color: #999899;
}
.btn--clr-green {
  background-color: #2cb5a7;
}
.btn--clr-dark {
  background-color: #393c57;
}
.btn--clr-blue {
  background-color: #2f71db;
}

.pos-rel {
  position: relative;
}

.pos-stc {
  position: static !important;
}

.pos-abt {
  position: absolute;
}

.pos-fix {
  position: fixed;
}

.no-resize {
  resize: none;
}

.invisible {
  visibility: hidden;
}

small, .small {
  font-size: 12px;
}

.c-all-0 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9;
}

.c-all {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 10;
}

.border-0 {
  border: 0 !important;
}

.stars {
  height: 100%;
  width: 100%;
  position: absolute;
  z-index: 1;
  overflow: hidden;
}

.star {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  position: absolute;
  background-color: rgba(0, 123, 255, 0.8);
  -webkit-box-shadow: 0 0 40px 0 rgba(0, 123, 255, 0.8), 0 0 20px 0 #fff;
          box-shadow: 0 0 40px 0 rgba(0, 123, 255, 0.8), 0 0 20px 0 #fff;
  -webkit-animation: glow 5s infinite;
          animation: glow 5s infinite;
  pointer-events: none;
}
.star--medium {
  width: 6px;
  height: 6px;
}
.star--big {
  width: 9px;
  height: 9px;
  -webkit-box-shadow: 0 0 40px 0 #007bff, 0 0 20px 0 #fff, inset 0 0 4px #fff;
          box-shadow: 0 0 40px 0 #007bff, 0 0 20px 0 #fff, inset 0 0 4px #fff;
}
.star.comet {
  width: 5px;
  height: 5px;
  background-color: rgba(255, 255, 255, 0.6);
  -webkit-box-shadow: 0 0 7px 7px rgba(255, 255, 255, 0.3);
          box-shadow: 0 0 7px 7px rgba(255, 255, 255, 0.3);
  top: 0;
  opacity: 0.3;
  -webkit-transform: rotate(-45deg) translate(0, -50px);
          transform: rotate(-45deg) translate(0, -50px);
  -webkit-animation: comet 50s infinite;
          animation: comet 50s infinite;
}
.star.comet::after {
  content: "";
  width: 10vw;
  height: 4px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.1);
  -webkit-box-shadow: 0 0 60px rgba(237, 205, 163, 0.4);
          box-shadow: 0 0 60px rgba(237, 205, 163, 0.4);
  position: absolute;
  top: 0;
  left: 0;
}

.section__what-we-do .star {
  background-color: rgba(255, 243, 243, 0.8);
  -webkit-box-shadow: 0 0 40px 0 rgba(252, 253, 255, 0.8), 0 0 20px 0 #fff;
          box-shadow: 0 0 40px 0 rgba(252, 253, 255, 0.8), 0 0 20px 0 #fff;
}
.section__what-we-do .star.star--big {
  -webkit-box-shadow: 0 0 40px 0 #eaeaea, 0 0 20px 0 #fff, inset 0 0 4px #fff;
          box-shadow: 0 0 40px 0 #eaeaea, 0 0 20px 0 #fff, inset 0 0 4px #fff;
}

@-webkit-keyframes glow {
  0% {
    opacity: 0.9;
  }
  50% {
    opacity: 0.2;
  }
  100% {
    opacity: 0.9;
  }
}

@keyframes glow {
  0% {
    opacity: 0.9;
  }
  50% {
    opacity: 0.2;
  }
  100% {
    opacity: 0.9;
  }
}
@-webkit-keyframes comet {
  0% {
    -webkit-transform: rotate(-45deg) translateX(0);
            transform: rotate(-45deg) translateX(0);
    opacity: 0.3;
  }
  10% {
    opacity: 1;
  }
  20% {
    -webkit-transform: rotate(-45deg) translateX(-100vw);
            transform: rotate(-45deg) translateX(-100vw);
    opacity: 0;
  }
  100% {
    -webkit-transform: rotate(-45deg) translateX(-100vw);
            transform: rotate(-45deg) translateX(-100vw);
    opacity: 0;
  }
}
@keyframes comet {
  0% {
    -webkit-transform: rotate(-45deg) translateX(0);
            transform: rotate(-45deg) translateX(0);
    opacity: 0.3;
  }
  10% {
    opacity: 1;
  }
  20% {
    -webkit-transform: rotate(-45deg) translateX(-100vw);
            transform: rotate(-45deg) translateX(-100vw);
    opacity: 0;
  }
  100% {
    -webkit-transform: rotate(-45deg) translateX(-100vw);
            transform: rotate(-45deg) translateX(-100vw);
    opacity: 0;
  }
}
.draw-in {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  -webkit-animation: draw 15s ease-in-out alternate infinite;
          animation: draw 15s ease-in-out alternate infinite;
}

@-webkit-keyframes draw {
  from {
    stroke-dashoffset: 1000;
  }
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes draw {
  from {
    stroke-dashoffset: 1000;
  }
  to {
    stroke-dashoffset: 0;
  }
}
.item-to {
  -webkit-animation-duration: 10s;
          animation-duration: 10s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
}

.bounce-1 {
  -webkit-animation-name: bounce-1;
          animation-name: bounce-1;
  -webkit-animation-timing-function: ease;
          animation-timing-function: ease;
}

.bounce-2 {
  -webkit-animation-name: bounce-2;
          animation-name: bounce-2;
  -webkit-animation-timing-function: ease;
          animation-timing-function: ease;
}

.bounce-3 {
  -webkit-animation-name: bounce-3;
          animation-name: bounce-3;
  -webkit-animation-timing-function: ease;
          animation-timing-function: ease;
}

@-webkit-keyframes bounce-1 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(50px);
            transform: translateY(50px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes bounce-1 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(50px);
            transform: translateY(50px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes bounce-2 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes bounce-2 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes bounce-3 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes bounce-3 {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes rotation {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rotation {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hcHBfaGVhZC5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBYUE7RUFDRTtFQUFBO0FDWkY7O0FENkNBO0VBbkJFLHdDQW9CQTtFQXBCQSxnQ0FvQkE7QUMxQ0Y7O0FENkNBO0VBdkJFLHdDQXdCQTtFQXhCQSxnQ0F3QkE7QUMxQ0Y7O0FENkNBO0VBM0JFLHdDQTRCQTtFQTVCQSxnQ0E0QkE7QUMxQ0Y7O0FDSkk7RUFDRTtBRE9OOztBQ1JJO0VBQ0U7QURXTjs7QUNaSTtFQUNFO0FEZU47O0FDaEJJO0VBQ0U7QURtQk47O0FDcEJJO0VBQ0U7QUR1Qk47O0FDeEJJO0VBQ0U7QUQyQk47O0FDNUJJO0VBQ0U7QUQrQk47O0FDaENJO0VBQ0U7QURtQ047O0FDcENJO0VBQ0U7QUR1Q047O0FDeENJO0VBQ0U7QUQyQ047O0FDNUNJO0VBQ0U7QUQrQ047O0FDaERJO0VBQ0U7QURtRE47O0FDcERJO0VBQ0U7QUR1RE47O0FDeERJO0VBQ0U7QUQyRE47O0FDNURJO0VBQ0U7QUQrRE47O0FDaEVJO0VBQ0U7QURtRU47O0FDcEVJO0VBQ0U7QUR1RU47O0FDeEVJO0VBQ0U7QUQyRU47O0FDNUVJO0VBQ0U7QUQrRU47O0FDaEZJO0VBQ0U7QURtRk47O0FFOUZBO0VBQ0M7OztJQUdDO0lBQ0E7SUFDQTtJQUNBO1lBQUE7SUFDQTtFRmlHQTtFRTlGRDs7SUFFQztJQUFBO0VGZ0dBO0VFN0ZEO0lBQ0M7RUYrRkE7RUU1RkQ7SUFDQztFRjhGQTtFRTNGRDs7O0lBQUE7RUFJQTs7SUFFQztFRjZGQTtFRTFGRDtJQUNDO0VGNEZBO0VFekZEOztJQUVDO0lBQ0E7RUYyRkE7RUV4RkQ7OztJQUFBO0VBSUE7SUFDQztFRjBGQTtFRXZGRDs7SUFFQztFRnlGQTtFRXRGRDs7O0lBR0M7SUFDQTtFRndGQTtFRXJGRDs7SUFFQztFRnVGQTtBQUNGO0FFcEZBO0VBSUM7QUZtRkQ7QUcxSkE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUg0SkQ7O0FH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Q0Y7QUFDRjtBVzVvQkE7RUFDQztJQUNDO1lBQUE7RVg4b0JBO0VXNW9CRDtJQUNDO1lBQUE7RVg4b0JBO0FBQ0Y7QVdwcEJBO0VBQ0M7SUFDQztZQUFBO0VYOG9CQTtFVzVvQkQ7SUFDQztZQUFBO0VYOG9CQTtBQUNGO0FXMW9CQTtFQUVFO0lBQ0M7RVgyb0JEO0VXNW9CQTtJQUNDO0VYOG9CRDtFVy9vQkE7SUFDQztFWGlwQkQ7RVdscEJBO0lBQ0M7RVhvcEJEO0VXcnBCQTtJQUNDO0VYdXBCRDtFV3hwQkE7SUFDQztFWDBwQkQ7RVczcEJBO0lBQ0M7RVg2cEJEO0VXOXBCQTtJQUNDO0VYZ3FCRDtFV2pxQkE7SUFDQztFWG1xQkQ7RVdwcUJBO0lBQ0M7RVhzcUJEO0VXdnFCQTtJQUNDO0VYeXFCRDtFVzFxQkE7SUFDQztFWDRxQkQ7RVc3cUJBO0lBQ0M7RVgrcUJEO0VXaHJCQTtJQUNDO0VYa3JCRDtFV25yQkE7SUFDQztFWHFyQkQ7RVd0ckJBO0lBQ0M7RVh3ckJEO0VXenJCQTtJQUNDO0VYMnJCRDtFVzVyQkE7SUFDQztFWDhyQkQ7RVcvckJBO0lBQ0M7RVhpc0JEO0VXbHNCQTtJQUNDO0VYb3NCRDtFV3JzQkE7SUFDQztFWHVzQkQ7QUFDRjtBVzNzQkE7RUFFRTtJQUNDO0VYMm9CRDtFVzVvQkE7SUFDQztFWDhvQkQ7RVcvb0JBO0lBQ0M7RVhpcEJEO0VXbHBCQTtJQUNDO0VYb3BCRDtFV3JwQkE7SUFDQztFWHVwQkQ7RVd4cEJBO0lBQ0M7RVgwcEJEO0VXM3BCQTtJQUNDO0VYNnBCRDtFVzlwQkE7SUFDQztFWGdxQkQ7RVdqcUJBO0lBQ0M7RVhtcUJEO0VXcHFCQTtJQUNDO0VYc3FCRDtFV3ZxQkE7SUFDQztFWHlxQkQ7RVcxcUJBO0lBQ0M7RVg0cUJEO0VXN3FCQTtJQUNDO0VYK3FCRDtFV2hyQkE7SUFDQztFWGtyQkQ7RVduckJBO0lBQ0M7RVhxckJEO0VXdHJCQTtJQUNDO0VYd3JCRDtFV3pyQkE7SUFDQztFWDJyQkQ7RVc1ckJBO0lBQ0M7RVg4ckJEO0VXL3JCQTtJQUNDO0VYaXNCRDtF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eUM0QjtFQUMzQjtFQUNBO1VBQUE7RUFDQTtVQUFBO0VBQ0E7RUFBQTtFQUNBO0VBQ0E7QXZCNDBDRjtBdUJ6MENDO0VYYkMsa0JXYzJCO0VYWHZCLFFBVE07RUNoQ1gsV1VxRHNCO0VWcER0QixZVW9ENEI7RUFDM0I7RUFDQTtBdkI2MENGO0F1QjEwQ0M7RUFDQztVQUFBO0F2QjQwQ0Y7QXVCejBDQztFQUNDO0VYekJBLGtCVzBCMkI7RVh2QnZCLFVBVE07RUNoQ1gsV1VpRXNCO0VWaEV0QixZVWdFNEI7RUFDM0I7RUFDQTtFQUNBO0VBQ0E7QXZCNjBDRjtBSWoyQkk7RW1CbmZIO0lBU0U7RXZCKzBDRDtBQUNGO0F1QjUwQ0M7RVhyQ0Msa0JXc0MyQjtFWG5DdkIsT0FUTTtFQVNOLFVBVE07RUNoQ1gsWVU2RXNCO0VWNUV0QixjVTRFNkI7RUFDNUI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7RUFBQTtBdkJpMUNGO0FJbjNCSTtFbUJ0ZUg7SUFVRTtJQUNBO0V2Qm0xQ0Q7QUFDRjtBdUI5MENHO0VBQ0M7RUFDQTtFQUNBO0VBQUE7QXZCZzFDSjtBdUIzMENHO0VBQ0M7QXZCNjBDSjtBdUIxMENHO0VBQ0M7QXZCNDBDSjtBdUJ2MENDO0VWOUdBLFdVK0dzQjtFVjlHdEIsV1U4RzRCO0VYekUzQixrQlcwRTJCO0VYdkV2QixRQVRNO0VBU04sVUFUTTtFV2lGVjtFQUNBO0VBQUE7RUFDQTtVQUFBO0VBQ0E7QXZCNDBDRjtBSS80Qkk7RW1CbmNIO0lWOUdBLFdVdUh1QjtJVnRIdkIsV1VzSDZCO0lYakY1QixrQldrRjRCO0lYL0V4QixRQVRNO0lBU04sVUFUTTtFWnc2Q1Y7QUFDRjtBdUI5MENFO0VBQ0M7RUFDQTtFQUFBO0F2QmcxQ0g7QXVCNzBDRTtFQUNDO0F2QiswQ0g7QXVCMTBDRTtFQUNDO0F2QjQwQ0g7O0F3Qjc4Q0E7RUFFRTtFQUFBO01BQUE7VUFBQTtFQUNBO0F4Qis4Q0Y7O0F3QjM4Q0U7RVp5QkEsZVl4QjZCO0VaMkJ6QixTQVRNO0VBU04sVUFUTTtFWWpCUjtBeEJnOUNKO0FJ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RDJCO0VoQnBEM0IsWWdCb0RpQztFQUM5QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTdCODhESjtBNkIzOERHO0VBQ0M7RUFDQTtFQUNBO1VBQUE7QTdCNjhESjtBNkIxOERHO0VBQ0M7RUFDQTtFQUNBO1VBQUE7QTdCNDhESjtBNkJyOERFO0VBQ0M7QTdCdThESDtBNkJsOERFO0VBQ0M7QTdCbzhESDtBNkJoOERDO0VBQ0M7QTdCazhERjtBNkJoOERFO0VBQ0M7QTdCazhESDtBNkI1N0RHO0VBQ0M7VUFBQTtBN0I4N0RKO0E2Qng3REk7RUFFQztFQUNBO0VBQ0E7RUFBQTtFQUFBO0VBQUE7QTdCeTdETDtBNkJ0N0RJO0VBQ0M7QTdCdzdETDtBNkJyN0RJO0VBQ0M7QTdCdTdETDtBNkIvNkRJO0VBQ0M7VUFBQTtBN0JpN0RMO0E2QjU2REU7RUFDQztVQUFBO0E3Qjg2REg7QTZCMzZESTtFQUNDO1VBQUE7QTdCNjZETDtBNkJ0NkRJO0VBQ0M7VUFBQTtBN0J3NkRMOztBOEI3akVBO0VBQ0M7RUFDQTtVQUFBO0E5QmdrRUQ7QThCOWpFQztFQUNDO1VBQUE7QTlCZ2tFRjtBOEI1akVFO0VBQ0M7RUFDQTtBOUI4akVIO0E4QjVqRUc7RUFDQztFQUNBO0E5QjhqRUo7QThCempFQztFQUNDO0tBQUE7QTlCMmpFRjtBOEJ4akVDO0VqQjNCQSxXaUI0QnNCO0VqQjNCdEIsWWlCMkI0QjtBOUIyakU3QjtBOEJ6akVFOztFQUVDO0E5QjJqRUg7QThCeGpFRTtFQUNDO0E5QjBqRUg7QThCNWhFQztFakJsRUEsWWlCbUVzQjtFakJsRXRCLFlBRmlDO0VpQnFFaEM7VUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQUE7TUFBQTtVQUFBO0VBQ0E7TUFBQTtVQUFBO0E5QjhoRUY7QUl2akRJO0UwQi9lSDtJakJsRUEsWWlCNEV1QjtJakIzRXZCLGFpQjJFOEI7RTlCaWlFN0I7QUFDRjtBOEIvaEVFO0VBQ0M7VUFBQTtFQUNBO0E5QmlpRUg7QThCOWhFRTtFQUVDO0VBQ0E7RUFDQTtBOUIraEVIO0E4QjVoRUU7RUFF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Q2oxRUU7RUFDQztBbkNtMUVIO0FJLzZESTtFK0JyYUY7SUFHRTtFbkNxMUVGO0FBQ0Y7QW1DbDFFRTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkNvMUVIO0FJNTdESTtFK0I5WkY7SUFTRTtJQUNBO0VuQ3ExRUY7QUFDRjtBbUNuMUVHO0VBQ0M7RUFDQTtBbkNxMUVKO0FtQzkwRUU7RUFDQztBbkNnMUVIO0FtQzcwRUU7RUFDQztBbkMrMEVIO0FtQzUwRUU7RUFDQztBbkM4MEVIO0FtQzMwRUU7RUFDQztBbkM2MEVIO0FtQ3owRUc7RUFDQztFQUNBO0FuQzIwRUo7QW1DejBFSTtFQUNDO0FuQzIwRUw7QW1DeDBFSTtFQUNDO0FuQzAwRUw7QW1DeDBFSztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkMwMEVOO0FtQ3YwRUs7RUFDQztBbkN5MEVOO0FtQ3QwRUs7RUFDQztFQUNBO0VBQ0E7QW5DdzBFTjtBbUNyMEVLO0VBQ0M7RUFDQTtBbkN1MEVOO0FtQ24wRU07RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQ3EwRVA7QW1DajBFSztFQUNDO0FuQ20wRU47QW1DOXpFRztFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBQ0E7RUFDQTtFQUNBO0FuQ2cwRUo7QVFsakZDO0UyQm9QSTtFQUNBO0VBQ0E7RUFBQTtBbkNpMEVMO0FtQzd6RUc7RUFDQztFQUNBO0VBQ0E7RUFDQTtBbkMrekVKO0FtQzd6RUk7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQyt6RUw7QW1DN3pFSztFQUNDO0VBQ0E7QW5DK3pFTjtBbUM3ekVNO0VBQ0M7QW5DK3pFUDtBbUMzekVLO0VBQ0MsY3JCcFJJO0VxQnFSSjtBbkM2ekVOO0FtQzN6RU07RUFDQyxjckJ4Ukc7QWRxbEZWO0FtQ3p6RUs7RUFDQztBbkMyekVOO0FtQ3Z6RU07RUFDQztBbkN5ekVQO0FtQ3B6RUk7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5Dc3pFTDtBbUNoekVDO0VBQ0M7QW5Da3pFRjtBbUMveUVDO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQ2l6RUY7QUlwa0VJO0UrQm5QSDtJQVFFO0lBQ0E7RW5DbXpFRDtBQUNGO0FtQ2h6RUM7RUFDQztBbkNrekVGO0FJN2tFSTtFK0J0T0g7SUFHRTtFbkNvekVEO0FBQ0Y7QW1DanpFQztFQUNDO0VBQUE7RUFBQTtFQUNBO0VBQ0E7TUFBQTtBbkNtekVGO0FJdmxFSTtFK0IvTkg7SUFNRTtJQUFBO1FBQUE7WUFBQTtJQUNBO0VuQ296RUQ7QUFDRjtBbUNqekVDO0VBQ0M7QW5DbXpFRjs7QW1DL3lFQTtFQUNDO0lBQ0M7SUFDQTtFbkNrekVBO0VtQy95RUQ7SUFDQztFbkNpekVBO0FBQ0Y7QW1DOXlFQTtFQUNDOztJQUVDO0VuQ2d6RUE7QUFDRjtBbUM3eUVBO0VBQ0M7SUFDQztFbkMreUVBO0FBQ0Y7QW1DNXlFQTtFQUNDO0lBQ0M7SUFBQTtFbkM4eUVBO0FBQ0Y7QW9DdnFGRTtFQUNDLFd0QlFNO0FkaXFGVDtBb0MxcUZFO0VBQ0MsY3RCUU07QWRvcUZUO0FvQzdxRkU7RUFDQyxjdEJRTTtBZHVxRlQ7QW9DaHJGRTtFQUNDLGN0QlFNO0FkMHFGVDtBb0NuckZFO0VBQ0MsY3RCUU07QWQ2cUZUO0FvQ3RyRkU7RUFDQyxjdEJRTTtBZGdyRlQ7QW9DenJGRTtFQUNDLGN0QlFNO0FkbXJGVDtBb0M1ckZFO0VBQ0MsY3RCUU07QWRzckZUOztBb0N2ckZFO0VBQ0M7QXBDMHJGSDtBb0MzckZFO0VBQ0M7QXBDNnJGSDtBb0M5ckZFO0VBQ0M7QXBDZ3NGSDtBb0Nqc0ZFO0VBQ0M7QXBDbXNGSDtBb0Nwc0ZFO0VBQ0M7QXBDc3NGSDtBb0N2c0ZFO0VBQ0M7QXBDeXNGSDtBb0Mxc0ZFO0VBQ0M7QXBDNHNGSDtBb0M3c0ZFO0VBQ0M7QXBDK3NGSDs7QW9DaHRGRTtFQUNDO0FwQ210Rkg7QW9DcHRGRTtFQUNDO0FwQ3N0Rkg7QW9DdnRGRTtFQUNDO0FwQ3l0Rkg7QW9DMXRGRTtFQUNDO0FwQzR0Rkg7QW9DN3RGRTtFQUNDO0FwQyt0Rkg7QW9DaHVGRTtFQUNDO0FwQ2t1Rkg7QW9DbnVGRTtFQUNDO0FwQ3F1Rkg7QW9DdHVGRTtFQUNDO0FwQ3d1Rkg7O0FvQ3Z0RkE7RUFDQztBcEMwdEZEOztBb0N2dEZBO0VBQ0M7QXBDMHRGRDs7QW9DdnRGQTtFQUNDO0FwQzB0RkQ7O0FvQ3Z0RkE7RUFDQztBcEMwdEZEOztBb0Mvc0ZBO0VBQ0M7QXBDa3RGRDs7QW9DL3NGQTtFQUNDO0FwQ2t0RkQ7O0FvQy9zRkE7RUFDQztBcENrdEZEOztBb0Mvc0ZBO0V4QjVCRSxrQndCNkIwQjtFeEIxQnRCLE1BVE07RUFTTixRQVRNO0VBU04sU0FUTTtFQVNOLE9BVE07RXdCb0NYO0FwQ3N0RkQ7O0FvQ250RkE7RXhCakNFLGtCd0JrQzBCO0V4Qi9CdEIsUUFUTTtFQVNOLFNBVE07RXdCeUNYO1VBQUE7RUFDQTtBcEN3dEZEOztBb0NydEZBO0VBQ0M7QXBDd3RGRDs7QXFDdnlGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QXJDMHlGRjs7QXFDdnlGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7VUFBQTtFQUNBO0FyQzB5RkY7QXFDeHlGRTtFQUNFO0VBQ0E7QXJDMHlGSjtBcUN2eUZFO0VBQ0U7RUFDQTtFQUNBO1VBQUE7QXJDeXlGSjtBcUN0eUZFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtVQUFBO0VBQ0E7VUFBQTtBckN3eUZKO0FxQ3R5Rkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7VUFBQTtFQUNBO0VBQ0E7RUFDQTtBckN3eUZOOztBcUNseUZFO0VBQ0U7RUFDQTtVQUFBO0FyQ3F5Rko7QXFDbnlGSTtFQUNFO1VBQUE7QXJDcXlGTjs7QXFDaHlGQTtFQUNFO0lBQ0U7RXJDbXlGRjtFcUNqeUZBO0lBQ0U7RXJDbXlGRjtFcUNqeUZBO0lBQ0U7RXJDbXlGRjtBQUNGOztBcUM1eUZBO0VBQ0U7SUFDRTtFckNteUZGO0VxQ2p5RkE7SUFDRTtFckNteUZGO0VxQ2p5RkE7SUFDRTtFckNteUZGO0FBQ0Y7QXFDaHlGQTtFQUNFO0lBQ0U7WUFBQTtJQUNBO0VyQ2t5RkY7RXFDaHlGQTtJQUNFO0VyQ2t5RkY7RXFDaHlGQTtJQUNFO1lBQUE7SUFDQTtFckNreUZGO0VxQ2h5RkE7SUFDRTtZQUFBO0lBQ0E7RXJDa3lGRjtBQUNGO0FxQ2p6RkE7RUFDRTtJQUNFO1lBQUE7SUFDQTtFckNreUZGO0VxQ2h5RkE7SUFDRTtFckNreUZGO0VxQ2h5RkE7SUFDRTtZQUFBO0lBQ0E7RXJDa3lGRjtFcUNoeUZBO0lBQ0U7WUFBQTtJQUNBO0VyQ2t5RkY7QUFDRjtBcUMveEZBO0VBQ0U7RUFDQTtFQUNBO1VBQUE7QXJDaXlGRjs7QXFDOXhGQTtFQUNFO0lBQ0U7RXJDaXlGRjtFcUMveEZBO0lBQ0U7RXJDaXlGRjtBQUNGO0FxQzl4RkE7RUFDRTtJQUNFO0VyQ2d5RkY7RXFDOXhGQTtJQUNFO0VyQ2d5RkY7QUFDRjtBcUM3eEZBO0VBQ0U7VUFBQTtFQUNBO1VBQUE7RUFDQTtVQUFBO0FyQyt4RkY7O0FxQzV4RkE7RUFDRTtVQUFBO0VBQ0E7VUFBQTtBckMreEZGOztBcUM1eEZBO0VBQ0U7VUFBQTtFQUNBO1VBQUE7QXJDK3hGRjs7QXFDNXhGQTtFQUNFO1VBQUE7RUFDQTtVQUFBO0FyQyt4RkY7O0FxQzV4RkE7RUFDRTtJQUNFO1lBQUE7RXJDK3hGRjtFcUM3eEZBO0lBQ0U7WUFBQTtFckMreEZGO0VxQzd4RkE7SUFDRTtZQUFBO0VyQyt4RkY7QUFDRjtBcUM1eEZBO0VBQ0U7SUFDRTtZQUFBO0VyQzh4RkY7RXFDNXhGQTtJQUNFO1lBQUE7RXJDOHhGRjtFcUM1eEZBO0lBQ0U7WUFBQTtFckM4eEZGO0FBQ0Y7QXFDM3hGQTtFQUNFO0lBQ0U7WUFBQTtFckM2eEZGO0VxQzN4RkE7SUFDRTtZQUFBO0VyQzZ4RkY7RXFDM3hGQTtJQUNFO1lBQUE7RXJDNnhGRjtBQUNGO0FxQzF4RkE7RUFDRTtJQUNFO1lBQUE7RXJDNHhGRjtFcUMxeEZBO0lBQ0U7WUFBQTtFckM0eEZGO0VxQzF4RkE7SUFDRTtZQUFBO0VyQzR4RkY7QUFDRjtBcUN6eEZBO0VBQ0U7SUFDRTtZQUFBO0VyQzJ4RkY7RXFDenhGQTtJQUNFO1lBQUE7RXJDMnhGRjtFcUN6eEZBO0lBQ0U7WUFBQTtFckMyeEZGO0FBQ0Y7QXFDeHhGQTtFQUNFO0lBQ0U7WUFBQTtFckMweEZGO0VxQ3h4RkE7SUFDRTtZQUFBO0VyQzB4RkY7RXFDeHhGQTtJQUNFO1lBQUE7RXJDMHhGRjtBQUNGO0FxQ3Z4RkE7RUFDRTtJQUNFO1lBQUE7RXJDeXhGRjtFcUN2eEZBO0lBQ0U7WUFBQTtFckN5eEZGO0FBQ0Y7QXFDdHhGQTtFQUNFO0lBQ0U7WUFBQTtFckN3eEZGO0VxQ3R4RkE7SUFDRTtZQUFBO0VyQ3d4RkY7QUFDRixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9fdHJhbnNpdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9fZ2VuZXJpYy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9jb3JlL19wcmludC5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9fY29uZmlnLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9jb3JlL19ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvaGVscGVycy9fZXh0ZW5kcy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9jb3JlL19jb3JlLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9fbWl4LnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2NvcmUvX3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvaGVscGVycy9fc2Nyb2xsYmFycy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9oZWxwZXJzL19hbmltYXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9fcG9zaXRpb24uc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvbWl4aW5zL19kaXNwbGF5LnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL21peGlucy9fY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2hlbHBlcnMvX3N2Zy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19jLWxvYWRlci5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19jLXByb2dyZXNzLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2MtY3Vyc29yLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL3dpZGdldHMvX3ctc2Nyb2xsLWRvd24uc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3Mvd2lkZ2V0cy9fdy10b2dnbGUtc291bmQuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvbGF5b3V0L19iYXNlLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2xheW91dC9uYXYvX2J1cmdlci5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvbmF2L19hc2lkZS5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvbmF2L19uYXYuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvbGF5b3V0L19oZWFkZXIuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvbGF5b3V0L19idG5zLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2xheW91dC9zZWN0aW9ucy9fc2VjdGlvbi5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvc2VjdGlvbnMvX2ludHJvLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2xheW91dC9zZWN0aW9ucy9fd2hhdC13ZS1kby5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvc2VjdGlvbnMvX3RlY2hub2xvZ2llcy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvc2VjdGlvbnMvX2NsaWVudHMuc2NzcyIsIndlYnBhY2s6Ly9NYWthbHUvLi9zcmMvYXNzZXRzL3Njc3MvbGF5b3V0L3NlY3Rpb25zL19ibG9nLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL2xheW91dC9zZWN0aW9ucy9fY29udGFjdC5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvX2Zvb3Rlci5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9sYXlvdXQvX21vZGFscy5zY3NzIiwid2VicGFjazovL01ha2FsdS8uL3NyYy9hc3NldHMvc2Nzcy9oZWxwZXJzL19jbGFzc2VzLnNjc3MiLCJ3ZWJwYWNrOi8vTWFrYWx1Ly4vc3JjL2Fzc2V0cy9zY3NzL3dpZGdldHMvX3ctc3RhcnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiY29sb3JzXCI7XHJcblxyXG4vL1xyXG4vLyBUcmFuc2l0aW9uc1xyXG4vL1xyXG4ldHJucy0xIHtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4ldHJucy0yIHtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4ldHJucy0zIHtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4vL1xyXG4vLyBUcmFuc2Zvcm1hdGlvblxyXG4vL1xyXG5AbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eSkge1xyXG4gIHRyYW5zZm9ybTogJHByb3BlcnR5O1xyXG59XHJcblxyXG4vL1xyXG4vLyBUcmFuc2l0aW9uXHJcbi8vXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhcmdzLi4uKSB7XHJcbiAgdHJhbnNpdGlvbjogJGFyZ3M7XHJcbn1cclxuXHJcbi8vXHJcbi8vIEZhZGUgSW4vT3V0XHJcbi8vXHJcbkBtaXhpbiBmYWRlKCR0eXBlKSB7XHJcbiAgQGlmICR0eXBlPT0gXCJoaWRlXCIge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XHJcbiAgfSBAZWxzZSBpZiAkdHlwZT09IFwic2hvd1wiIHtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcclxuICB9XHJcbn1cclxuXHJcblxyXG4udHJucy0xIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMXMgZWFzZS1pbi1vdXQpO1xyXG59XHJcblxyXG4udHJucy0yIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZS1pbi1vdXQpO1xyXG59XHJcblxyXG4udHJucy0zIHtcclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuM3MgZWFzZS1pbi1vdXQpO1xyXG59XHJcblxyXG5cclxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcclxuICBALXdlYmtpdC1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuICBALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG4gIEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24oJHN0cikge1xyXG4gIGFuaW1hdGlvbjogI3skc3RyfTtcclxufVxyXG5cclxuLy9cclxuLy8gVXNhZ2VcclxuLy9cclxuLy8gQGluY2x1ZGUga2V5ZnJhbWVzKHNsaWRlLWRvd24pIHtcclxuLy8gIDAlIHsgb3BhY2l0eTogMTsgfVxyXG4vLyAgOTAlIHsgb3BhY2l0eTogMDsgfVxyXG4vL31cclxuLy9cclxuLy8gLmVsZW1lbnQge1xyXG4vLyAgd2lkdGg6IDEwMHB4O1xyXG4vLyAgaGVpZ2h0OiAxMDBweDtcclxuLy8gIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4vLyAgQGluY2x1ZGUgYW5pbWF0aW9uKCdzbGlkZS1kb3duIDVzIDMnKTtcclxuLy8gfVxyXG5cclxuLy9cclxuLy8gUmV2ZWFsIFRleHQgQW5pbWF0aW9uXHJcbi8vXHJcbkBtaXhpbiByZXZlYWwtdGV4dCB7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxuICB0cmFuc2Zvcm06IHNjYWxlWCgwKSBza2V3WCgwZGVnKTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xyXG4gIHRyYW5zaXRpb246IDAuNXM7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcnMuJGNsci1ncmVlbjtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XHJcbiAgICB0cmFuc2l0aW9uOiAwLjVzO1xyXG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBpbmNyZW1lbnQtZGVsYXkoJG9mZnNldDogLjA1cywgJGNvdW50OiAxMiwgJGRlbGF5OiAwLCAkdHlwZTogdHJhbnNpdGlvbikge1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcclxuICAgICR0aW1lOiAoJGkgKiAkb2Zmc2V0KSArICRkZWxheTtcclxuICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XHJcbiAgICAgICN7JHR5cGV9LWRlbGF5OiAkdGltZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmJ0bl9fYW5pbWF0ZWQ6OmFmdGVyLCAubG9hZGVyIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi50cm5zLTEge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcbn1cblxuLnRybnMtMiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xufVxuXG4udHJucy0zIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5tbC01IHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLm1sLTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5tbC0xNSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuXG4ubWwtMjAge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm1sLTI1IHtcbiAgbWFyZ2luLWxlZnQ6IDI1cHg7XG59XG5cbi5tbC0zMCB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuXG4ubWwtMzUge1xuICBtYXJnaW4tbGVmdDogMzVweDtcbn1cblxuLm1sLTQwIHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG59XG5cbi5tbC00NSB7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuXG4ubWwtNTAge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbn1cblxuLm1yLTUge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm1yLTEwIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubXItMTUge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbi5tci0yMCB7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLm1yLTI1IHtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xufVxuXG4ubXItMzAge1xuICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG59XG5cbi5tci0zNSB7XG4gIG1hcmdpbi1yaWdodDogMzVweDtcbn1cblxuLm1yLTQwIHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xufVxuXG4ubXItNDUge1xuICBtYXJnaW4tcmlnaHQ6IDQ1cHg7XG59XG5cbi5tci01MCB7XG4gIG1hcmdpbi1yaWdodDogNTBweDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgLyogQmxhY2sgcHJpbnRzIGZhc3RlciAqL1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgYVtocmVmXTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIGFiYnJbdGl0bGVdOjphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICB9XG4gIC8qXG4gICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICovXG4gIGFbaHJlZl49XCIjXCJdOjphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLypcbiAgICogUHJpbnRpbmcgVGFibGVzOlxuICAgKiBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxODA4MTUxNTA5MzQvaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAqL1xuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpLCAobWluLXJlc29sdXRpb246IDEyMGRwaSkge1xuICAvKiBTdHlsZSBhZGp1c3RtZW50cyBmb3IgaGlnaCByZXNvbHV0aW9uIGRldmljZXMgKi9cbn1cbjpyb290IHtcbiAgLS1mb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICAtLXhzOiAzMjBweDtcbiAgLS1zbTogNTc2cHg7XG4gIC0tbWQ6IDc2OHB4O1xuICAtLWxnOiA5OTJweDtcbiAgLS14bDogMTIwMHB4O1xuICAtLXh4bDogMTQwMHB4O1xuICAtLWNvbnRhaW5lci13aWR0aDogdmFyKC0teHhsKTtcbiAgLS1iYXNlLXRyYW5zaXRpb246IC4zcyA7XG59XG5cbmh0bWwge1xuICBmb250LXNpemU6IDUwLjUlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyODFweCkge1xuICBodG1sIHtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICB9XG59XG5cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXJlc2V0XTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPWNoZWNrYm94XSxcblt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9c2VhcmNoXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1vZGFsLWNsb3NlIGJ1dHRvbiwgLnNlY3Rpb25fX3RlY2hub2xvZ2llcyAuZWxlbWVudCwgLnNlY3Rpb25fX2ludHJvLCAuc2VjdGlvbl9faW50cm8gLmJveCwgLnNlY3Rpb25fX2ludHJvIC5jbHV0Y2gtcmV3YXJkLCAuc2VjdGlvbiwgLmxvZ28sICNtZW51LCAuaGFtYnVyZ2VyIC5oYW1idXJnZXItYm94LCAubG9hZGVyLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnNlY3Rpb24gdmlkZW8sIC5zZWN0aW9uIC5iZ2QgcGljdHVyZSwgLnNlY3Rpb24gLmJnZF9faW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNlY3Rpb25fX2ludHJvIC5jbHV0Y2gtcmV3YXJkIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5hOmhvdmVyLCBhOmZvY3VzLCBhOmZvY3VzLXZpc2libGUsIGE6YWN0aXZlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuOmZvY3VzLFxuOmhvdmVyIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjotbW96LWZvY3VzcmluZyB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IDAgMCAwIHRyYW5zcGFyZW50O1xufVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMyY2I1YTc7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiAjMmNiNWE3O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi5oaWRkZW4sXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNyLW9ubHkge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDFweDtcbiAgLyogMSAqL1xufVxuXG4uc3Itb25seS5mb2N1c2FibGU6YWN0aXZlLFxuLnNyLW9ubHkuZm9jdXNhYmxlOmZvY3VzIHtcbiAgY2xpcDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgd2lkdGg6IGF1dG87XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuI2FwcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmIyYztcbn1cblxuKjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7XG59XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmNiNWE3O1xufVxuXG4qOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbio6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7XG59XG5cbmEsIGE6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xufVxuXG5pbnB1dFt0eXBlPXRleHRdIHtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcbn1cblxuaDEsIGgyLCBoMywgaDQge1xuICB0cmFuc2l0aW9uOiBmb250LXNpemUgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcbn1cblxuQGtleWZyYW1lcyBwdWxzYXRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4xLCAwLjEpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yLCAxLjIpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi5wdWxzYXRlIHtcbiAgYW5pbWF0aW9uOiBwdWxzYXRlIDJzIGVhc2Utb3V0O1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIGZyb20sIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbjogc2hha2UgMnMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgZmxpY2tlciB7XG4gIDAlLCAxOCUsIDIyJSwgMjUlLCA1MyUsIDU3JSwgMTAwJSB7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCA0cHggI2ZmZiwgMCAwIDExcHggI2ZmZiwgMCAwIDE5cHggI2ZmZiwgMCAwIDQwcHggIzJmNzFkYiwgMCAwIDgwcHggIzJmNzFkYiwgMCAwIDkwcHggIzJmNzFkYiwgMCAwIDEwMHB4ICMyZjcxZGIsIDAgMCAxNTBweCAjMmY3MWRiO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIH1cbiAgMjAlLCAyNCUsIDU1JSB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi5nLWdsb3ctbmVvbiB7XG4gIGFuaW1hdGlvbjogZmxpY2tlciAyLjVzIGluZmluaXRlIGFsdGVybmF0ZTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5nLWdsb3ctZGVmYXVsdCB7XG4gIHRleHQtc2hhZG93OiAwIDAgNHB4ICNmZmYsIDAgMCAxMXB4ICNmZmYsIDAgMCAxOXB4ICNmZmYsIDAgMCA0MHB4ICMyY2I1YTcsIDAgMCA4MHB4ICMyY2I1YTcsIDAgMCA5MHB4ICMyY2I1YTcsIDAgMCAxMDBweCAjMmNiNWE3LCAwIDAgMTUwcHggIzJjYjVhNztcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmctZ2xvdy1ibHVlIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCA0cHggI2ZmZiwgMCAwIDExcHggI2ZmZiwgMCAwIDE5cHggI2ZmZiwgMCAwIDQwcHggIzJmNzFkYiwgMCAwIDgwcHggIzJmNzFkYiwgMCAwIDkwcHggIzJmNzFkYiwgMCAwIDEwMHB4ICMyZjcxZGIsIDAgMCAxNTBweCAjMmY3MWRiO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uci10ZXh0IHtcbiAgLS10ZXh0LWZzLXRpdGxlOiAzcmVtO1xuICAtLXRleHQtZnMtcHJldGl0bGU6IDEuNHJlbTtcbiAgLS10ZXh0LWZzLWRlc2M6IDEuNnJlbTtcbiAgLS10ZXh0LWNvbG9yOiAjZmZmO1xuICAtLXRleHQtZnc6IDUwMDtcbn1cbi5yLXRleHRfX3ByZXRpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWZzLXByZXRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRleHQtZncpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGhlaWdodDogbWF4LWNvbnRlbnQ7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApIHNrZXdYKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xufVxuLnItdGV4dF9fcHJldGl0bGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMmNiNWE3O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIHRyYW5zaXRpb246IDAuNXM7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XG59XG4uci10ZXh0X19wcmV0aXRsZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwcHgsIDVweCwgMCkgcm90YXRlKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gIC5yLXRleHRfX3ByZXRpdGxlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCkgcm90YXRlKC05MGRlZyk7XG4gIH1cbn1cbi5yLXRleHRfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LWZzLXRpdGxlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICBmb250LXdlaWdodDogdmFyKC0tdGV4dC1mdyk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApIHNrZXdYKDBkZWcpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKSBza2V3WCgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbn1cbi5yLXRleHRfX3RpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzJjYjVhNztcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xufVxuLnItdGV4dF9fZGVzYyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1mcy1kZXNjKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKSBza2V3WCgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbn1cbi5yLXRleHRfX2Rlc2M6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMmNiNWE3O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIHRyYW5zaXRpb246IDAuNXM7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XG59XG4uaXMtYWN0aXZlIC5yLXRleHQgLnItdGV4dF9fcHJldGl0bGU6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xufVxuLmlzLWFjdGl2ZSAuci10ZXh0IC5yLXRleHRfX3RpdGxlLCAuaXMtYWN0aXZlIC5yLXRleHQgLnItdGV4dF9fZGVzYyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xufVxuLmlzLWFjdGl2ZSAuci10ZXh0IC5yLXRleHRfX3RpdGxlOjpiZWZvcmUsIC5pcy1hY3RpdmUgLnItdGV4dCAuci10ZXh0X19kZXNjOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbn1cblxuQGtleWZyYW1lcyBkcmF3U1ZHIHtcbiAgZnJvbSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDQ4MDA7XG4gIH1cbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIG1vdmUtMSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCkgc2NhbGUoMS4xKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBtb3ZlLTMge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDEuMik7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgbW92ZS00IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxLjUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIG1vdmUtNSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMC45KTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICBAa2V5ZnJhbWVzIG1vdmUtNSB7XG4gICAgZnJvbSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MHB4LCAwKSBzY2FsZSgxLjEpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG59XG5Aa2V5ZnJhbWVzIG1vdmUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDAuOSk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ2xpdGNoLWVmZmVjdCB7XG4gIDAlIHtcbiAgICBjbGlwOiByZWN0KDk1cHgsIDMwMDBweCwgNzBweCwgMCk7XG4gIH1cbiAgNSUge1xuICAgIGNsaXA6IHJlY3QoOTZweCwgMzAwMHB4LCAyMzRweCwgMCk7XG4gIH1cbiAgMTAlIHtcbiAgICBjbGlwOiByZWN0KDQwcHgsIDMwMDBweCwgMTEzcHgsIDApO1xuICB9XG4gIDE1JSB7XG4gICAgY2xpcDogcmVjdCgxOThweCwgMzAwMHB4LCA5MHB4LCAwKTtcbiAgfVxuICAyMCUge1xuICAgIGNsaXA6IHJlY3QoMTg0cHgsIDMwMDBweCwgODRweCwgMCk7XG4gIH1cbiAgMjUlIHtcbiAgICBjbGlwOiByZWN0KDMyN3B4LCAzMDAwcHgsIDJweCwgMCk7XG4gIH1cbiAgMzAlIHtcbiAgICBjbGlwOiByZWN0KDIyNHB4LCAzMDAwcHgsIDQ2cHgsIDApO1xuICB9XG4gIDM1JSB7XG4gICAgY2xpcDogcmVjdCgyNHB4LCAzMDAwcHgsIDFweCwgMCk7XG4gIH1cbiAgNDAlIHtcbiAgICBjbGlwOiByZWN0KDE5NHB4LCAzMDAwcHgsIDc3cHgsIDApO1xuICB9XG4gIDQ1JSB7XG4gICAgY2xpcDogcmVjdCgyODlweCwgMzAwMHB4LCAxMzVweCwgMCk7XG4gIH1cbiAgNTAlIHtcbiAgICBjbGlwOiByZWN0KDQzcHgsIDMwMDBweCwgMTRweCwgMCk7XG4gIH1cbiAgNTUlIHtcbiAgICBjbGlwOiByZWN0KDcwcHgsIDMwMDBweCwgMjI3cHgsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgY2xpcDogcmVjdCgxNjlweCwgMzAwMHB4LCAxNjdweCwgMCk7XG4gIH1cbiAgNjUlIHtcbiAgICBjbGlwOiByZWN0KDEyM3B4LCAzMDAwcHgsIDVweCwgMCk7XG4gIH1cbiAgNzAlIHtcbiAgICBjbGlwOiByZWN0KDI1M3B4LCAzMDAwcHgsIDIxM3B4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIGNsaXA6IHJlY3QoMzgxcHgsIDMwMDBweCwgMTgzcHgsIDApO1xuICB9XG4gIDgwJSB7XG4gICAgY2xpcDogcmVjdCgzOTdweCwgMzAwMHB4LCA5MnB4LCAwKTtcbiAgfVxuICA4NSUge1xuICAgIGNsaXA6IHJlY3QoMTAzcHgsIDMwMDBweCwgMjQwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgY2xpcDogcmVjdCgyODdweCwgMzAwMHB4LCA0M3B4LCAwKTtcbiAgfVxuICA5NSUge1xuICAgIGNsaXA6IHJlY3QoMTI2cHgsIDMwMDBweCwgODRweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgY2xpcDogcmVjdCgyNnB4LCAzMDAwcHgsIDE5M3B4LCAwKTtcbiAgfVxufVxuI3N2Zy1pY29ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbn1cblxuc3ZnIHtcbiAgdHJhbnNpdGlvbjogZmlsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBzdHJva2UgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xufVxuXG4ubWstc3ZnIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLmxvYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMjkyYjJjO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4ubG9hZGVyLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxMHJlbTtcbn1cbi5sb2FkZXItdGV4dCBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMC41cmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgZmlsdGVyOiBibHVyKDApO1xuICBhbmltYXRpb246IGJsdXItdGV4dCAycyBhbHRlcm5hdGUgaW5maW5pdGU7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMXM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNHM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoNSkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNXM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoNikge1xuICBhbmltYXRpb24tZGVsYXk6IDAuNnM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoNykge1xuICBhbmltYXRpb24tZGVsYXk6IDAuN3M7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoOCkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuOHM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoOSkge1xuICBhbmltYXRpb24tZGVsYXk6IDAuOXM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMTApIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxcztcbn1cbi5sb2FkZXItdGV4dCBzcGFuOm50aC1jaGlsZCgxMSkge1xuICBhbmltYXRpb24tZGVsYXk6IDEuMXM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMTIpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjJzO1xufVxuLmxvYWRlci10ZXh0IHNwYW46bnRoLWNoaWxkKDEzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS4zcztcbn1cbi5sb2FkZXItdGV4dCBzcGFuOm50aC1jaGlsZCgxNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDEuNHM7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMTUpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjVzO1xufVxuLmxvYWRlci10ZXh0IHNwYW46bnRoLWNoaWxkKDE2KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS42cztcbn1cbi5sb2FkZXItdGV4dCBzcGFuOm50aC1jaGlsZCgxNykge1xuICBhbmltYXRpb24tZGVsYXk6IDEuN3M7XG59XG4ubG9hZGVyLXRleHQgc3BhbjpudGgtY2hpbGQoMTgpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAxLjhzO1xufVxuLmxvYWRlci10ZXh0IHNwYW46bnRoLWNoaWxkKDE5KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMS45cztcbn1cbi5sb2FkZXItdGV4dCBzcGFuOm50aC1jaGlsZCgyMCkge1xuICBhbmltYXRpb24tZGVsYXk6IDJzO1xufVxuLmxvYWRlci10ZXh0IHNwYW46bnRoLWNoaWxkKDIxKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMi4xcztcbn1cbi5sb2FkZXItdGV4dCBzcGFuOm50aC1jaGlsZCgyMikge1xuICBhbmltYXRpb24tZGVsYXk6IDIuMnM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBibHVyLXRleHQge1xuICAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDNweCk7XG4gIH1cbn1cbkAtbW96LWtleWZyYW1lcyBibHVyLXRleHQge1xuICAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDNweCk7XG4gIH1cbn1cbkAtbXMta2V5ZnJhbWVzIGJsdXItdGV4dCB7XG4gIDAlIHtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBmaWx0ZXI6IGJsdXIoM3B4KTtcbiAgfVxufVxuQC1vLWtleWZyYW1lcyBibHVyLXRleHQge1xuICAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgZmlsdGVyOiBibHVyKDNweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYmx1ci10ZXh0IHtcbiAgMCUge1xuICAgIGZpbHRlcjogYmx1cigwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIGZpbHRlcjogYmx1cigzcHgpO1xuICB9XG59XG4uYy1wcm9ncmVzc2JhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmMtcHJvZ3Jlc3NiYXIge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgd2lkdGg6IGNhbGMoMTAwZHZoICsgMjBweCk7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHRvcDogLTIwcHg7XG4gIH1cbn1cbi5jLXByb2dyZXNzYmFyIHByb2dyZXNzIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5jLXByb2dyZXNzYmFyIHByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmMtcHJvZ3Jlc3NiYXIgcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNkYjM4YjUsICMwMWIzZTMsICMyNWNlN2IsICNmZGM3NDEsICNmZjZiMDEsICNmYzQyMzYpO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xufVxuLmMtcHJvZ3Jlc3NiYXIgcHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZGIzOGI1LCAjMDFiM2UzLCAjMjVjZTdiLCAjZmRjNzQxLCAjZmY2YjAxLCAjZmM0MjM2KTtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbn1cblxuW2RhdGEtdGhyZWUtY3Vyc29yXSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udy1zY3JvbGwtZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAycmVtO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDRyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMnJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IDAuNXM7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MXB4KSB7XG4gIC53LXNjcm9sbC1kb3duIHtcbiAgICBib3R0b206IDJyZW07XG4gICAgd2lkdGg6IDdyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMy41cmVtO1xuICB9XG59XG5cbi53LXRvZ2dsZS1zb3VuZCB7XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC53LXRvZ2dsZS1zb3VuZCB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG59XG4udy10b2dnbGUtc291bmQ6aG92ZXIsIC53LXRvZ2dsZS1zb3VuZDpmb2N1cywgLnctdG9nZ2xlLXNvdW5kOmZvY3VzLXZpc2libGUsIC53LXRvZ2dsZS1zb3VuZDphY3RpdmUge1xuICBjb2xvcjogIzJjYjVhNztcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMTVweCAjMmNiNWE3LCAxcHggMXB4IDE1cHggIzJjYjVhNztcbn1cbi5kYXJrIC53LXRvZ2dsZS1zb3VuZCB7XG4gIGNvbG9yOiAjMjkyYjJjO1xufVxuLnctYXVkaW8ge1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmM2Y0O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbmh0bWwsIGJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjOTk5ODk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG59XG5cbm1haW4ge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5yZWQge1xuICBjb2xvcjogI2VlM2I1Yjtcbn1cblxuLmdyZWVuIHtcbiAgY29sb3I6ICMyY2I1YTc7XG59XG5cbi5oYW1idXJnZXIge1xuICBwYWRkaW5nOiAxNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgZmlsdGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uaGFtYnVyZ2VyOmhvdmVyLCAuaGFtYnVyZ2VyOmZvY3VzLCAuaGFtYnVyZ2VyOmZvY3VzLXZpc2libGUsIC5oYW1idXJnZXI6YWN0aXZlIHtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xufVxuLmhhbWJ1cmdlcjpub3QoLmlzLWFjdGl2ZSk6aG92ZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xufVxuLmhhbWJ1cmdlcjpub3QoLmlzLWFjdGl2ZSk6aG92ZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cbi5oYW1idXJnZXI6aG92ZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyY2I1YTc7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGxpbmVhcjtcbn1cbi5oYW1idXJnZXI6aG92ZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCAuaGFtYnVyZ2VyOmhvdmVyIC5oYW1idXJnZXItYm94IC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjYjVhNztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgbGluZWFyO1xufVxuLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJveCB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oYW1idXJnZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRvcDogMnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgMC4xcyBsaW5lYXI7XG59XG4uZGFyayAuaGFtYnVyZ2VyIC5oYW1idXJnZXItYm94IC5oYW1idXJnZXItaW5uZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjO1xufVxuLmRhcmsgLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJveCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5kYXJrIC5oYW1idXJnZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjO1xufVxuLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJveCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXIgLmhhbWJ1cmdlci1ib3ggLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG4uaGFtYnVyZ2VyIC5oYW1idXJnZXItYm94IC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMTBweDtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBsaW5lYXI7XG59XG4uaGFtYnVyZ2VyIC5oYW1idXJnZXItYm94IC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgYm90dG9tOiAtMTBweDtcbiAgdG9wOiAyMHB4O1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyAwLjNzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSwgdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgbGluZWFyO1xufVxuLmhhbWJ1cmdlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjE4cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIHRyYW5zZm9ybSAwLjE1cyAwLjMycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKSByb3RhdGUoNDVkZWcpO1xufVxuLmhhbWJ1cmdlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0b3A6IDA7XG4gIHRyYW5zaXRpb246IHRvcCAwLjNzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTVzIDAuMzJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApIHJvdGF0ZSgtNDVkZWcpO1xufVxuXG5hc2lkZSAuc2lkZWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMjQwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNDBweCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zMSwgMC4xOSwgMC4xNiwgMSk7XG4gIGJhY2tncm91bmQ6ICMyOTJiMmM7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTEzcHgpIHtcbiAgYXNpZGUgLnNpZGViYXIge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDBweCwgMCwgMCk7XG4gIH1cbn1cbmFzaWRlIC5zaWRlYmFyLmlzLW51ZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNzBweCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zMSwgMC4xOSwgMC4xNiwgMSk7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cbmFzaWRlIC5zaWRlYmFyLmlzLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zMSwgMC4xOSwgMC4xNiwgMSk7XG4gIGJvcmRlci1jb2xvcjogIzJjYjVhNztcbn1cbmFzaWRlIC53cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbn1cbmFzaWRlIC5pbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSB0cmFuc2xhdGUzZCgtMTVyZW0sIDAsIDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDAgMDtcbiAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjMxLCAwLjE5LCAwLjE2LCAxKTtcbiAgei1pbmRleDogOTtcbiAgYmFja2dyb3VuZDogIzI5MmIyYztcbn1cbmFzaWRlICNtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTA7XG59XG5hc2lkZSAuc2lkZWJhci5pcy1hY3RpdmUgLmlubmVyIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuYXNpZGUgLm9wZW4tbWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNDAlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHJpZ2h0OiAtMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIGFzaWRlIC5vcGVuLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbmFzaWRlIC5oZWFkaW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDklO1xuICByaWdodDogNTQlO1xuICB3aWR0aDogMTByZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgtOTBkZWcpO1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIGFzaWRlIC5oZWFkaW5nIHtcbiAgICB0b3A6IDI5JTtcbiAgICByaWdodDogODAlO1xuICB9XG59XG5hc2lkZSAuc2lkZWJhci5pcy1hY3RpdmUgLmhlYWRpbmcsIGFzaWRlIC5zaWRlYmFyLmlzLWFjdGl2ZSAubGluZSB7XG4gIG9wYWNpdHk6IDA7XG4gIHJpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG59XG5hc2lkZSAuc2lkZWJhci5pcy1udWRnZSAuaGVhZGluZyB7XG4gIGNvbG9yOiAjMmNiNWE3O1xufVxuYXNpZGUgLnNpZGViYXIuaXMtbnVkZ2UgLmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmNiNWE3O1xufVxuYXNpZGUgLmxpbmUge1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMCU7XG4gIHJpZ2h0OiA1NiU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTEzcHgpIHtcbiAgYXNpZGUgLmxpbmUge1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMwJTtcbiAgICByaWdodDogNzQlO1xuICB9XG59XG4uaXMtbWVudS1hY3RpdmUgYXNpZGUgLmxpbmUge1xuICByaWdodDogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuLmRhcmsgYXNpZGUgLmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjO1xufVxuLmRhcmsgYXNpZGUgLnR4dC0tY2xyLXdoaXRlIHtcbiAgY29sb3I6ICMyOTJiMmM7XG59XG5cbiNtZW51IHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5oZWFkZXIgLm1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgbGVmdDogMjVweDtcbiAgei1pbmRleDogMTA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaGVhZGVyIC5tZW51IHtcbiAgICB0b3A6IDQwcHg7XG4gICAgbGVmdDogNDBweDtcbiAgfVxufVxuXG4ubmF2LW1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMzBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi1tZW51IHtcbiAgICByaWdodDogMjBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAubmF2LW1lbnUge1xuICAgIHRvcDogNDVweDtcbiAgICByaWdodDogMTAwcHg7XG4gIH1cbn1cbi5uYXYtbWVudSBhIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cbi5uYXYtbWVudSBhOmhvdmVyIHtcbiAgY29sb3I6ICMyY2I1YTc7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDE1cHggIzJjYjVhNywgMXB4IDFweCAxNXB4ICMyY2I1YTc7XG59XG4ubmF2X19saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNDIuN3JlbTtcbiAgYmFja2dyb3VuZC1zaXplOiA0Mi43cmVtIDE2cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAwLjFyZW0gc29saWQgIzI5MmIyYztcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyO1xufVxuLm5hdl9fbGluazpob3ZlciB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjA4LCAwLjU3LCAwLjczLCAxLjE4KTtcbn1cbi5uYXZfX2xpbms6aG92ZXIgLm5hdl9fb3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjJyZW0sIDAsIDApO1xuICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAubmF2X19saW5rOmhvdmVyIC5uYXZfX292ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjByZW0sIDAsIDApO1xuICB9XG59XG4ubmF2X19saW5rOmhvdmVyIC5uYXZfX3RleHQtMSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMC41cmVtLCAwLCAwKSBza2V3WCg0ZGVnKTtcbn1cbi5uYXZfX2xpbms6aG92ZXIgLm5hdl9fdGV4dC0yIHtcbiAgY29sb3I6ICMyOTJiMmM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2tld1goNGRlZyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbn1cbi5uYXZfX2xpbms6aG92ZXIgLm5hdl9fbGluZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDIuN3JlbSwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICBvcGFjaXR5OiAxO1xufVxuLm5hdl9fbGluay5hY3RpdmUsIC5uYXZfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjO1xufVxuLm5hdl9fbGluay5hY3RpdmUgLm5hdl9fdGV4dC0yIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2tld1goNGRlZyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbn1cbi5uYXZfX2xpbmsuYWN0aXZlIC5uYXZfX292ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmNiNWE3O1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHJlbSwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbn1cbi5uYXZfX2xpbmsuYWN0aXZlOmhvdmVyIC5uYXZfX292ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm5hdl9fbGluay5hY3RpdmU6aG92ZXIgLm5hdl9fdGV4dC0yIHtcbiAgY29sb3I6ICMyOTJiMmM7XG59XG4ubmF2X19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMjJyZW07XG4gIGhlaWdodDogNHJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBza2V3WCgtNGRlZyk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC4zMiwgMSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIC5uYXZfX2l0ZW0ge1xuICAgIHdpZHRoOiAyMHJlbTtcbiAgICBoZWlnaHQ6IDRyZW07XG4gIH1cbn1cbi5uYXZfX3RleHQtMSwgLm5hdl9fdGV4dC0yIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG59XG4ubmF2X190ZXh0LTEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS4ycmVtO1xuICBsZWZ0OiAwLjFyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBza2V3WCg0ZGVnKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xufVxuLm5hdl9fb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5JTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0NHJlbSwgMCwgMCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTEzcHgpIHtcbiAgLm5hdl9fb3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0MHJlbSwgMCwgMCk7XG4gIH1cbn1cbi5uYXZfX3RleHQtMiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxLjJyZW07XG4gIGxlZnQ6IDAuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNmZmY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjJyZW07XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIycmVtLCAwLCAwKSBza2V3WCg0ZGVnKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAubmF2X190ZXh0LTIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcmVtLCAwLCAwKSBza2V3WCg0ZGVnKTtcbiAgfVxufVxuLm5hdl9fbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0xMDAlO1xuICB3aWR0aDogMTEuNnJlbTtcbiAgaGVpZ2h0OiAwLjFyZW07XG4gIG9wYWNpdHk6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg4NS40cmVtLCAwLCAwKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmxvZ28ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmxvZ28gI2xvZ28ge1xuICBtYXgtd2lkdGg6IDI2cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAubG9nbyAjbG9nbyB7XG4gICAgbWF4LXdpZHRoOiA1MHJlbTtcbiAgfVxufVxuXG4uYnRuLCAuYnRuX19jbGllbnQtbGlzdCB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgIzJjYjVhNztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMyY2I1YTc7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmJ0bjpiZWZvcmUsIC5idG5fX2NsaWVudC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogLTEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDQ0LCAxODEsIDE2NywgMC40KSwgdHJhbnNwYXJlbnQpO1xuICB0cmFuc2l0aW9uOiBhbGwgNjUwbXM7XG59XG4uYnRuOmhvdmVyLCAuYnRuX19jbGllbnQtbGlzdDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAuMXJlbSAwLjFyZW0gMi41cmVtIDFyZW0gcmdiYSg0NCwgMTgxLCAxNjcsIDAuNCk7XG59XG4uYnRuOmhvdmVyOjpiZWZvcmUsIC5idG5fX2NsaWVudC1saXN0OmhvdmVyOjpiZWZvcmUge1xuICBsZWZ0OiAxMDAlO1xufVxuLmJ0bl9fY2xpZW50LWxpc3Qge1xuICBwYWRkaW5nOiAwLjdyZW0gM3JlbTtcbiAgZm9udC1zaXplOiAyLjRyZW07XG59XG4uYnRuX19hbmltYXRlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAyLjJyZW0gM3JlbTtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5idG5fX2FuaW1hdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTUwJTtcbiAgbGVmdDogLTUwJTtcbiAgd2lkdGg6IDIwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgei1pbmRleDogLTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyY2I1YTc7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNTAlIDUwJSwgNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoIzM1ZTBjZiwgIzM1ZTBjZiksIGxpbmVhci1ncmFkaWVudCgjMjA5OThjLCAjMjA5OThjKSwgbGluZWFyLWdyYWRpZW50KCMzNWUwY2YsICMzNWUwY2YpLCBsaW5lYXItZ3JhZGllbnQoIzIwOTk4YywgIzIwOTk4Yyk7XG4gIGFuaW1hdGlvbjogcm90YXRlIDRzIGxpbmVhciBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG4uYnRuX19hbmltYXRlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC42cmVtO1xuICBsZWZ0OiAwLjZyZW07XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjJyZW0pO1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IC0xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmNiNWE3O1xufVxuLmJ0bl9fYW5pbWF0ZWQ6aG92ZXIsIC5idG5fX2FuaW1hdGVkOmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmJ0bl9fYW5pbWF0ZWQ6aG92ZXI6OmFmdGVyLCAuYnRuX19hbmltYXRlZDphY3RpdmU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbn1cbkBrZXlmcmFtZXMgcm90YXRlIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xuICB9XG59XG5cbi5zZWN0aW9uIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMTAwZHZoO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSAwbXMsIGZpbHRlciAxcyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG4uc2VjdGlvbjpub3QoLnNlY3Rpb25fX2ludHJvKSB7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5pcy1tZW51LWFjdGl2ZSAuc2VjdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgdHJhbnNsYXRlM2QoLTEycmVtLCAwcHgsIDBweCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSAwbXMsIGZpbHRlciAxcyBlYXNlLWluLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGFuaW1hdGlvbi1kZWxheTogMXM7XG4gIGZpbHRlcjogYmx1cigwLjVyZW0pIGdyYXlzY2FsZSg1MCUpO1xufVxuLmlzLW1lbnUtYWN0aXZlIC5zZWN0aW9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDg7XG4gIHRyYW5zaXRpb246IGFsbCA0MDBtcyBjdWJpYy1iZXppZXIoMC4zOSwgMC41NzUsIDAuNTY1LCAxKSAwbXM7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xufVxuLnNlY3Rpb24gdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHotaW5kZXg6IDA7XG59XG4uc2VjdGlvbiAuYmdkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG59XG4uc2VjdGlvbiAuYmdkIHBpY3R1cmUge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbn1cbi5zZWN0aW9uIC5iZ2RfX2ltZyB7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMS40cztcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNlY3Rpb24gLmJnZF9faW1nIHtcbiAgICBvYmplY3QtcG9zaXRpb246IDcwJSA1MCU7XG4gIH1cbn1cbi5zZWN0aW9uLmlzLWFjdGl2ZSBoMiwgLnNlY3Rpb24uaXMtYWN0aXZlIC5yLXRleHRfX3ByZXRpdGxlIHtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggNXB4ICMyY2I1YTcsIDFweCAxcHggMTVweCAjMmNiNWE3O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLnNlY3Rpb24uaXMtYWN0aXZlIC5iZ2RfX2ltZyB7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcbiAgdHJhbnNpdGlvbjogZmlsdGVyIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjRzO1xufVxuLnNlY3Rpb24gLmJveCB7XG4gIGJvdHRvbTogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDMzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAzcmVtIDJyZW0gM3JlbSA1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGlvbiAuYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJvdHRvbTogNHJlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIDVyZW07XG4gICAgd2lkdGg6IDcwcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDE0cmVtO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbi5zZWN0aW9uIC5ib3hfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5zZWN0aW9uIC5ib3ggcDpsYXN0LW9mLXR5cGUge1xuICBtYXJnaW46IDA7XG59XG4uc2VjdGlvbiAuYm94IGgyLCAuc2VjdGlvbiAuYm94IC5yLXRleHRfX3ByZXRpdGxlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAuc2VjdGlvbiAuci10ZXh0X19kZXNjIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zZWN0aW9uIC5yLXRleHRfX2Rlc2Mge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgbGVmdDogMjJweDtcbiAgfVxufVxuLnNlY3Rpb24gLnItdGV4dF9fdGl0bGUge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGlvbiAuci10ZXh0X190aXRsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIH1cbn1cbi5zZWN0aW9uIC5yLXRleHQuci10ZXh0LW5vLXByZXRpdGxlIC5yLXRleHRfX3RpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uc2VjdGlvbiAuci10ZXh0LnItdGV4dC1uby1wcmV0aXRsZSAuci10ZXh0X19kZXNjIHtcbiAgbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uc2VjdGlvbl9faW50cm8gLnRocmVlX19tb3VudGFpbiB7XG4gIHdpZHRoOiAxMDA7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG4uc2VjdGlvbl9faW50cm8gLmJveCB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHotaW5kZXg6IDM7XG59XG4uc2VjdGlvbl9faW50cm8gLmJveF9fdGV4dCB7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogN3JlbTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIC5zZWN0aW9uX19pbnRybyAuYm94X190ZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA0cmVtO1xuICAgIGxlZnQ6IDRyZW07XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uc2VjdGlvbl9faW50cm8gLmJveF9fdGV4dC10aXRsZSB7XG4gIHBhZGRpbmc6IDAgM3JlbTtcbn1cbi5zZWN0aW9uX19pbnRybyAuYm94X190ZXh0LXRpdGxlIGgxIHtcbiAgZm9udC1zaXplOiAzLjRyZW07XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTEzcHgpIHtcbiAgLnNlY3Rpb25fX2ludHJvIC5ib3hfX3RleHQtdGl0bGUgaDEge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5zZWN0aW9uX19pbnRybyAuYm94X190ZXh0LXRpdGxlIHAge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMTEzcHgpIHtcbiAgLnNlY3Rpb25fX2ludHJvIC5ib3hfX3RleHQtdGl0bGUgcCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLnNlY3Rpb25fX2ludHJvIC5ib3hfX3RleHQtdGl0bGUgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5zZWN0aW9uX19pbnRybyAuY2x1dGNoLXJld2FyZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2ltZy9jbHV0Y2gtbG9nby1zZXJ2aWNlLnBuZ1wiKTtcbiAgd2lkdGg6IDEwcmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDk7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIC5zZWN0aW9uX19pbnRybyAuY2x1dGNoLXJld2FyZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMHJlbTtcbiAgICBib3R0b206IDRyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLnNlY3Rpb25fX2ludHJvIC5jbHV0Y2gtcmV3YXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWN0aW9uX193aGF0LXdlLWRvOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vaW1nL3BhdHRlcm5zL3Jhc3Rlci5wbmdcIikgcmVwZWF0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvIC5iZ2RfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIHotaW5kZXg6IDA7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4zcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMS40cztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2VjdGlvbl9fd2hhdC13ZS1kbyAuYmdkX19pbWcge1xuICAgIG9iamVjdC1wb3NpdGlvbjogNzAlIDUwJTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5zZWN0aW9uX193aGF0LXdlLWRvLml0ZW0uaXRlbS0xIGltZyB7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodCAyMCUgdG9wIDUwJTtcbiAgfVxuICAuc2VjdGlvbl9fd2hhdC13ZS1kby5pdGVtLml0ZW0tNCBpbWcge1xuICAgIG9iamVjdC1wb3NpdGlvbjogbGVmdCA1MCU7XG4gIH1cbiAgLnNlY3Rpb25fX3doYXQtd2UtZG8uaXRlbS5pdGVtLTUgaW1nIHtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IDYwJSB0b3AgNTAlO1xuICB9XG59XG4uc2VjdGlvbl9fd2hhdC13ZS1kby5pdGVtLTEgLmJnZCB7XG4gIG1peC1ibGVuZC1tb2RlOiBsaWdodGVuO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXRlbS0yIC5iZ2Qge1xuICBtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLml0ZW0tMiAuYmdkOjpiZWZvcmUsIC5zZWN0aW9uX193aGF0LXdlLWRvLml0ZW0tMiAuYmdkOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgei1pbmRleDogMTtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLml0ZW0tMiAuYmdkOjpiZWZvcmUge1xuICBsZWZ0OiAtNnB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9pbWcvd2hhdC13ZS1kby93aGF0LXdlLWRvLXdlYi5qcGdcIik7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpIHNlcGlhKDEwMCUpIHNhdHVyYXRlKDI1MCUpIGh1ZS1yb3RhdGUoMTIwZGVnKSBicmlnaHRuZXNzKDEyMSUpIGNvbnRyYXN0KDEyMSUpO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXRlbS0yIC5iZ2Q6OmFmdGVyIHtcbiAgbGVmdDogNnB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi8uLi9pbWcvd2hhdC13ZS1kby93aGF0LXdlLWRvLXdlYi5qcGdcIik7XG4gIGZpbHRlcjogc2VwaWEoMTAwJSkgaHVlLXJvdGF0ZSgxOTBkZWcpIHNhdHVyYXRlKDUwMCUpO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXRlbS0zIC5iZ2Qge1xuICBtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLml0ZW0tNCAuYmdkIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47XG59XG4uc2VjdGlvbl9fd2hhdC13ZS1kby5pdGVtLTUge1xuICBiYWNrZ3JvdW5kOiAjMDkwZTEwO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXRlbS01IC5iZ2Qge1xuICBtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLmlzLWFjdGl2ZS5pdGVtLTEgLmJnZF9faW1nIHtcbiAgYW5pbWF0aW9uOiBtb3ZlLTEgNXMgbGluZWFyIGZvcndhcmRzO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXMtYWN0aXZlLml0ZW0tMiAuYmdkOjpiZWZvcmUsIC5zZWN0aW9uX193aGF0LXdlLWRvLmlzLWFjdGl2ZS5pdGVtLTIgLmJnZDo6YWZ0ZXIge1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXMtYWN0aXZlLml0ZW0tMiAuYmdkOjpiZWZvcmUge1xuICBhbmltYXRpb246IGdsaXRjaC1lZmZlY3QgMnMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZS1yZXZlcnNlO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXMtYWN0aXZlLml0ZW0tMiAuYmdkOjphZnRlciB7XG4gIGFuaW1hdGlvbjogZ2xpdGNoLWVmZmVjdCAzcyBpbmZpbml0ZSBsaW5lYXIgYWx0ZXJuYXRlLXJldmVyc2U7XG59XG4uc2VjdGlvbl9fd2hhdC13ZS1kby5pcy1hY3RpdmUuaXRlbS0zIC5iZ2RfX2ltZyB7XG4gIGFuaW1hdGlvbjogbW92ZS0zIDVzIGxpbmVhciBmb3J3YXJkcztcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLmlzLWFjdGl2ZS5pdGVtLTQge1xuICBwZXJzcGVjdGl2ZTogMTBweDtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvLmlzLWFjdGl2ZS5pdGVtLTQgLmJnZF9faW1nIHtcbiAgYW5pbWF0aW9uOiBtb3ZlLTQgMTUwcyBsaW5lYXIgYWx0ZXJuYXRlIGluZmluaXRlO1xufVxuLnNlY3Rpb25fX3doYXQtd2UtZG8uaXMtYWN0aXZlLml0ZW0tNSAuYmdkX19pbWcge1xuICBhbmltYXRpb246IG1vdmUtNSA1cyBsaW5lYXIgZm9yd2FyZHM7XG59XG5cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcbn1cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMuaXMtYWN0aXZlIHtcbiAgZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xufVxuLnNlY3Rpb25fX3RlY2hub2xvZ2llcyAuci10ZXh0X19kZXNjIHtcbiAgbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLnNlY3Rpb25fX3RlY2hub2xvZ2llcyAuci10ZXh0X19kZXNjIGgyIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uc2VjdGlvbl9fdGVjaG5vbG9naWVzIHZpZGVvIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMgI3RlY2hfY2FudmFzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMgI3RlY2hfY2FudmFzID4gY2FudmFzLFxuLnNlY3Rpb25fX3RlY2hub2xvZ2llcyAjdGVjaF9jYW52YXMgPiBkaXYge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMgI3RlY2hfY2FudmFzLmFjdGl2ZSA+IGNhbnZhcyB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG4uc2VjdGlvbl9fdGVjaG5vbG9naWVzIC5lbGVtZW50IHtcbiAgd2lkdGg6IDE4cmVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJveC1zaGFkb3c6IDAgMCAxLjJyZW0gcmdiYSg0NywgMTEzLCAyMTksIDAuNSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTcsIDYwLCA4NywgMC4yNyk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGlvbl9fdGVjaG5vbG9naWVzIC5lbGVtZW50IHtcbiAgICB3aWR0aDogMjRyZW07XG4gICAgaGVpZ2h0OiAyMHJlbTtcbiAgfVxufVxuLnNlY3Rpb25fX3RlY2hub2xvZ2llcyAuZWxlbWVudDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAxLjJyZW0gcmdiYSg0NywgMTEzLCAyMTksIDAuNzUpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQ3LCAxMTMsIDIxOSwgMC43NSk7XG59XG4uc2VjdGlvbl9fdGVjaG5vbG9naWVzIC5lbGVtZW50IC5udW1iZXIge1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2VjdGlvbl9fdGVjaG5vbG9naWVzIC5lbGVtZW50IC5zeW1ib2wge1xuICBmb250LXNpemU6IDRyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIC5zZWN0aW9uX190ZWNobm9sb2dpZXMgLmVsZW1lbnQgLnN5bWJvbCB7XG4gICAgZm9udC1zaXplOiA1LjVyZW07XG4gIH1cbn1cbi5zZWN0aW9uX190ZWNobm9sb2dpZXMgLmVsZW1lbnQgLmRldGFpbHMge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBwYWRkaW5nOiAzcHggNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAuc2VjdGlvbl9fdGVjaG5vbG9naWVzIC5lbGVtZW50IC5kZXRhaWxzIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgcGFkZGluZzogMCA0cHg7XG4gIH1cbn1cblxuLnNlY3Rpb25fX2NsaWVudHM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi9pbWcvcGF0dGVybnMvcmFzdGVyLnBuZ1wiKSByZXBlYXQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xufVxuLnNlY3Rpb25fX2NsaWVudHMge1xuICBiYWNrZ3JvdW5kOiAjMGEwZTExO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDFzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjRzO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAuc2VjdGlvbl9fY2xpZW50cyAuYm94IHtcbiAgICB3aWR0aDogNTVyZW07XG4gIH1cbn1cbi5zZWN0aW9uX19jbGllbnRzIC5ib3ggaDMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG59XG4uc2VjdGlvbl9fY2xpZW50cyAuYm94IGg0IHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi5zZWN0aW9uX19jbGllbnRzIC5iZ2Qge1xuICBtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjtcbn1cbi5zZWN0aW9uX19jbGllbnRzLmlzLWFjdGl2ZSAuYmdkX19pbWcge1xuICBhbmltYXRpb246IG1vdmUtNSA1cyBsaW5lYXIgZm9yd2FyZHM7XG59XG5cbi5zZWN0aW9uX19ibG9nOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vaW1nL3BhdHRlcm5zL3Jhc3Rlci5wbmdcIikgcmVwZWF0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbn1cbi5zZWN0aW9uX19ibG9nIC5idG4ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAuc2VjdGlvbl9fYmxvZyAuYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG59XG4uc2VjdGlvbl9fYmxvZyAuYmdkIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47XG59XG5Aa2V5ZnJhbWVzIG1vdmUtMSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCkgc2NhbGUoMS4xKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcbiAgfVxufVxuLnNlY3Rpb25fX2Jsb2cgLmJnZCAuYmdkX19pbWcge1xuICBhbmltYXRpb246IG1vdmUtMSA1cyBsaW5lYXIgZm9yd2FyZHM7XG59XG4uc2VjdGlvbl9fYmxvZy5pcy1hY3RpdmUgLmJnZF9faW1nIHtcbiAgYW5pbWF0aW9uOiBtb3ZlLTEgNXMgbGluZWFyIGZvcndhcmRzO1xufVxuXG4uc2VjdGlvbl9fY29udGFjdCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cbi5zZWN0aW9uX19jb250YWN0IHZpZGVvIHtcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgNzAlIDAsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb25fX2NvbnRhY3QgdmlkZW8ge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDUwJSAwLCAxMDAlIDIyMCUsIDAlIDEwMCUpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gIC5zZWN0aW9uX19jb250YWN0IHZpZGVvIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCA1MCUgMCwgMTAwJSAxMzAlLCAwJSAxMDAlKTtcbiAgfVxufVxuLnNlY3Rpb25fX2NvbnRhY3Qtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2ltZy9wYXR0ZXJucy9saW5lcy1ob3Jpem9udGFsLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG59XG4uc2VjdGlvbl9fY29udGFjdCAuYm94IHtcbiAgcGFkZGluZzogMjBweCAyMHB4IDYwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNlY3Rpb25fX2NvbnRhY3QgLmJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogNHJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTExM3B4KSB7XG4gIC5zZWN0aW9uX19jb250YWN0IC5ib3gge1xuICAgIHBhZGRpbmc6IDVyZW0gMTE1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDQxcHgpIHtcbiAgLnNlY3Rpb25fX2NvbnRhY3QgLmJveCB7XG4gICAgcGFkZGluZzogNXJlbSAxMS41cmVtO1xuICB9XG59XG4uc2VjdGlvbl9fY29udGFjdCAuYm94IGgyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBtYXJnaW4tYm90dG9tOiAzLjI1cmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMCA0cHggI2ZmZiwgMCAwIDExcHggI2ZmZiwgMCAwIDE5cHggI2ZmZiwgMCAwIDQwcHggIzJjYjVhNywgMCAwIDgwcHggIzJjYjVhNywgMCAwIDkwcHggIzJjYjVhNywgMCAwIDEwMHB4ICMyY2I1YTcsIDAgMCAxNTBweCAjMmNiNWE3O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5zZWN0aW9uX19jb250YWN0IC5ib3ggaDIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA2LjI1cmVtO1xuICB9XG59XG4uc2VjdGlvbl9fY29udGFjdCAuYm94IHAge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXgtd2lkdGg6IDM2MHB4O1xufVxuLnNlY3Rpb25fX2NvbnRhY3QgLmJveCAuYnRuIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cbi5zZWN0aW9uX19jb250YWN0IC5zb2NpYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnNlY3Rpb25fX2NvbnRhY3QgLnNvY2lhbCBhIHtcbiAgY29sb3I6ICMyY2I1YTc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyY2I1YTc7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDVweDtcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDExMTNweCkge1xuICAuc2VjdGlvbl9fY29udGFjdCAuc29jaWFsIGEge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG59XG4uc2VjdGlvbl9fY29udGFjdCAuc29jaWFsIGEgc3ZnIHtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgbWF4LXdpZHRoOiAyMHB4O1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLnNlY3Rpb25fX2NvbnRhY3QgLnNvY2lhbCBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzJmNzFkYjtcbiAgICBib3JkZXItY29sb3I6ICMyZjcxZGI7XG4gICAgdHJhbnNpdGlvbjogMC4zcyBlYXNlO1xuICB9XG4gIC5zZWN0aW9uX19jb250YWN0IC5zb2NpYWwgYTpob3ZlciBzdmcge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuZm9vdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDFyZW07XG4gIGxlZnQ6IDRyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5mb290ZXIgZGl2IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGNvbG9yOiAjZmZmO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGZvb3RlciBkaXYge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG59XG5cbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuLm1vZGFsW29wZW5dIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubW9kYWw6OmJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MHB4KTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIG1hcmdpbjogMzBweCBhdXRvO1xufVxuLm1vZGFsW29wZW5dIC5tb2RhbC1kaWFsb2cge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgb3V0bGluZTogMDtcbn1cbi5tb2RhbC1jbG9zZSB7XG4gIHdpZHRoOiAxMHJlbTtcbiAgbWFyZ2luOiAwIGF1dG8gM3JlbTtcbn1cbi5tb2RhbC1jbG9zZSBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiAjMmNiNWE3O1xuICBoZWlnaHQ6IDEwcmVtO1xuICB3aWR0aDogMTByZW07XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogNC40cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubW9kYWwtY2xvc2UgYnV0dG9uOmhvdmVyLCAubW9kYWwtY2xvc2UgYnV0dG9uOmZvY3VzLCAubW9kYWwtY2xvc2UgYnV0dG9uOmZvY3VzLXZpc2libGUsIC5tb2RhbC1jbG9zZSBidXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzJmNzFkYjtcbiAgZm9udC1zaXplOiA1cmVtO1xufVxuLm1vZGFsLWhlYWRlciB7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICBwYWRkaW5nOiAxcmVtIDFyZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGMoMC4zcmVtIC0gMXB4KTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGMoMC4zcmVtIC0gMXB4KTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbn1cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgcGFkZGluZzogMXJlbSAxcmVtO1xuICBtYXJnaW46IC0xcmVtIC0xcmVtIC0xcmVtIGF1dG87XG59XG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzJiMmIyYjtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDJyZW07XG59XG4ubW9kYWwtYm9keSBhIHtcbiAgY29sb3I6ICMyY2I1YTc7XG59XG4ubW9kYWwtYm9keSBhOmhvdmVyLCAubW9kYWwtYm9keSBhOmZvY3VzLCAubW9kYWwtYm9keSBhOmZvY3VzLXZpc2libGUsIC5tb2RhbC1ib2R5IGE6YWN0aXZlIHtcbiAgY29sb3I6ICMyZjcxZGI7XG59XG4ubW9kYWwtYm9keSBoMyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5tb2RhbC5tb2RhbC1jbGllbnRzIC5jb2wtbWQtNCB7XG4gIGJvcmRlci1sZWZ0OiAwLjFyZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubW9kYWwubW9kYWwtY2xpZW50cyAuY29sLW1kLTQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuLm1vZGFsLm1vZGFsLWNsaWVudHMgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RhbC5tb2RhbC1jbGllbnRzIHVsIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4ubW9kYWwubW9kYWwtY2xpZW50cyB1bCBsaSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjdyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzIC5tb2RhbC1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgLm1vZGFsLXRpdGxlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAubW9kYWwtY2xvc2Uge1xuICBtYXJnaW46IDAgYXV0byAycmVtO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgLm1vZGFsLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzICNjb250YWN0LWZvcm0gLmNvbnRyb2wtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzICNjb250YWN0LWZvcm0gLmNvbnRyb2wtZ3JvdXAuY29udHJvbC1ncm91cC10ZXh0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtIC5jb250cm9sLWdyb3VwIC5jb250cm9scyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzICNjb250YWN0LWZvcm0gLmNvbnRyb2wtZ3JvdXAgLmNvbnRyb2xzIHRleHRhcmVhLCAubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtIC5jb250cm9sLWdyb3VwIC5jb250cm9scyBpbnB1dCB7XG4gIG91dGxpbmU6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDEuMnJlbSAycmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyY2I1YTc7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNXJlbTtcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzICNjb250YWN0LWZvcm0gLmNvbnRyb2wtZ3JvdXAgLmNvbnRyb2xzIGlucHV0IHtcbiAgaGVpZ2h0OiA2cmVtO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSAuY29udHJvbC1ncm91cCAuY29udHJvbHMgdGV4dGFyZWEge1xuICBtaW4taGVpZ2h0OiAxNnJlbTtcbiAgcmVzaXplOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSAuY29udHJvbC1ncm91cCAuY29udHJvbHMgbGFiZWwge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtIC5jb250cm9sLWdyb3VwIC5jb250cm9scyAuaGVscC1ibG9jayB1bCB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBjb2xvcjogI2VlM2I1YjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSAuY29udHJvbC1ncm91cCAuY29udHJvbHMgdGV4dGFyZWEgKyAuaGVscC1ibG9jayB1bCB7XG4gIHRvcDogMjIlO1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSBidXR0b24uc3VibWl0IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHBhZGRpbmc6IDEuOXJlbSA1cmVtO1xuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxOHJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZDogIzJjYjVhNztcbn1cbi5tb2RhbC5tb2RhbC1jb250YWN0LXVzICNjb250YWN0LWZvcm0gYnV0dG9uLnN1Ym1pdDpob3ZlciwgLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSBidXR0b24uc3VibWl0OmZvY3VzLCAubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtIGJ1dHRvbi5zdWJtaXQ6Zm9jdXMtdmlzaWJsZSwgLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSBidXR0b24uc3VibWl0OmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICMyZjcxZGI7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuNXMgZWFzZS1pbi1vdXQ7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAxcmVtIGF1dG8gMnJlbTtcbiAgcGFkZGluZzogMTVweCA0MHB4IDE1cHggMTVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydC1zdWNjZXNzIHtcbiAgY29sb3I6ICNkNGVkZGE7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyY2I1YTc7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydC1zdWNjZXNzIGJ1dHRvbiB7XG4gIGNvbG9yOiAjMmNiNWE3O1xufVxuLm1vZGFsLm1vZGFsLWNvbnRhY3QtdXMgI2NvbnRhY3QtZm9ybSAjc3VjY2VzcyAuYWxlcnQtZGFuZ2VyIHtcbiAgY29sb3I6ICNlZTNiNWI7XG4gIGJvcmRlcjogMC4xcmVtIHNvbGlkICNlZTNiNWI7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydC1kYW5nZXIgYnV0dG9uIHtcbiAgY29sb3I6ICNlZTNiNWI7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydCBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIC5hbGVydCBwOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubW9kYWwubW9kYWwtY29udGFjdC11cyAjY29udGFjdC1mb3JtICNzdWNjZXNzIGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBmb250LXNpemU6IDNyZW07XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5tb2RhbC5tb2RhbC1ub3RpY2Uge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5tb2RhbCBoNCB7XG4gIGNvbG9yOiAjMmNiNWE3O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RhbCBoNCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLm1vZGFsIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubW9kYWwgLnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4ubW9kYWwgLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm1vZGFsIC5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwO1xuICB9XG59XG4ubW9kYWwgLmNvbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMS43NXJlbSBhdXRvO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tb2RhbC1sZyxcbiAgLm1vZGFsLXhsIHtcbiAgICBtYXgtd2lkdGg6IDEwMjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubW9kYWwteGwge1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAubW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuLnR4dC0tY2xyLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4udHh0LS1jbHItYmxhY2sge1xuICBjb2xvcjogIzI5MmIyYztcbn1cbi50eHQtLWNsci1wdXJwbGUge1xuICBjb2xvcjogIzZlNGM3MTtcbn1cbi50eHQtLWNsci1yZWQge1xuICBjb2xvcjogI2VlM2I1Yjtcbn1cbi50eHQtLWNsci1ncmF5IHtcbiAgY29sb3I6ICM5OTk4OTk7XG59XG4udHh0LS1jbHItZ3JlZW4ge1xuICBjb2xvcjogIzJjYjVhNztcbn1cbi50eHQtLWNsci1kYXJrIHtcbiAgY29sb3I6ICMzOTNjNTc7XG59XG4udHh0LS1jbHItYmx1ZSB7XG4gIGNvbG9yOiAjMmY3MWRiO1xufVxuXG4uYmctLWNsci13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYmctLWNsci1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7XG59XG4uYmctLWNsci1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmU0YzcxO1xufVxuLmJnLS1jbHItcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlM2I1Yjtcbn1cbi5iZy0tY2xyLWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5ODk5O1xufVxuLmJnLS1jbHItZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmNiNWE3O1xufVxuLmJnLS1jbHItZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTNjNTc7XG59XG4uYmctLWNsci1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmNzFkYjtcbn1cblxuLmJ0bi0tY2xyLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tLWNsci1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmM7XG59XG4uYnRuLS1jbHItcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZlNGM3MTtcbn1cbi5idG4tLWNsci1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUzYjViO1xufVxuLmJ0bi0tY2xyLWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5ODk5O1xufVxuLmJ0bi0tY2xyLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJjYjVhNztcbn1cbi5idG4tLWNsci1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM5M2M1Nztcbn1cbi5idG4tLWNsci1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmNzFkYjtcbn1cblxuLnBvcy1yZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wb3Mtc3RjIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xufVxuXG4ucG9zLWFidCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnBvcy1maXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi5uby1yZXNpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbnNtYWxsLCAuc21hbGwge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jLWFsbC0wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDk7XG59XG5cbi5jLWFsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4uYm9yZGVyLTAge1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbn1cblxuLnN0YXJzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc3RhciB7XG4gIHdpZHRoOiAzcHg7XG4gIGhlaWdodDogM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC44KTtcbiAgYm94LXNoYWRvdzogMCAwIDQwcHggMCByZ2JhKDAsIDEyMywgMjU1LCAwLjgpLCAwIDAgMjBweCAwICNmZmY7XG4gIGFuaW1hdGlvbjogZ2xvdyA1cyBpbmZpbml0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3Rhci0tbWVkaXVtIHtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG59XG4uc3Rhci0tYmlnIHtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiA5cHg7XG4gIGJveC1zaGFkb3c6IDAgMCA0MHB4IDAgIzAwN2JmZiwgMCAwIDIwcHggMCAjZmZmLCBpbnNldCAwIDAgNHB4ICNmZmY7XG59XG4uc3Rhci5jb21ldCB7XG4gIHdpZHRoOiA1cHg7XG4gIGhlaWdodDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gIGJveC1zaGFkb3c6IDAgMCA3cHggN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgdG9wOiAwO1xuICBvcGFjaXR5OiAwLjM7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlKDAsIC01MHB4KTtcbiAgYW5pbWF0aW9uOiBjb21ldCA1MHMgaW5maW5pdGU7XG59XG4uc3Rhci5jb21ldDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTB2dztcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3gtc2hhZG93OiAwIDAgNjBweCByZ2JhKDIzNywgMjA1LCAxNjMsIDAuNCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4uc2VjdGlvbl9fd2hhdC13ZS1kbyAuc3RhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNDMsIDI0MywgMC44KTtcbiAgYm94LXNoYWRvdzogMCAwIDQwcHggMCByZ2JhKDI1MiwgMjUzLCAyNTUsIDAuOCksIDAgMCAyMHB4IDAgI2ZmZjtcbn1cbi5zZWN0aW9uX193aGF0LXdlLWRvIC5zdGFyLnN0YXItLWJpZyB7XG4gIGJveC1zaGFkb3c6IDAgMCA0MHB4IDAgI2VhZWFlYSwgMCAwIDIwcHggMCAjZmZmLCBpbnNldCAwIDAgNHB4ICNmZmY7XG59XG5cbkBrZXlmcmFtZXMgZ2xvdyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjI7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG59XG5Aa2V5ZnJhbWVzIGNvbWV0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWCgwKTtcbiAgICBvcGFjaXR5OiAwLjM7XG4gIH1cbiAgMTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKC0xMDB2dyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVgoLTEwMHZ3KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4uZHJhdy1pbiB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEwMDA7XG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xuICBhbmltYXRpb246IGRyYXcgMTVzIGVhc2UtaW4tb3V0IGFsdGVybmF0ZSBpbmZpbml0ZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGRyYXcge1xuICBmcm9tIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMTAwMDtcbiAgfVxuICB0byB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZHJhdyB7XG4gIGZyb20ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xuICB9XG4gIHRvIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxufVxuLml0ZW0tdG8ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDEwcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbn1cblxuLmJvdW5jZS0xIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZS0xO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuXG4uYm91bmNlLTIge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlLTI7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5cbi5ib3VuY2UtMyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2UtMztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZS0xIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYm91bmNlLTEge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZS0yIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJvdW5jZS0yIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlLTMge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuQGtleWZyYW1lcyBib3VuY2UtMyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRpb24ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyByb3RhdGlvbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59IiwiQHVzZSBcInNhc3M6bGlzdFwiO1xyXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcclxuLy9cclxuLy8gR2VuZXJpYyBDbGFzc2VzXHJcbi8vXHJcbkBtaXhpbiBhdHRyLXgoJG5hbWUsICRhdHRyLCAkYXR0ci1jb3VudDogMTAsICRhdHRyLXN0ZXBzOiAxMCwgJHVuaXQ6ICclJykge1xyXG4gICRhdHRyLWxpc3Q6IG51bGw7XHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYXR0ci1jb3VudCB7XHJcbiAgICAkYXR0ci12YWx1ZTogJGF0dHItc3RlcHMgKiAkaTtcclxuXHJcbiAgICAuI3skbmFtZX0jeyRhdHRyLXZhbHVlfSB7XHJcbiAgICAgICN7JGF0dHJ9OiAjeyRhdHRyLXZhbHVlfSN7JHVuaXR9O1xyXG4gICAgfVxyXG5cclxuICAgICRhdHRyLWxpc3Q6IGxpc3QuYXBwZW5kKCRhdHRyLWxpc3QsIHN0cmluZy51bnF1b3RlKFwiLiN7JG5hbWV9LSN7JGF0dHItdmFsdWV9XCIpLCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAjeyRhdHRyLWxpc3R9IHtcclxuICAgIC8vYXBwZW5kIHN0eWxlIHRvIGFsbCBjbGFzc2VzXHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBhdHRyLXgoJ21sLScsICdtYXJnaW4tbGVmdCcsIDEwLCA1LCAncHgnKTtcclxuQGluY2x1ZGUgYXR0ci14KCdtci0nLCAnbWFyZ2luLXJpZ2h0JywgMTAsIDUsICdweCcpO1xyXG5cclxuIiwiQG1lZGlhIHByaW50IHtcclxuXHQqLFxyXG5cdCo6OmJlZm9yZSxcclxuXHQqOjphZnRlciB7XHJcblx0XHRiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XHJcblx0XHRjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG5cdFx0LyogQmxhY2sgcHJpbnRzIGZhc3RlciAqL1xyXG5cdFx0Ym94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0dGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuXHR9XHJcblxyXG5cdGEsXHJcblx0YTp2aXNpdGVkIHtcclxuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdH1cclxuXHJcblx0YVtocmVmXTo6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XHJcblx0fVxyXG5cclxuXHRhYmJyW3RpdGxlXTo6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xyXG5cdH1cclxuXHJcblx0LypcclxuXHQgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxyXG5cdCAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcclxuXHQgKi9cclxuXHRhW2hyZWZePVwiI1wiXTo6YWZ0ZXIsXHJcblx0YVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOjphZnRlciB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdH1cclxuXHJcblx0cHJlIHtcclxuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0cHJlLFxyXG5cdGJsb2NrcXVvdGUge1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgIzk5OTtcclxuXHRcdHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcclxuXHR9XHJcblxyXG5cdC8qXHJcblx0ICogUHJpbnRpbmcgVGFibGVzOlxyXG5cdCAqIGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE4MDgxNTE1MDkzNC9odHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcclxuXHQgKi9cclxuXHR0aGVhZCB7XHJcblx0XHRkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XHJcblx0fVxyXG5cclxuXHR0cixcclxuXHRpbWcge1xyXG5cdFx0cGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG5cdH1cclxuXHJcblx0cCxcclxuXHRoMixcclxuXHRoMyB7XHJcblx0XHRvcnBoYW5zOiAzO1xyXG5cdFx0d2lkb3dzOiAzO1xyXG5cdH1cclxuXHJcblx0aDIsXHJcblx0aDMge1xyXG5cdFx0cGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWVkaWEgcHJpbnQsXHJcbigtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMjUpLFxyXG4obWluLXJlc29sdXRpb246IDEuMjVkcHB4KSxcclxuKG1pbi1yZXNvbHV0aW9uOiAxMjBkcGkpIHtcclxuXHQvKiBTdHlsZSBhZGp1c3RtZW50cyBmb3IgaGlnaCByZXNvbHV0aW9uIGRldmljZXMgKi9cclxufVxyXG4iLCJAdXNlICdtaXhpbnMvaW5jbHVkZS1tZWRpYSc7XHJcblxyXG46cm9vdCB7XHJcblx0LS1mb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xyXG5cdC0teHM6IDMyMHB4O1xyXG5cdC0tc206IDU3NnB4O1xyXG5cdC0tbWQ6IDc2OHB4O1xyXG5cdC0tbGc6IDk5MnB4O1xyXG5cdC0teGw6IDEyMDBweDtcclxuXHQtLXh4bDogMTQwMHB4O1xyXG5cdC0tY29udGFpbmVyLXdpZHRoOiB2YXIoLS14eGwpO1xyXG5cdC0tYmFzZS10cmFuc2l0aW9uOiAuM3NcclxufVxyXG5cclxuJGZpbGVwYXRoOiAnfmFzc2V0cycgIWRlZmF1bHQ7XHJcbiRmb250cGF0aDogJy4vYXNzZXRzL2ZvbnRzJyAhZGVmYXVsdDtcclxuJGltZ3BhdGg6ICd+YXNzZXRzL2ltZycgIWRlZmF1bHQ7XHJcblxyXG5odG1sIHtcclxuXHRmb250LXNpemU6IDUwLjUlO1xyXG5cdC8vQGluY2x1ZGUgbWVkaWEoXCI+bWRcIikge1xyXG5cdC8vICBmb250LXNpemU6IDUwLjUlO1xyXG5cdC8vfVxyXG5cdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoXCI+ZGVza3RvcC1tXCIpIHtcclxuXHRcdGZvbnQtc2l6ZTogNjIuNSU7XHJcblx0fVxyXG59XHJcbiIsIkB1c2UgXCJzYXNzOmxpc3RcIjtcclxuQHVzZSBcInNhc3M6bWFwXCI7XHJcbkB1c2UgXCJzYXNzOm1hdGhcIjtcclxuQHVzZSBcInNhc3M6bWV0YVwiO1xyXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcclxuQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuICAgICAgICAncGhvbmUnOiAzMjBweCxcclxuICAgICAgICAndGFibGV0JzogNzY4cHgsXHJcbiAgICAgICAgJ2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuICAgICAgICAnc2NyZWVuJzogJ3NjcmVlbicsXHJcbiAgICAgICAgJ3ByaW50JzogJ3ByaW50JyxcclxuICAgICAgICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG4gICAgICAgICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuICAgICAgICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG4gICAgICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcbiAgICAgICAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG4gICAgICAgICdweCc6IDEsXHJcbiAgICAgICAgJ2VtJzogMC4wMSxcclxuICAgICAgICAncmVtJzogMC4xLFxyXG4gICAgICAgICcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcbiAgQGlmIG1ldGEuZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG4gICAgQGVycm9yICRtZXNzYWdlO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gJG1lc3NhZ2U7XHJcbiAgICAkXzogbm9vcCgpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuICAgIEBpZiBub3QgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG4gICAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgbm90IGxpc3QuaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcbiAgICBAaWYgc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHJpbmcuc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG4gICRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG4gIEBpZiBzdHJpbmcubGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG4gIEByZXR1cm4gaWYobGlzdC5pbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICR2YWx1ZTogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHJpbmcubGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgICR2YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgJGludGVydmFsOiBtYXAuZ2V0KCR1bml0LWludGVydmFscywgbWF0aC51bml0KCR2YWx1ZSkpO1xyXG5cclxuICBAaWYgbm90ICRpbnRlcnZhbCB7XHJcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje21hdGgudW5pdCgkdmFsdWUpfWAuJyk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuICBAaWYgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG4gICAgQHJldHVybiBtYXAuZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG4gIH1cclxuXHJcbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsaXN0Lmxlbmd0aCgkbGlzdCkpIHtcclxuICBAaWYgbGlzdC5sZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuICAgIEByZXR1cm4gKCk7XHJcbiAgfVxyXG5cclxuICAkcmVzdWx0OiAoKTtcclxuXHJcbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG4gICAgJHJlc3VsdDogbGlzdC5hcHBlbmQoJHJlc3VsdCwgbGlzdC5udGgoJGxpc3QsICRpKSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAcmV0dXJuICR2YWx1ZTtcclxuICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcbiAgfVxyXG5cclxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaWdpdHM6IDA7XHJcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG4gICAgJHZhbHVlOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAyKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyaW5nLmxlbmd0aCgkdmFsdWUpIHtcclxuICAgICRjaGFyYWN0ZXI6IHN0cmluZy5zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG4gICAgQGlmIG5vdCAobGlzdC5pbmRleChtYXAua2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHJpbmcuc2xpY2UoJHZhbHVlLCAkaSkpXHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuICAgICAgJGRpZ2l0czogMTtcclxuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcbiAgQGlmIG5vdCBsaXN0LmluZGV4KG1hcC5rZXlzKCR1bml0cyksICR1bml0KSB7XHJcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLmdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAubWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG4gIEBjb250ZW50O1xyXG5cclxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcbiAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXHJcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xyXG5cclxuLyogRG9jdW1lbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXHJcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbn1cclxuXHJcbi8qIFNlY3Rpb25zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbmJvZHkge1xyXG5cdG1hcmdpbjogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxyXG4gKi9cclxuXHJcbm1haW4ge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxyXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmgxIHtcclxuXHRmb250LXNpemU6IDJlbTtcclxuXHRtYXJnaW46IDAuNjdlbSAwO1xyXG59XHJcblxyXG4vKiBHcm91cGluZyBjb250ZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cclxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXHJcbiAqL1xyXG5cclxuaHIge1xyXG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXHJcblx0aGVpZ2h0OiAwOyAvKiAxICovXHJcblx0b3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5wcmUge1xyXG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xyXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXHJcbn1cclxuXHJcbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxyXG4gKi9cclxuXHJcbmEge1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4vKipcclxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cclxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5hYmJyW3RpdGxlXSB7XHJcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xyXG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXHJcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmIsXHJcbnN0cm9uZyB7XHJcblx0Zm9udC13ZWlnaHQ6IGJvbGRlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnNhbXAge1xyXG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xyXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zbWFsbCB7XHJcblx0Zm9udC1zaXplOiA4MCU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cclxuICogYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuXHRmb250LXNpemU6IDc1JTtcclxuXHRsaW5lLWhlaWdodDogMDtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG5zdWIge1xyXG5cdGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuc3VwIHtcclxuXHR0b3A6IC0wLjVlbTtcclxufVxyXG5cclxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuaW1nIHtcclxuXHRib3JkZXItc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8qIEZvcm1zXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5idXR0b24sXHJcbmlucHV0LFxyXG5vcHRncm91cCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cclxuXHRmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cclxuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xyXG5cdG1hcmdpbjogMDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXHJcbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCB7IC8qIDEgKi9cclxuXHRvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxyXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3QgeyAvKiAxICovXHJcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuW3R5cGU9XCJidXR0b25cIl0sXHJcblt0eXBlPVwicmVzZXRcIl0sXHJcblt0eXBlPVwic3VibWl0XCJdIHtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxyXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xyXG5cdGJvcmRlci1zdHlsZTogbm9uZTtcclxuXHRwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxyXG4gKi9cclxuXHJcbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcclxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcclxuXHRvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAqL1xyXG5cclxuZmllbGRzZXQge1xyXG5cdHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXHJcbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cclxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxyXG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5sZWdlbmQge1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cclxuXHRjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xyXG5cdGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXHJcblx0bWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXHJcblx0cGFkZGluZzogMDsgLyogMyAqL1xyXG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXHJcbiAqL1xyXG5cclxucHJvZ3Jlc3Mge1xyXG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuXHRvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxyXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuW3R5cGU9XCJjaGVja2JveFwiXSxcclxuW3R5cGU9XCJyYWRpb1wiXSB7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG5cdHBhZGRpbmc6IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cclxuICovXHJcblxyXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xyXG5cdGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cclxuICovXHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXSB7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cclxuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxyXG4gKi9cclxuXHJcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXHJcbiAqL1xyXG5cclxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cclxuXHRmb250OiBpbmhlcml0OyAvKiAyICovXHJcbn1cclxuXHJcbi8qIEludGVyYWN0aXZlXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmRldGFpbHMge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc3VtbWFyeSB7XHJcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xyXG59XHJcblxyXG4vKiBNaXNjXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxyXG4gKi9cclxuXHJcbnRlbXBsYXRlIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuW2hpZGRlbl0ge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuIiwiJWQtZmxleC1jZW50ZXIge1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuJWNsZWFyZml4IHtcclxuXHQqem9vbTogMTtcclxuXHJcblx0JjpiZWZvcmUsICY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCIgXCI7XHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG4ldmlzdWFsbHloaWRkZW4ge1xyXG5cdG1hcmdpbjogLTFweDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdHdpZHRoOiAxcHg7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRjbGlwOiByZWN0KDAgMCAwIDApO1xyXG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG59XHJcblxyXG4laC0xMDAtdy0xMDAge1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuJXRyYW5zZm9ybS1jZW50ZXIge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRsZWZ0OiA1MCU7XHJcblx0dG9wOiA1MCU7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbiVwb3MtYWJ0LWNlbnRlciB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGxlZnQ6IDA7XHJcblx0cmlnaHQ6IDA7XHJcblx0dG9wOiAwO1xyXG5cdGJvdHRvbTogMDtcclxufVxyXG5cclxuJWNvdmVyLWJhY2tncm91bmQge1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbn1cclxuXHJcbiVjb250YWluLWJhY2tncm91bmQge1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxufVxyXG4iLCJAdXNlIFwiLi4vaGVscGVycy9leHRlbmRzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvbWl4XCI7XHJcblxyXG5hIHtcclxuXHRjb2xvcjogaW5oZXJpdDtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHRAaW5jbHVkZSBtaXguaGFmIHtcclxuXHRcdGNvbG9yOiBpbmhlcml0O1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuYnV0dG9uIHtcclxuXHRAZXh0ZW5kICV0cm5zLTMgIW9wdGlvbmFsO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblx0Jjpob3ZlciB7XHJcblx0XHRAZXh0ZW5kICV0cm5zLTMgIW9wdGlvbmFsO1xyXG5cdH1cclxufVxyXG5cclxuOmZvY3VzLFxyXG46aG92ZXIge1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG46Oi1tb3otZm9jdXMtaW5uZXIge1xyXG5cdGJvcmRlcjogMDtcclxuXHRvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG46LW1vei1mb2N1c3Jpbmcge1xyXG5cdGNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHR0ZXh0LXNoYWRvdzogMCAwIDAgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbjo6LW1vei1zZWxlY3Rpb24ge1xyXG5cdGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cdGJhY2tncm91bmQ6IGNvbG9ycy5jb2xvcihncmVlbik7XHJcblx0dGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbjo6c2VsZWN0aW9uIHtcclxuXHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRiYWNrZ3JvdW5kOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdHRleHQtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG5ociB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG5cdG1hcmdpbjogMWVtIDA7XHJcblx0cGFkZGluZzogMDtcclxufVxyXG5cclxuYXVkaW8sXHJcbmNhbnZhcyxcclxuaWZyYW1lLFxyXG5pbWcsXHJcbnN2ZyxcclxudmlkZW8ge1xyXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbmZpZWxkc2V0IHtcclxuXHRib3JkZXI6IDA7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuXHRyZXNpemU6IHZlcnRpY2FsO1xyXG59XHJcblxyXG4uaGlkZGVuLFxyXG5baGlkZGVuXSB7XHJcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3Itb25seSB7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcblx0aGVpZ2h0OiAxcHg7XHJcblx0bWFyZ2luOiAtMXB4O1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0cGFkZGluZzogMDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHR3aWR0aDogMXB4O1xyXG5cdC8qIDEgKi9cclxufVxyXG5cclxuLnNyLW9ubHkuZm9jdXNhYmxlOmFjdGl2ZSxcclxuLnNyLW9ubHkuZm9jdXNhYmxlOmZvY3VzIHtcclxuXHRjbGlwOiBhdXRvO1xyXG5cdGhlaWdodDogYXV0bztcclxuXHRtYXJnaW46IDA7XHJcblx0b3ZlcmZsb3c6IHZpc2libGU7XHJcblx0cG9zaXRpb246IHN0YXRpYztcclxuXHR3aGl0ZS1zcGFjZTogaW5oZXJpdDtcclxuXHR3aWR0aDogYXV0bztcclxufVxyXG5cclxuc3ZnOm5vdCg6cm9vdCkge1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbiNhcHAge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxufVxyXG4iLCJAdXNlIFwiZGlzcGxheVwiO1xyXG5AdXNlIFwicG9zaXRpb25cIjtcclxuQHVzZSBcInNhc3M6bWF0aFwiO1xyXG5cclxuLy9cclxuLy8gSG92ZXIsIEFjdGl2ZSwgRm9jdXNcclxuLy9cclxuQG1peGluIGhhZiB7XHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6Zm9jdXMtdmlzaWJsZSxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbi8vXHJcbi8vIFJlc2V0IExpc3RcclxuLy9cclxuQG1peGluIHJlc2V0LWxpc3Qge1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8vXHJcbi8vIENTUyBUcmlhbmdsZXNcclxuLy9cclxuQG1peGluIGNzcy10cmlhbmdsZSgkY29sb3IsICRkaXJlY3Rpb24sICRzaXplOiA2cHgsICRwb3NpdGlvbjogYWJzb2x1dGUsICRyb3VuZDogZmFsc2UpIHtcclxuXHQvLyBAaW5jbHVkZSBwc2V1ZG8oJHBvczogJHBvc2l0aW9uKVxyXG5cdHdpZHRoOiAwO1xyXG5cdGhlaWdodDogMDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0QGlmICRyb3VuZCB7XHJcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0fVxyXG5cdEBpZiAkZGlyZWN0aW9uID09IGJvdHRvbSB7XHJcblx0XHRib3JkZXItbGVmdDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyLXRvcDogJHNpemUgc29saWQgJGNvbG9yO1xyXG5cdFx0bWFyZ2luLXRvcDogMCAtIG1hdGgucm91bmQobWF0aC5kaXYoJHNpemUsIDIuNSkpO1xyXG5cdH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB0b3Age1xyXG5cdFx0Ym9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRjb2xvcjtcclxuXHRcdG1hcmdpbi1ib3R0b206IDAgLSBtYXRoLnJvdW5kKG1hdGguZGl2KCRzaXplLCAyLjUgKSk7XHJcblx0fSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcclxuXHRcdGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAtJHNpemU7XHJcblx0fSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xyXG5cdFx0Ym9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IC0kc2l6ZTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBwYXR0ZXJuIHtcclxuXHQmOjpiZWZvcmUge1xyXG5cdFx0QGluY2x1ZGUgZGlzcGxheS5wc2V1ZG8oMTAwJSk7XHJcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltZy9wYXR0ZXJucy9yYXN0ZXIucG5nJykgcmVwZWF0O1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDApO1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHR9XHJcbn1cclxuIiwiQHVzZSAnLi4vbWl4aW5zL2ZvbnRzJztcclxuXHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xyXG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSksIHNhbnMtc2VyaWY7XHJcblx0Zm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XHJcblx0bWFyZ2luLXRvcDogMDtcclxuXHRtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG5wIHtcclxuXHRtYXJnaW4tdG9wOiAwO1xyXG5cdG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG59XHJcbiIsIkB1c2UgXCIuLi9taXhpbnMvY29sb3JzXCI7XHJcblxyXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuXHR3aWR0aDogOHB4O1xyXG5cdGhlaWdodDogMTJweDtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG59XHJcblxyXG4qOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcblx0Ym9yZGVyLXJhZGl1czogNnB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcbn1cclxuXHJcbio6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuXHRib3JkZXItcmFkaXVzOiA2cHg7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxufVxyXG5cclxuKjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6d2luZG93LWluYWN0aXZlIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbn1cclxuXHJcbio6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKGJsYWNrKTtcclxufVxyXG4iLCJAdXNlIFwiLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvcG9zaXRpb25cIjtcclxuQHVzZSBcIi4uL21peGlucy90cmFuc2l0aW9uc1wiO1xyXG5cclxuQHVzZSBcInNhc3M6bWF0aFwiO1xyXG5cclxuYSwgYTpob3ZlciB7XHJcblx0dHJhbnNpdGlvbjogY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT10ZXh0XSB7XHJcblx0dHJhbnNpdGlvbjogYm9yZGVyIHZhcigtLWJhc2UtdHJhbnNpdGlvbiksIGJhY2tncm91bmQtY29sb3IgdmFyKC0tYmFzZS10cmFuc2l0aW9uKTtcclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQge1xyXG5cdHRyYW5zaXRpb246IGZvbnQtc2l6ZSB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4vL0FuaW1hdGlvbnNcclxuQGtleWZyYW1lcyBwdWxzYXRlIHtcclxuXHQwJSB7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDAuMSwgMC4xKTtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0fVxyXG5cclxuXHQ1MCUge1xyXG5cdFx0b3BhY2l0eTogMTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjIsIDEuMik7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxufVxyXG5cclxuLnB1bHNhdGUge1xyXG5cdEBpbmNsdWRlIHRyYW5zaXRpb25zLmFuaW1hdGlvbigncHVsc2F0ZSAycyBlYXNlLW91dCcpO1xyXG5cdGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcclxuXHRmcm9tLCB0byB7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG5cdH1cclxuXHJcblx0MTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XHJcblx0fVxyXG5cclxuXHQyMCUsIDQwJSwgNjAlLCA4MCUge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaGFrZSB7XHJcblx0QGluY2x1ZGUgdHJhbnNpdGlvbnMuYW5pbWF0aW9uKCdzaGFrZSAycyBlYXNlLW91dCcpO1xyXG59XHJcblxyXG4vL05lb24gR2xvd1xyXG5AbWl4aW4gZy10ZXh0LWdsb3dfX2JsdWUge1xyXG5cdHRleHQtc2hhZG93OiAwIDAgNHB4ICNmZmYsXHJcblx0MCAwIDExcHggI2ZmZixcclxuXHQwIDAgMTlweCAjZmZmLFxyXG5cdDAgMCA0MHB4IGNvbG9ycy4kY2xyLWJsdWUsXHJcblx0MCAwIDgwcHggY29sb3JzLiRjbHItYmx1ZSxcclxuXHQwIDAgOTBweCBjb2xvcnMuJGNsci1ibHVlLFxyXG5cdDAgMCAxMDBweCBjb2xvcnMuJGNsci1ibHVlLFxyXG5cdDAgMCAxNTBweCBjb2xvcnMuJGNsci1ibHVlO1xyXG5cdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxufVxyXG5cclxuQG1peGluIGctdGV4dC1nbG93X19kZWZhdWx0IHtcclxuXHR0ZXh0LXNoYWRvdzogMCAwIDRweCAjZmZmLFxyXG5cdDAgMCAxMXB4ICNmZmYsXHJcblx0MCAwIDE5cHggI2ZmZixcclxuXHQwIDAgNDBweCBjb2xvcnMuJGNsci1ncmVlbixcclxuXHQwIDAgODBweCBjb2xvcnMuJGNsci1ncmVlbixcclxuXHQwIDAgOTBweCBjb2xvcnMuJGNsci1ncmVlbixcclxuXHQwIDAgMTAwcHggY29sb3JzLiRjbHItZ3JlZW4sXHJcblx0MCAwIDE1MHB4IGNvbG9ycy4kY2xyLWdyZWVuO1xyXG5cdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZ2xvd19fZGVmYXVsdCB7XHJcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggMTVweCBjb2xvcnMuY29sb3IoZ3JlZW4pLCAxcHggMXB4IDE1cHggY29sb3JzLmNvbG9yKGdyZWVuKTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmbGlja2VyIHtcclxuXHQwJSwgMTglLCAyMiUsIDI1JSwgNTMlLCA1NyUsIDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgZy10ZXh0LWdsb3dfX2JsdWU7XHJcblx0fVxyXG5cclxuXHQyMCUsIDI0JSwgNTUlIHtcclxuXHRcdHRleHQtc2hhZG93OiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuLmctZ2xvdy1uZW9uIHtcclxuXHRhbmltYXRpb246IGZsaWNrZXIgMi41cyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcblx0Y29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5nLWdsb3ctZGVmYXVsdCB7XHJcblx0QGluY2x1ZGUgZy10ZXh0LWdsb3dfX2RlZmF1bHQ7XHJcbn1cclxuXHJcbi5nLWdsb3ctYmx1ZSB7XHJcblx0QGluY2x1ZGUgZy10ZXh0LWdsb3dfX2JsdWU7XHJcbn1cclxuXHJcbi8vVGV4dCBSZXZlYWxcclxuLnItdGV4dCB7XHJcblx0LS10ZXh0LWZzLXRpdGxlOiAzcmVtO1xyXG5cdC0tdGV4dC1mcy1wcmV0aXRsZTogMS40cmVtO1xyXG5cdC0tdGV4dC1mcy1kZXNjOiAxLjZyZW07XHJcblx0LS10ZXh0LWNvbG9yOiAjZmZmO1xyXG5cdC0tdGV4dC1mdzogNTAwO1xyXG5cclxuXHQmX19wcmV0aXRsZSB7XHJcblx0XHRmb250LXNpemU6IHZhcigtLXRleHQtZnMtcHJldGl0bGUpO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLXRleHQtZncpO1xyXG5cdFx0Y29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDNweDtcclxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgMCAwKTtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KG1heC1jb250ZW50LCBtYXgtY29udGVudCk7XHJcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9ucy5yZXZlYWwtdGV4dDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwcHgsIDVweCwgMCkgcm90YXRlKC05MGRlZyk7XHJcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz43NjhweCcpIHtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApIHJvdGF0ZSgtOTBkZWcpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fdGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcclxuXHRcdGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1mcy10aXRsZSk7XHJcblx0XHRjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XHJcblx0XHRmb250LXdlaWdodDogdmFyKC0tdGV4dC1mdyk7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgwKSBza2V3WCgwZGVnKTtcclxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb25zLnJldmVhbC10ZXh0O1xyXG5cdH1cclxuXHJcblx0Jl9fZGVzYyB7XHJcblx0XHRmb250LXNpemU6IHZhcigtLXRleHQtZnMtZGVzYyk7XHJcblx0XHRmb250LXdlaWdodDogNDAwO1xyXG5cdFx0Y29sb3I6IHZhcigtLXRleHQtY29sb3IpO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcclxuXHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdGJvcmRlci1yYWRpdXM6IC4ycmVtO1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24ocmVsYXRpdmUsIGF1dG8pO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuNjtcclxuXHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHRtaW4taGVpZ2h0OiAxMHJlbTtcclxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb25zLnJldmVhbC10ZXh0O1xyXG5cdH1cclxuXHJcblx0LmlzLWFjdGl2ZSAmIHtcclxuXHRcdC5yLXRleHQge1xyXG5cdFx0XHQmX19wcmV0aXRsZSB7XHJcblx0XHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKDApO1xyXG5cdFx0XHRcdFx0dHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCZfX3RpdGxlLCAmX19kZXNjIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlWCgxKTtcclxuXHJcblx0XHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogc2NhbGVYKDApO1xyXG5cdFx0XHRcdFx0dHJhbnNpdGlvbi1kZWxheTogMC41cztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZHJhd1NWRyB7XHJcblx0ZnJvbSB7XHJcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNDgwMFxyXG5cdH1cclxuXHJcblx0dG8ge1xyXG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDBcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZS0xIHtcclxuXHRmcm9tIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCkgc2NhbGUoMS4xKTtcclxuXHR9XHJcblx0dG8ge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZS0zIHtcclxuXHRmcm9tIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMS4yKTtcclxuXHR9XHJcblx0dG8ge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZS00IHtcclxuXHRmcm9tIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XHJcblx0fVxyXG5cdHRvIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMS41KTtcclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbW92ZS01IHtcclxuXHRmcm9tIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMC45KTtcclxuXHR9XHJcblx0dG8ge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG5cdEBrZXlmcmFtZXMgbW92ZS01IHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MHB4LCAwKSBzY2FsZSgxLjEpO1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0dG8ge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDEpO1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBtb3ZlLWluIHtcclxuXHRmcm9tIHtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMC45KTtcclxuXHR9XHJcblx0dG8ge1xyXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKTtcclxuXHR9XHJcbn1cclxuXHJcbiRzdGVwczogMjA7XHJcbkBrZXlmcmFtZXMgZ2xpdGNoLWVmZmVjdCB7XHJcblx0QGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkc3RlcHMge1xyXG5cdFx0I3ttYXRoLnBlcmNlbnRhZ2UoJGkgKiBtYXRoLmRpdigxLCAkc3RlcHMpKX0ge1xyXG5cdFx0XHRjbGlwOiByZWN0KG1hdGgucmFuZG9tKDQwMCkgKyBweCwgMzAwMHB4LCBtYXRoLnJhbmRvbSgyNTApICsgcHgsIDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdXNlIFwic2FzczpsaXN0XCI7XHJcbkB1c2UgXCJzYXNzOm1hdGhcIjtcclxuQHVzZSBcInNhc3M6bWV0YVwiO1xyXG5AdXNlIFwic2FzczpzdHJpbmdcIjtcclxuLy9cclxuLy8gT25lIExpbmUgUG9zaXRpb25pbmdcclxuLy9cclxuQGZ1bmN0aW9uIF91bnBhY2stc2hvcnRoYW5kKCRzaG9ydGhhbmQpIHtcclxuICBAaWYgbGlzdC5sZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XHJcbiAgICBAcmV0dXJuIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpO1xyXG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XHJcbiAgICBAcmV0dXJuIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDIpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2UgaWYgbGlzdC5sZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XHJcbiAgICBAcmV0dXJuIGxpc3QubnRoKCRzaG9ydGhhbmQsIDEpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDIpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDMpIGxpc3QubnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xyXG4gIH1cclxufVxyXG5cclxuQGZ1bmN0aW9uIF9pcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBtZXRhLnR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIlxyXG4gICAgYW5kIChcclxuICAgICAgc3RyaW5nLnNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXHJcbiAgICAgIG9yIHN0cmluZy5zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCAzKSA9PSBcInZhclwiXHJcbiAgICAgIG9yIHN0cmluZy5zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCAzKSA9PSBcImVudlwiXHJcbiAgICAgIG9yIGxpc3QuaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxyXG4gICAgICBvciAobWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KG1hdGguaXMtdW5pdGxlc3MoJHZhbHVlKSkpXHJcbiAgICAgIG9yICR2YWx1ZSA9PSAwXHJcbiAgICApO1xyXG59XHJcblxyXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uLCAkYm94LWVkZ2UtdmFsdWVzLCAkemluZGV4OiBudWxsKSB7XHJcbiAgJGJveC1lZGdlLXZhbHVlczogX3VucGFjay1zaG9ydGhhbmQoJGJveC1lZGdlLXZhbHVlcyk7XHJcbiAgJG9mZnNldHM6IChcclxuICAgICAgICAgIFwidG9wXCI6IGxpc3QubnRoKCRib3gtZWRnZS12YWx1ZXMsIDEpLFxyXG4gICAgICAgICAgXCJyaWdodFwiOiBsaXN0Lm50aCgkYm94LWVkZ2UtdmFsdWVzLCAyKSxcclxuICAgICAgICAgIFwiYm90dG9tXCI6IGxpc3QubnRoKCRib3gtZWRnZS12YWx1ZXMsIDMpLFxyXG4gICAgICAgICAgXCJsZWZ0XCI6IGxpc3QubnRoKCRib3gtZWRnZS12YWx1ZXMsIDQpLFxyXG4gICk7XHJcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIF9pcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgei1pbmRleDogJHppbmRleDtcclxufVxyXG5cclxuLy9cclxuLy8gVXNhZ2VcclxuLy9cclxuLy8gQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggbnVsbCBudWxsIDIwcHgpIG9yXHJcbi8vIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwKVxyXG5cclxuQG1peGluIHBvc2l0aW9uVmFsKCRib3gtZWRnZS12YWx1ZXMsICR6aW5kZXg6IDApIHtcclxuICAkYm94LWVkZ2UtdmFsdWVzOiBfdW5wYWNrLXNob3J0aGFuZCgkYm94LWVkZ2UtdmFsdWVzKTtcclxuICAkb2Zmc2V0czogKFxyXG4gICAgICAgICAgXCJ0b3BcIjogbGlzdC5udGgoJGJveC1lZGdlLXZhbHVlcywgMSksXHJcbiAgICAgICAgICBcInJpZ2h0XCI6IGxpc3QubnRoKCRib3gtZWRnZS12YWx1ZXMsIDIpLFxyXG4gICAgICAgICAgXCJib3R0b21cIjogbGlzdC5udGgoJGJveC1lZGdlLXZhbHVlcywgMyksXHJcbiAgICAgICAgICBcImxlZnRcIjogbGlzdC5udGgoJGJveC1lZGdlLXZhbHVlcywgNCksXHJcbiAgKTtcclxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xyXG4gICAgQGlmIF9pcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgei1pbmRleDogJHppbmRleDtcclxufVxyXG4vL1xyXG4vLyBVc2FnZVxyXG4vL1xyXG4vLyBAaW5jbHVkZSBwb3NpdGlvblZhbCgwIDAsIC0xKVxyXG5cclxuLy9cclxuLy8gTWFyZ2luIEF1dG9cclxuLy9cclxuQG1peGluIHB1c2gtYXV0byB7XHJcbiAgbWFyZ2luOiB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4iLCJAbWl4aW4gYm94KCR3aWR0aDogMTAwJSwgJGhlaWdodDogYXV0bykge1xyXG5cdHdpZHRoOiAkd2lkdGg7XHJcblx0aGVpZ2h0OiAkaGVpZ2h0O1xyXG59XHJcblxyXG5AbWl4aW4gcHNldWRvKCR3aWR0aDogMTAwJSwgJGhlaWdodDogMTAwJSkge1xyXG5cdGNvbnRlbnQ6ICcnO1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHdpZHRoOiAkd2lkdGg7XHJcblx0aGVpZ2h0OiAkaGVpZ2h0O1xyXG59XHJcbiIsIkB1c2UgXCJzYXNzOm1hcFwiO1xyXG5cclxuJGNsci13aGl0ZTogI2ZmZiAhZGVmYXVsdDtcclxuJGNsci1ibGFjazogIzI5MmIyYyAhZGVmYXVsdDtcclxuJGNsci1wdXJwbGU6ICM2ZTRjNzEgIWRlZmF1bHQ7XHJcbiRjbHItcmVkOiAjZWUzYjViICFkZWZhdWx0O1xyXG4kY2xyLWdyYXk6ICM5OTk4OTkgIWRlZmF1bHQ7XHJcbiRjbHItZ3JlZW46ICMyY2I1YTcgIWRlZmF1bHQ7XHJcbiRjbHItZGFyazogIzM5M2M1NyAhZGVmYXVsdDtcclxuJGNsci1ibHVlOiAjMmY3MWRiICFkZWZhdWx0O1xyXG5cclxuLy9cclxuLy8gQ29sb3JzXHJcbi8vXHJcbiRjb2xvcnM6IChcclxuICAgICAgICB3aGl0ZTogJGNsci13aGl0ZSxcclxuICAgICAgICBibGFjazogJGNsci1ibGFjayxcclxuICAgICAgICBwdXJwbGU6ICRjbHItcHVycGxlLFxyXG4gICAgICAgIHJlZDogJGNsci1yZWQsXHJcbiAgICAgICAgZ3JheTogJGNsci1ncmF5LFxyXG4gICAgICAgIGdyZWVuOiAkY2xyLWdyZWVuLFxyXG4gICAgICAgIGRhcms6ICRjbHItZGFyayxcclxuICAgICAgICBibHVlOiAkY2xyLWJsdWVcclxuKTtcclxuXHJcbkBmdW5jdGlvbiBjb2xvcigkY2xyLW5hbWUpIHtcclxuICBAcmV0dXJuIG1hcC5nZXQoJGNvbG9ycywgJGNsci1uYW1lKTtcclxufVxyXG4iLCJAdXNlIFwiLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuXHJcbiNzdmctaWNvbnMge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRoZWlnaHQ6IDA7XHJcblx0d2lkdGg6IDA7XHJcbn1cclxuXHJcbnN2ZyB7XHJcblx0dHJhbnNpdGlvbjogZmlsbCB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBzdHJva2UgdmFyKC0tYmFzZS10cmFuc2l0aW9uKSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS1iYXNlLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4ubWstc3ZnIHtcclxuXHRzdmcge1xyXG5cdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goMTAwJSwgMTAwJSk7XHJcblx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XHJcblx0XHRjb2xvcjogY3VycmVudENvbG9yO1xyXG5cdH1cclxufVxyXG4iLCJAdXNlIFwiLi4vaGVscGVycy9leHRlbmRzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvZGlzcGxheVwiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL3Bvc2l0aW9uXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvdHJhbnNpdGlvbnNcIjtcclxuXHJcbi5sb2FkZXIge1xyXG5cdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGZpeGVkLCAwKTtcclxuXHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMDAlKTtcclxuXHRiYWNrZ3JvdW5kOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG5cdHotaW5kZXg6IDk5OTk7XHJcblx0QGV4dGVuZCAldHJucy0zICFvcHRpb25hbDtcclxufVxyXG5cclxuLmxvYWRlci10ZXh0IHtcclxuXHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgMCk7XHJcblx0QGluY2x1ZGUgZGlzcGxheS5ib3goMTAwJSwgMTAwJSk7XHJcblx0QGV4dGVuZCAlZC1mbGV4LWNlbnRlciAhb3B0aW9uYWw7XHJcblx0bWFyZ2luOiBhdXRvO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRsaW5lLWhlaWdodDogMTByZW07XHJcblxyXG5cdHNwYW4ge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOiAwIC41cmVtO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmaWx0ZXI6IGJsdXIoMCk7XHJcblx0XHRhbmltYXRpb246IGJsdXItdGV4dCAycyBhbHRlcm5hdGUgaW5maW5pdGU7XHJcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9ucy5pbmNyZW1lbnQtZGVsYXkoJHR5cGU6IGFuaW1hdGlvbiwgJG9mZnNldDogLjFzLCAkY291bnQ6IDIyKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbmNsdWRlIHRyYW5zaXRpb25zLmtleWZyYW1lcyhibHVyLXRleHQpIHtcclxuXHQwJSB7XHJcblx0XHRmaWx0ZXI6IGJsdXIoMHB4KTtcclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHRmaWx0ZXI6IGJsdXIoM3B4KTtcclxuXHR9XHJcbn1cclxuIiwiQHVzZSBcIi4uL21peGlucy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uL21peGlucy9kaXNwbGF5XCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL3Bvc2l0aW9uXCI7XHJcblxyXG4kcHJvZ3Jlc3MtZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcclxuXHR0byByaWdodCxcclxuXHQjZGIzOGI1LFxyXG5cdCMwMWIzZTMsXHJcblx0IzI1Y2U3YixcclxuXHQjZmRjNzQxLFxyXG5cdCNmZjZiMDEsXHJcblx0I2ZjNDIzNlxyXG4pO1xyXG5cclxuLmMtcHJvZ3Jlc3NiYXIge1xyXG5cdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGZpeGVkLCAwIG51bGwgMCAwKTtcclxuXHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMnB4KTtcclxuXHR6LWluZGV4OiAyO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc8PXRhYmxldCcpIHtcclxuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcclxuXHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KGNhbGMoMTAwZHZoICsgMjBweCksIDEycHgpO1xyXG5cdFx0dG9wOiAtMjBweDtcclxuXHR9XHJcblxyXG5cdHByb2dyZXNzIHtcclxuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuXHRcdGFwcGVhcmFuY2U6IG5vbmU7XHJcblx0XHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMnB4KTtcclxuXHRcdGJvcmRlcjogbm9uZTtcclxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cclxuXHRcdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHJcblx0XHQmOjotd2Via2l0LXByb2dyZXNzLWJhciB7XHJcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtZ3JhZGllbnQ7XHJcblx0XHRcdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6LW1vei1wcm9ncmVzcy1iYXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtZ3JhZGllbnQ7XHJcblx0XHRcdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB1c2UgXCIuLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5cclxuW2RhdGEtdGhyZWUtY3Vyc29yXSB7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdHotaW5kZXg6IDE7XHJcblx0aW5zZXQ6IDA7XHJcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbn1cclxuIiwiQHVzZSBcIi4uL21peGlucy9kaXNwbGF5XCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL3Bvc2l0aW9uXCI7XHJcblxyXG4udyB7XHJcbiAgJi1zY3JvbGwtZG93biB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIDJyZW0gNTAlKTtcclxuICAgIEBpbmNsdWRlIGRpc3BsYXkuYm94KDRyZW0sIDRyZW0pO1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0ycmVtO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IDAuNXM7XHJcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xyXG5cclxuICAgIEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wLW0nKSB7XHJcbiAgICAgIGJvdHRvbTogMnJlbTtcclxuICAgICAgQGluY2x1ZGUgZGlzcGxheS5ib3goN3JlbSwgNnJlbSk7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMy41cmVtO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAdXNlIFwiLi4vaGVscGVycy9hbmltYXRpb25zXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvZGlzcGxheVwiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL2luY2x1ZGUtbWVkaWFcIjtcclxuQHVzZSBcIi4uL21peGlucy9taXhcIjtcclxuXHJcbi53IHtcclxuICAmLXRvZ2dsZS1zb3VuZCB7XHJcbiAgICAvL0BpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA2NXB4IG51bGwgbnVsbCA0MnB4KTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgY29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgQGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPnRhYmxldCcpIHtcclxuICAgICAgQGluY2x1ZGUgZGlzcGxheS5ib3goNDBweCwgNDBweCk7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtaXguaGFmIHtcclxuICAgICAgY29sb3I6IGNvbG9ycy4kY2xyLWdyZWVuO1xyXG4gICAgICBAaW5jbHVkZSBhbmltYXRpb25zLnRleHQtZ2xvd19fZGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICAuZGFyayAmIHtcclxuICAgICAgY29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWF1ZGlvIHtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcbiIsIkB1c2UgXCIuLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvZGlzcGxheVwiO1xyXG5cclxuKixcclxuKjo6YmVmb3JlLFxyXG4qOjphZnRlciB7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuaHRtbCB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI2YwZjNmNDtcclxuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuXHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG5cdHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xyXG59XHJcblxyXG5odG1sLCBib2R5IHtcclxuXHRvdmVyZmxvdy14OiBoaWRkZW47XHJcblx0QGluY2x1ZGUgZGlzcGxheS5ib3goMTAwJSwgMTAwJSk7XHJcbn1cclxuXHJcbmJvZHkge1xyXG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XHJcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcblx0bGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcblx0Y29sb3I6IGNvbG9ycy5jb2xvcihncmF5KTtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRmb250LXNpemU6IDEuNnJlbTtcclxufVxyXG5cclxubWFpbiB7XHJcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xyXG59XHJcblxyXG4ucmVkIHtcclxuXHRjb2xvcjogY29sb3JzLmNvbG9yKHJlZCk7XHJcbn1cclxuXHJcbi5ncmVlbiB7XHJcblx0Y29sb3I6IGNvbG9ycy5jb2xvcihncmVlbik7XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2hlbHBlcnMvZXh0ZW5kc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9taXhcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuLmhhbWJ1cmdlciB7XHJcbiAgcGFkZGluZzogMTRweDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIGZpbHRlcjtcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcblxyXG4gIEBpbmNsdWRlIG1peC5oYWYge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgb3V0bGluZTogMDtcclxuICB9XHJcblxyXG4gICY6bm90KC5pcy1hY3RpdmUpOmhvdmVyIHtcclxuICAgIC5oYW1idXJnZXItYm94IHtcclxuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XHJcbiAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICAuaGFtYnVyZ2VyLWJveCB7XHJcbiAgICAgIC5oYW1idXJnZXItaW5uZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy5jb2xvcihncmVlbik7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBsaW5lYXI7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KSwgYmFja2dyb3VuZC1jb2xvciAuM3MgbGluZWFyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhhbWJ1cmdlci1ib3gge1xyXG4gICAgQGluY2x1ZGUgZGlzcGxheS5ib3goNDBweCwgMjRweCk7XHJcbiAgICBAZXh0ZW5kICVkLWZsZXgtY2VudGVyICFvcHRpb25hbDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAuaGFtYnVyZ2VyLWlubmVyIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBkaXNwbGF5LmJveCg0MHB4LCA0cHgpO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcclxuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XHJcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xyXG4gICAgICB0b3A6IDJweDtcclxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLCBiYWNrZ3JvdW5kLWNvbG9yIC4xcyBsaW5lYXI7XHJcblxyXG4gICAgICAuZGFyayAmIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIEBpbmNsdWRlIGRpc3BsYXkuYm94KDQwcHgsIDRweCk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcclxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcclxuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICB0b3A6IDEwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgLjNzIGxpbmVhcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgIGJvdHRvbTogLTEwcHg7XHJcbiAgICAgICAgdG9wOiAyMHB4O1xyXG4gICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjNzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSksIGJhY2tncm91bmQtY29sb3IgLjNzIGxpbmVhcjtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjE4cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksIHRyYW5zZm9ybSAwLjE1cyAwLjMycyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSwgYmFja2dyb3VuZC1jb2xvciAuM3MgbGluZWFyO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IHRvcCAwLjNzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTVzIDAuMzJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBsaW5lYXI7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCkgcm90YXRlKC00NWRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkB1c2UgXCIuLi8uLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvZGlzcGxheVwiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2luY2x1ZGUtbWVkaWFcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuYXNpZGUge1xyXG5cdC5zaWRlYmFyIHtcclxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGZpeGVkLCAwIDAgMCBudWxsKTtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDI0MHB4LCAxMDAlKTtcclxuXHRcdHotaW5kZXg6IDEwMDA7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI0MHB4LCAwLCAwKTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zMSwgMC4xOSwgMC4xNiwgMSk7XHJcblx0XHRiYWNrZ3JvdW5kOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxuXHRcdGJvcmRlcjogMCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XHJcblxyXG5cdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPmRlc2t0b3AnKSB7XHJcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDMwMHB4LCAxMDAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDBweCwgMCwgMCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pcy1udWRnZSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjcwcHgsIDAsIDApO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzEsIDAuMTksIDAuMTYsIDEpO1xyXG5cdFx0XHRib3JkZXItY29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzEsIDAuMTksIDAuMTYsIDEpO1xyXG5cdFx0XHRib3JkZXItY29sb3I6IGNvbG9ycy5jb2xvcihncmVlbik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud3JhcHBlciB7XHJcblx0XHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMDAlKTtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdH1cclxuXHJcblx0LmlubmVyIHtcclxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCBudWxsIDAgbnVsbCBudWxsKTtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwMCUsIDEwMCUpO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSB0cmFuc2xhdGUzZCgtMTVyZW0sIDAsIDApO1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogMCAwIDA7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzEsIDAuMTksIDAuMTYsIDEpO1xyXG5cdFx0ei1pbmRleDogOTtcclxuXHRcdGJhY2tncm91bmQ6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcblx0fVxyXG5cclxuXHQjbWVudSB7XHJcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCAwIG51bGwgbnVsbCk7XHJcblx0XHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMDAlKTtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHR6LWluZGV4OiAxMDtcclxuXHR9XHJcblxyXG5cdC5zaWRlYmFyLmlzLWFjdGl2ZSAuaW5uZXIge1xyXG5cdFx0dHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG5cdH1cclxuXHJcblx0Lm9wZW4tbWVudSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCA0MCUgbnVsbCBudWxsKTtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwMCUsIDEwMCUpO1xyXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0cmlnaHQ6IC0xMDAlO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogOTtcclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJzw9dGFibGV0Jykge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmhlYWRpbmcge1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDklIDU0JSBudWxsIG51bGwpO1xyXG5cdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goMTByZW0sIDEuNXJlbSk7XHJcblx0XHRmb250LXNpemU6IDEuMnJlbTtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAuNHJlbTtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgtOTBkZWcpO1xyXG5cdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xyXG5cdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPmRlc2t0b3AnKSB7XHJcblx0XHRcdHRvcDogMjklO1xyXG5cdFx0XHRyaWdodDogODAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnNpZGViYXIge1xyXG5cdFx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0XHQuaGVhZGluZywgLmxpbmUge1xyXG5cdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDUwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pcy1udWRnZSB7XHJcblx0XHRcdC5oZWFkaW5nIHtcclxuXHRcdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmxpbmUge1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy5jb2xvcihncmVlbik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5saW5lIHtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDNyZW0sIDFweCk7XHJcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgMTAlIDU2JSBudWxsIG51bGwpO1xyXG5cdFx0b3BhY2l0eTogMTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG5cdFx0XHRAaW5jbHVkZSBkaXNwbGF5LmJveCg1cmVtLCAxcHgpO1xyXG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgMzAlIDc0JSBudWxsIG51bGwpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5pcy1tZW51LWFjdGl2ZSAmIHtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcclxuXHRcdH1cclxuXHJcblx0XHQuZGFyayAmIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKGJsYWNrKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC50eHQtLWNsci13aGl0ZSB7XHJcblx0XHQuZGFyayAmIHtcclxuXHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB1c2UgXCIuLi8uLi9oZWxwZXJzL2V4dGVuZHNcIjtcclxuQHVzZSBcIi4uLy4uL2hlbHBlcnMvYW5pbWF0aW9uc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvcG9zaXRpb25cIjtcclxuXHJcbiNtZW51IHtcclxuICBAZXh0ZW5kICVkLWZsZXgtY2VudGVyICFvcHRpb25hbDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuaGVhZGVyIHtcclxuICAubWVudSB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihmaXhlZCwgMjBweCBudWxsIG51bGwgMjVweCk7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuXHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICB0b3A6IDQwcHg7XHJcbiAgICAgIGxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubmF2IHtcclxuICAkdGhpczogJjtcclxuXHJcbiAgJi1tZW51IHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGZpeGVkLCAzMHB4IDIwcHggbnVsbCBudWxsKTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICByaWdodDogMjBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICB0b3A6IDQ1cHg7XHJcbiAgICAgIHJpZ2h0OiAxMDBweDtcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbnMudGV4dC1nbG93X19kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19saW5rIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogNDIuN3JlbTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogNDIuN3JlbSAxNnJlbTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogLjFyZW0gc29saWQgY29sb3JzLmNvbG9yKGJsYWNrKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgbGluZWFyO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4wOCwgMC41NywgMC43MywgMS4xOCk7XHJcblxyXG4gICAgICAjeyR0aGlzfV9fb3ZlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMnJlbSwgMCwgMCk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcclxuICAgICAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjByZW0sIDAsIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgI3skdGhpc31fX3RleHQtMSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCguNXJlbSwgMCwgMCkgc2tld1goNGRlZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICN7JHRoaXN9X190ZXh0LTIge1xyXG4gICAgICAgIGNvbG9yOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2tld1goNGRlZyk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC42cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICN7JHRoaXN9X19saW5lIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQyLjdyZW0sIDAsIDApO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSwgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICAjeyR0aGlzfV9fdGV4dC0yIHtcclxuICAgICAgICBjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNrZXdYKDRkZWcpO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuNnMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAjeyR0aGlzfV9fb3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuICAgICAgICBjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcmVtLCAwLCAwKTtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjZzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgI3skdGhpc31fX292ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICN7JHRoaXN9X190ZXh0LTIge1xyXG4gICAgICAgICAgY29sb3I6IGNvbG9ycy5jb2xvcihibGFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19pdGVtIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XHJcbiAgICBAaW5jbHVkZSBkaXNwbGF5LmJveCgyMnJlbSwgNHJlbSk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBza2V3WCgtNGRlZyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjZzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC4zMiwgMSk7XHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgQGluY2x1ZGUgZGlzcGxheS5ib3goMjByZW0sIDRyZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJl9fdGV4dC0xLCAmX190ZXh0LTIge1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgfVxyXG5cclxuICAmX190ZXh0LTEge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDEuMnJlbSBudWxsIG51bGwgLjFyZW0pO1xyXG4gICAgY29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcbiAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICBsZXR0ZXItc3BhY2luZzogLjJyZW07XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2tld1goNGRlZyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcclxuICB9XHJcblxyXG4gICZfX292ZXIge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIC05OSUpO1xyXG4gICAgQGluY2x1ZGUgZGlzcGxheS5ib3goMTAwJSwgMTAwJSk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDRyZW0sIDAsIDApO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC42cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0MHJlbSwgMCwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX190ZXh0LTIge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDEuMnJlbSBudWxsIG51bGwgLjFyZW0pO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IC4ycmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMnJlbSwgMCwgMCkgc2tld1goNGRlZyk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcclxuICAgIEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHJlbSwgMCwgMCkgc2tld1goNGRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmX19saW5lIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIC0xMDAlKTtcclxuICAgIEBpbmNsdWRlIGRpc3BsYXkuYm94KDExLjZyZW0sIC4xcmVtKTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDg1LjRyZW0sIDAsIDApO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlO1xyXG4gIH1cclxufVxyXG4iLCJAdXNlIFwiLi4vaGVscGVycy9leHRlbmRzXCI7XHJcbkB1c2UgJ25hdi9idXJnZXInO1xyXG5AdXNlICduYXYvYXNpZGUnO1xyXG5AdXNlICduYXYvbmF2JztcclxuQHVzZSBcIi4uL21peGlucy9kaXNwbGF5XCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5cclxuLmxvZ28ge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLDEwMCUpO1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbiAgQGV4dGVuZCAlZC1mbGV4LWNlbnRlciAhb3B0aW9uYWw7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICNsb2dvIHtcclxuICAgIG1heC13aWR0aDogMjZyZW07XHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuICAgICAgbWF4LXdpZHRoOiA1MHJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQHVzZSBcIi4uL21peGlucy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uL21peGlucy9kaXNwbGF5XCI7XHJcbkB1c2UgXCIuLi9taXhpbnMvcG9zaXRpb25cIjtcclxuQHVzZSBcIi4uL21peGlucy90cmFuc2l0aW9uc1wiO1xyXG5cclxuQG1peGluIGJ0bi12MiB7XHJcblx0QGV4dGVuZCAuYnRuXHJcbn1cclxuXHJcbi5idG4ge1xyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHRib3JkZXI6IC4xcmVtIHNvbGlkIGNvbG9ycy5jb2xvcihncmVlbik7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG5cdGNvbG9yOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdG91dGxpbmU6IDA7XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkucHNldWRvKDEwMCUsIDEwMCUpO1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIC0xMDAlKTtcclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKGNvbG9ycy5jb2xvcihncmVlbiksIDAuNCksIHRyYW5zcGFyZW50KTtcclxuXHRcdHRyYW5zaXRpb246IGFsbCA2NTBtcztcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Ym94LXNoYWRvdzogLjFyZW0gLjFyZW0gMi41cmVtIDFyZW0gcmdiYShjb2xvcnMuY29sb3IoZ3JlZW4pLCAwLjQpO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGxlZnQ6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19jbGllbnQtbGlzdCB7XHJcblx0XHRwYWRkaW5nOiAuN3JlbSAzcmVtO1xyXG5cdFx0Zm9udC1zaXplOiAyLjRyZW07XHJcblx0XHRAaW5jbHVkZSBidG4tdjI7XHJcblx0fVxyXG5cclxuXHQmX19hbmltYXRlZCB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OiAwO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHBhZGRpbmc6IDIuMnJlbSAzcmVtO1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0Zm9udC1zaXplOiAxLjhyZW07XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCAtNTAlIG51bGwgbnVsbCAtNTAlKTtcclxuXHRcdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goMjAwJSk7XHJcblx0XHRcdHotaW5kZXg6IC0yO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDUwJSA1MCUsIDUwJSA1MCU7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJTtcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCMzNWUwY2YsICMzNWUwY2YpLCBsaW5lYXItZ3JhZGllbnQoIzIwOTk4YywgIzIwOTk4YyksIGxpbmVhci1ncmFkaWVudCgjMzVlMGNmLCAjMzVlMGNmKSwgbGluZWFyLWdyYWRpZW50KCMyMDk5OGMsICMyMDk5OGMpO1xyXG5cdFx0XHRhbmltYXRpb246IHJvdGF0ZSA0cyBsaW5lYXIgaW5maW5pdGU7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgLjZyZW0gbnVsbCBudWxsIC42cmVtKTtcclxuXHRcdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goY2FsYygxMDAlIC0gMS4ycmVtKSk7XHJcblx0XHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdFx0XHRAZXh0ZW5kICV0cm5zLTMgIW9wdGlvbmFsO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcclxuXHRcdFx0Y29sb3I6ICNmZmY7XHJcblxyXG5cdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRAa2V5ZnJhbWVzIHJvdGF0ZSB7XHJcblx0XHRcdDEwMCUge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdXNlIFwiLi4vLi4vaGVscGVycy9leHRlbmRzXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvY29sb3JzXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvZGlzcGxheVwiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2luY2x1ZGUtbWVkaWFcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuLnNlY3Rpb24ge1xyXG5cdEBleHRlbmQgJWQtZmxleC1jZW50ZXIgIW9wdGlvbmFsO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0bWluLWhlaWdodDogMTAwZHZoO1xyXG5cdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwMCUsIDEwMGR2aCk7XHJcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIDBtcywgZmlsdGVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0Jjpub3QoLnNlY3Rpb25fX2ludHJvKSB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdH1cclxuXHJcblx0LmlzLW1lbnUtYWN0aXZlICYge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgdHJhbnNsYXRlM2QoLTEycmVtLCAwcHgsIDBweCk7XHJcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSkgMG1zLCBmaWx0ZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRcdGFuaW1hdGlvbi1kZWxheTogMXM7XHJcblx0XHRmaWx0ZXI6IGJsdXIoLjVyZW0pIGdyYXlzY2FsZSg1MCUpO1xyXG5cclxuXHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwMCUsIDEwMCUpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcnMuY29sb3IoYmxhY2spO1xyXG5cdFx0XHRvcGFjaXR5OiAwLjY7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0XHR6LWluZGV4OiA4O1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMzksIDAuNTc1LCAwLjU2NSwgMSkgMG1zO1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHZpZGVvIHtcclxuXHRcdEBleHRlbmQgJWgtMTAwLXctMTAwICFvcHRpb25hbDtcclxuXHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCAwKTtcclxuXHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0ei1pbmRleDogMDtcclxuXHR9XHJcblxyXG5cdC5iZ2Qge1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDApO1xyXG5cdFx0ei1pbmRleDogMTtcclxuXHJcblx0XHRwaWN0dXJlIHtcclxuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHRcdEBleHRlbmQgJWgtMTAwLXctMTAwICFvcHRpb25hbDtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0ei1pbmRleDogMDtcclxuXHRcdH1cclxuXHJcblx0XHQmX19pbWcge1xyXG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcclxuXHRcdFx0dHJhbnNpdGlvbjogZmlsdGVyIC4zcyBlYXNlLWluLW91dDtcclxuXHRcdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogMS40cztcclxuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHRcdEBleHRlbmQgJWgtMTAwLXctMTAwICFvcHRpb25hbDtcclxuXHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPD10YWJsZXQnKSB7XHJcblx0XHRcdFx0b2JqZWN0LXBvc2l0aW9uOiA3MCUgNTAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRoMiwgLnItdGV4dF9fcHJldGl0bGUge1xyXG5cdFx0XHR0ZXh0LXNoYWRvdzogMXB4IDFweCA1cHggY29sb3JzLmNvbG9yKGdyZWVuKSwgMXB4IDFweCAxNXB4IGNvbG9ycy5jb2xvcihncmVlbik7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuXHRcdH1cclxuXHJcblx0XHQuYmdkIHtcclxuXHRcdFx0Jl9faW1nIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xyXG5cdFx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBmaWx0ZXIgLjNzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHRcdHRyYW5zaXRpb24tZGVsYXk6IDFzO1xyXG5cdFx0XHRcdHRyYW5zaXRpb24tZHVyYXRpb246IDEuNHM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ib3gge1xyXG5cdFx0Ym90dG9tOiBhdXRvO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDAlO1xyXG5cdFx0ei1pbmRleDogMzM7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHBhZGRpbmc6IDNyZW0gMnJlbSAzcmVtIDVyZW07XHJcblx0XHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgMCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPnRhYmxldCcpIHtcclxuXHRcdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIGF1dG8gYXV0byA0cmVtIDApO1xyXG5cdFx0XHRwYWRkaW5nOiAwIDAgMCA1cmVtO1xyXG5cdFx0XHR3aWR0aDogNzByZW07XHJcblx0XHRcdG1pbi1oZWlnaHQ6IDE0cmVtO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdH1cclxuXHJcblx0XHQmX19pbm5lciB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHR9XHJcblxyXG5cdFx0cCB7XHJcblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRoMiwgLnItdGV4dF9fcHJldGl0bGUge1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuci10ZXh0IHtcclxuXHRcdCZfX2Rlc2Mge1xyXG5cdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+cGhvbmUtbCcpIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuNnJlbTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPnRhYmxldCcpIHtcclxuXHRcdFx0XHR3aWR0aDogOTAlO1xyXG5cdFx0XHRcdGxlZnQ6IDIycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX190aXRsZSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5yLXRleHQtbm8tcHJldGl0bGUge1xyXG5cdFx0XHQuci10ZXh0IHtcclxuXHRcdFx0XHQmX190aXRsZSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCZfX2Rlc2Mge1xyXG5cdFx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2hlbHBlcnMvZXh0ZW5kc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvcG9zaXRpb25cIjtcclxuXHJcbi5zZWN0aW9uX19pbnRybyB7XHJcblx0QGV4dGVuZCAlZC1mbGV4LWNlbnRlciAhb3B0aW9uYWw7XHJcblx0Ly8mLW92ZXJsYXkge1xyXG5cdC8vICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMCk7XHJcblx0Ly8gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vaW1nL3BhdHRlcm5zL3Jhc3Rlcl9kb3QucG5nJyk7XHJcblx0Ly8gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XHJcblx0Ly8gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwKTtcclxuXHQvLyAgQGluY2x1ZGUgYm94KDEwMCUsIDEwMCUpO1xyXG5cdC8vICB6LWluZGV4OiAwO1xyXG5cdC8vICBAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xyXG5cdC8vICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cdC8vICB9XHJcblx0Ly99XHJcblxyXG5cdC50aHJlZSB7XHJcblx0XHQmX19tb3VudGFpbiB7XHJcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwMCwgMTAwJSk7XHJcblx0XHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCAwKVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJveCB7XHJcblx0XHRAZXh0ZW5kICVkLWZsZXgtY2VudGVyICFvcHRpb25hbDtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdHotaW5kZXg6IDM7XHJcblxyXG5cclxuXHRcdCZfX3RleHQge1xyXG5cdFx0XHRwYWRkaW5nOiAwIDEuNXJlbTtcclxuXHRcdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCA3cmVtIDUwJSk7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPmRlc2t0b3AnKSB7XHJcblx0XHRcdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCA0cmVtIDRyZW0pO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji10aXRsZSB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAzcmVtO1xyXG5cclxuXHRcdFx0XHRoMSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDMuNHJlbTtcclxuXHRcdFx0XHRcdHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDNyZW07XHJcblx0XHRcdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPmRlc2t0b3AnKSB7XHJcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRwIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS42cmVtO1xyXG5cdFx0XHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcdG1heC13aWR0aDogNjAwcHg7XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNsdXRjaC1yZXdhcmQge1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vaW1nL2NsdXRjaC1sb2dvLXNlcnZpY2UucG5nXCIpO1xyXG5cdFx0QGV4dGVuZCAlY29udGFpbi1iYWNrZ3JvdW5kICFvcHRpb25hbDtcclxuXHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDEwcmVtKTtcclxuXHRcdEBleHRlbmQgJWQtZmxleC1jZW50ZXIgIW9wdGlvbmFsO1xyXG5cdFx0ei1pbmRleDogOTtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRAZXh0ZW5kICV0cm5zLTMgIW9wdGlvbmFsO1xyXG5cdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPmRlc2t0b3AnKSB7XHJcblx0XHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCBudWxsIDEwcmVtIDRyZW0gbnVsbCk7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xKSAhaW1wb3J0YW50O1xyXG5cdFx0XHRAZXh0ZW5kICV0cm5zLTMgIW9wdGlvbmFsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdXNlIFwiLi4vLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvbWl4XCI7XHJcblxyXG5cclxuLnNlY3Rpb25fX3doYXQtd2UtZG8ge1xyXG5cdEBpbmNsdWRlIG1peC5wYXR0ZXJuO1xyXG5cclxuXHQuYmdkIHtcclxuXHJcblx0XHQmX19pbWcge1xyXG5cdFx0XHRAZXh0ZW5kICVoLTEwMC13LTEwMCAhb3B0aW9uYWw7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHRcdHotaW5kZXg6IDA7XHJcblx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBmaWx0ZXIgLjNzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjRzO1xyXG5cdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc8PXRhYmxldCcpIHtcclxuXHRcdFx0XHRvYmplY3QtcG9zaXRpb246IDcwJSA1MCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaXRlbSB7XHJcblxyXG5cclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJzw9dGFibGV0Jykge1xyXG5cdFx0XHQmLml0ZW0tMSB7XHJcblx0XHRcdFx0aW1nIHtcclxuXHRcdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogcmlnaHQgMjAlIHRvcCA1MCU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLml0ZW0tNCB7XHJcblx0XHRcdFx0aW1nIHtcclxuXHRcdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogbGVmdCA1MCU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLml0ZW0tNSB7XHJcblx0XHRcdFx0aW1nIHtcclxuXHRcdFx0XHRcdG9iamVjdC1wb3NpdGlvbjogcmlnaHQgNjAlIHRvcCA1MCU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLml0ZW0tMSB7XHJcblx0XHQuYmdkIHtcclxuXHRcdFx0bWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLml0ZW0tMiB7XHJcblx0XHQuYmdkIHtcclxuXHRcdFx0bWl4LWJsZW5kLW1vZGU6IGhhcmQtbGlnaHQ7XHJcblx0XHR9XHJcblxyXG5cdFx0LmJnZCB7XHJcblx0XHRcdCY6OmJlZm9yZSwgJjphZnRlciB7XHJcblx0XHRcdFx0QGluY2x1ZGUgZGlzcGxheS5wc2V1ZG8oMTAwJSwgMTAwJSk7XHJcblx0XHRcdFx0Y2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcclxuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0XHRcdFx0ei1pbmRleDogMTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OiAtNnB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vaW1nL3doYXQtd2UtZG8vd2hhdC13ZS1kby13ZWIuanBnJyk7XHJcblx0XHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoMTAwJSkgc2VwaWEoMTAwJSkgc2F0dXJhdGUoMjUwJSkgaHVlLXJvdGF0ZSgxMjBkZWcpIGJyaWdodG5lc3MoMTIxJSkgY29udHJhc3QoMTIxJSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRsZWZ0OiA2cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi8uLi9pbWcvd2hhdC13ZS1kby93aGF0LXdlLWRvLXdlYi5qcGcnKTtcclxuXHRcdFx0XHRmaWx0ZXI6IHNlcGlhKDEwMCUpIGh1ZS1yb3RhdGUoMTkwZGVnKSBzYXR1cmF0ZSg1MDAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdCYuaXRlbS0zIHtcclxuXHRcdC5iZ2Qge1xyXG5cdFx0XHRtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaXRlbS00IHtcclxuXHRcdC5iZ2Qge1xyXG5cdFx0XHRtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaXRlbS01IHtcclxuXHRcdGJhY2tncm91bmQ6ICMwOTBlMTA7XHJcblxyXG5cdFx0LmJnZCB7XHJcblx0XHRcdG1peC1ibGVuZC1tb2RlOiBsaWdodGVuO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0Ji5pdGVtLTEge1xyXG5cdFx0XHQuYmdkX19pbWcge1xyXG5cdFx0XHRcdGFuaW1hdGlvbjogbW92ZS0xIDVzIGxpbmVhciBmb3J3YXJkcztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuaXRlbS0yIHtcclxuXHRcdFx0LmJnZCB7XHJcblx0XHRcdFx0Jjo6YmVmb3JlLFxyXG5cdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdHotaW5kZXg6IDI7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRpbnNldDogMDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0XHRhbmltYXRpb246IGdsaXRjaC1lZmZlY3QgMnMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZS1yZXZlcnNlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBnbGl0Y2gtZWZmZWN0IDNzIGluZmluaXRlIGxpbmVhciBhbHRlcm5hdGUtcmV2ZXJzZTtcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pdGVtLTMge1xyXG5cdFx0XHQuYmdkIHtcclxuXHRcdFx0XHQmX19pbWcge1xyXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBtb3ZlLTMgNXMgbGluZWFyIGZvcndhcmRzO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuaXRlbS00IHtcclxuXHRcdFx0cGVyc3BlY3RpdmU6IDEwcHg7XHJcblxyXG5cdFx0XHQuYmdkIHtcclxuXHRcdFx0XHQmX19pbWcge1xyXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBtb3ZlLTQgMTUwcyBsaW5lYXIgYWx0ZXJuYXRlIGluZmluaXRlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuaXRlbS01IHtcclxuXHRcdFx0LmJnZCB7XHJcblx0XHRcdFx0Jl9faW1nIHtcclxuXHRcdFx0XHRcdGFuaW1hdGlvbjogbW92ZS01IDVzIGxpbmVhciBmb3J3YXJkcztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL2hlbHBlcnMvZXh0ZW5kc1wiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL2Rpc3BsYXlcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcblxyXG4uc2VjdGlvbl9fdGVjaG5vbG9naWVzIHtcclxuXHRiYWNrZ3JvdW5kOiAjMDAwO1xyXG5cdGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7XHJcblx0fVxyXG5cclxuXHQuci10ZXh0IHtcclxuXHRcdCZfX2Rlc2Mge1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblxyXG5cdFx0XHRoMiB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxLjZyZW07XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dmlkZW8ge1xyXG5cdFx0b2JqZWN0LWZpdDogY29udGFpbjtcclxuXHR9XHJcblxyXG5cdCN0ZWNoX2NhbnZhcyB7XHJcblx0XHRAaW5jbHVkZSBkaXNwbGF5LmJveCgxMDAlLCAxMDAlKTtcclxuXHJcblx0XHQ+IGNhbnZhcyxcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5hY3RpdmUgPiBjYW52YXMge1xyXG5cdFx0XHRwb2ludGVyLWV2ZW50czogYWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8jdGVjaC1uYXYge1xyXG5cdC8vICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIDFyZW0gNTAlKTtcclxuXHQvLyAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcblx0Ly8gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHQvLyAgei1pbmRleDogMTA7XHJcblx0Ly8gIG9wYWNpdHk6IDA7XHJcblx0Ly8gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG5cdC8vICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XHJcblx0Ly8gICAgYm90dG9tOiAwO1xyXG5cdC8vICAgIGRpc3BsYXk6IG5vbmU7XHJcblx0Ly8gIH1cclxuXHQvL1xyXG5cdC8vICBidXR0b24ge1xyXG5cdC8vICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XHJcblx0Ly8gICAgZm9udC1zaXplOiAxLjRyZW07XHJcblx0Ly8gICAgaGVpZ2h0OiAzcmVtO1xyXG5cdC8vICAgIEBleHRlbmQgJWQtZmxleC1jZW50ZXIgIW9wdGlvbmFsO1xyXG5cdC8vICAgIEBpbmNsdWRlIGJ0bi12MjtcclxuXHQvL1xyXG5cdC8vICAgICYuYWN0aXZlIHtcclxuXHQvLyAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDQsIDE4MSwgMTY3LCAwLjUpO1xyXG5cdC8vICAgICAgY29sb3I6IGNvbG9yKHdoaXRlKTtcclxuXHQvLyAgICB9XHJcblx0Ly8gIH1cclxuXHQvL31cclxuXHJcblx0LmVsZW1lbnQge1xyXG5cdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goMThyZW0pO1xyXG5cdFx0Ym94LXNoYWRvdzogMCAwIDEuMnJlbSByZ2JhKDQ3LCAxMTMsIDIxOSwgMC41KTtcclxuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTcsIDYwLCA4NywgMC4yNyk7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHRAZXh0ZW5kICVkLWZsZXgtY2VudGVyICFvcHRpb25hbDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz50YWJsZXQnKSB7XHJcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDI0cmVtLCAyMHJlbSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAxLjJyZW0gcmdiYSg0NywgMTEzLCAyMTksIDAuNzUpO1xyXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQ3LCAxMTMsIDIxOSwgMC43NSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Lm51bWJlciB7XHJcblx0XHRcdC8vQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDJyZW0gMnJlbSBudWxsIG51bGwpO1xyXG5cdFx0XHRmb250LXNpemU6IDEuMnJlbTtcclxuXHRcdFx0Y29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0LnN5bWJvbCB7XHJcblx0XHRcdC8vQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDRyZW0gMCBudWxsIDApO1xyXG5cdFx0XHRmb250LXNpemU6IDRyZW07XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcclxuXHRcdFx0dGV4dC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XHJcblx0XHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogNS41cmVtO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LmRldGFpbHMge1xyXG5cdFx0XHQvL0BpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIDAgMS41cmVtIDApO1xyXG5cdFx0XHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcclxuXHRcdFx0dGV4dC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XHJcblx0XHRcdGZvbnQtc2l6ZTogMS44cmVtO1xyXG5cdFx0XHRwYWRkaW5nOiAzcHggNHB4O1xyXG5cdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDJyZW07XHJcblx0XHRcdFx0cGFkZGluZzogMCA0cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQHVzZSBcIi4uLy4uL21peGlucy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9pbmNsdWRlLW1lZGlhXCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvbWl4XCI7XHJcblxyXG4uc2VjdGlvbl9fY2xpZW50cyB7XHJcblx0QGluY2x1ZGUgbWl4LnBhdHRlcm47XHJcblx0YmFja2dyb3VuZDogIzBhMGUxMTtcclxuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcyBlYXNlLWluLW91dDtcclxuXHR0cmFuc2l0aW9uLWRlbGF5OiAxcztcclxuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAxLjRzO1xyXG5cclxuXHQuYm94IHtcclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wJykge1xyXG5cdFx0XHR3aWR0aDogNTVyZW07XHJcblx0XHR9XHJcblxyXG5cdFx0aDMge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxZW07XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cdFx0XHRmb250LXNpemU6IDEuOHJlbTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE0MCU7XHJcblx0XHR9XHJcblxyXG5cdFx0aDQge1xyXG5cdFx0XHRmb250LXNpemU6IDJyZW07XHJcblx0XHRcdGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAycmVtO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJnZCB7XHJcblx0XHRtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjtcclxuXHJcblx0fVxyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblxyXG5cdFx0LmJnZCB7XHJcblx0XHRcdCZfX2ltZyB7XHJcblx0XHRcdFx0YW5pbWF0aW9uOiBtb3ZlLTUgNXMgbGluZWFyIGZvcndhcmRzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB1c2UgXCIuLi8uLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL21peFwiO1xyXG5cclxuQHVzZSBcInNhc3M6bWF0aFwiO1xyXG5cclxuLnNlY3Rpb25fX2Jsb2cge1xyXG5cdEBpbmNsdWRlIG1peC5wYXR0ZXJuO1xyXG5cclxuXHQuYnRuIHtcclxuXHRcdG1hcmdpbi10b3A6IDEwcHg7XHJcblx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogMzBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5iZ2Qge1xyXG5cdFx0bWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47XHJcblxyXG5cdFx0QGtleWZyYW1lcyBtb3ZlLTEge1xyXG5cdFx0XHRmcm9tIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApIHNjYWxlKDEuMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0dG8ge1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuYmdkX19pbWcge1xyXG5cdFx0XHRhbmltYXRpb246IG1vdmUtMSA1cyBsaW5lYXIgZm9yd2FyZHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0XHQuYmdkX19pbWcge1xyXG5cdFx0XHRhbmltYXRpb246IG1vdmUtMSA1cyBsaW5lYXIgZm9yd2FyZHM7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB1c2UgXCIuLi8uLi9oZWxwZXJzL2FuaW1hdGlvbnNcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uLy4uL21peGlucy9kaXNwbGF5XCI7XHJcbkB1c2UgXCIuLi8uLi9taXhpbnMvaW5jbHVkZS1tZWRpYVwiO1xyXG5AdXNlIFwiLi4vLi4vbWl4aW5zL3Bvc2l0aW9uXCI7XHJcblxyXG4uc2VjdGlvbl9fY29udGFjdCB7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRwYWRkaW5nOiAwIDJyZW07XHJcblx0YmFja2dyb3VuZDogIzAwMDtcclxuXHJcblx0dmlkZW8ge1xyXG5cdFx0Y2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgNzAlIDAsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XHJcblx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG5cdFx0XHRjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCA1MCUgMCwgMTAwJSAyMjAlLCAwJSAxMDAlKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wLWwnKSB7XHJcblx0XHRcdGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDUwJSAwLCAxMDAlIDEzMCUsIDAlIDEwMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji1vdmVybGF5IHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vaW1nL3BhdHRlcm5zL2xpbmVzLWhvcml6b250YWwucG5nJyk7XHJcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xyXG5cdFx0QGluY2x1ZGUgcG9zaXRpb24ucG9zaXRpb24oYWJzb2x1dGUsIDApO1xyXG5cdFx0QGluY2x1ZGUgZGlzcGxheS5ib3goMTAwJSwgMTAwJSk7XHJcblx0XHR6LWluZGV4OiAwO1xyXG5cdH1cclxuXHJcblx0LmJveCB7XHJcblx0XHRwYWRkaW5nOiAyMHB4IDIwcHggNjBweDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz50YWJsZXQnKSB7XHJcblx0XHRcdEBpbmNsdWRlIHBvc2l0aW9uLnBvc2l0aW9uKGFic29sdXRlLCAwIDAgbnVsbCBudWxsKTtcclxuXHRcdFx0dG9wOiAyMHB4O1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdFx0cGFkZGluZzogNHJlbTtcclxuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0cGFkZGluZzogNXJlbSAxMTVweDtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz5kZXNrdG9wLWwnKSB7XHJcblx0XHRcdHBhZGRpbmc6IDVyZW0gMTEuNXJlbTtcclxuXHRcdH1cclxuXHJcblx0XHRoMiB7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdGZvbnQtc2l6ZTogNnJlbTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMy4yNXJlbTtcclxuXHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcblx0XHRcdEBpbmNsdWRlIGFuaW1hdGlvbnMuZy10ZXh0LWdsb3dfX2RlZmF1bHQ7XHJcblx0XHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz50YWJsZXQnKSB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDYuMjVyZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRwIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjZyZW07XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxNTAlO1xyXG5cdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRcdFx0bWF4LXdpZHRoOiAzNjBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuYnRuIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogMnJlbTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zb2NpYWwge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLXRvcDogMTBweDtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0Y29sb3I6IGNvbG9ycy4kY2xyLWdyZWVuO1xyXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBjb2xvcnMuJGNsci1ncmVlbjtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAwcHg7XHJcblx0XHRcdEBpbmNsdWRlIGRpc3BsYXkuYm94KDQwcHgsIDQwcHgpO1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0bWFyZ2luOiAwIDVweDtcclxuXHRcdFx0dHJhbnNpdGlvbjogLjNzIGVhc2U7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+ZGVza3RvcCcpIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3ZnIHtcclxuXHRcdFx0XHRjb2xvcjogY3VycmVudENvbG9yO1xyXG5cdFx0XHRcdG1heC13aWR0aDogMjBweDtcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xyXG5cdFx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdFx0Y29sb3I6IGNvbG9ycy4kY2xyLWJsdWU7XHJcblx0XHRcdFx0XHRib3JkZXItY29sb3I6IGNvbG9ycy4kY2xyLWJsdWU7XHJcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiAuM3MgZWFzZTtcclxuXHJcblx0XHRcdFx0XHRzdmcge1xyXG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdXNlIFwiLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL2luY2x1ZGUtbWVkaWFcIjtcclxuQHVzZSBcIi4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuZm9vdGVyIHtcclxuICBAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIDFyZW0gNHJlbSk7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuXHJcbiAgZGl2IHtcclxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xyXG4gICAgY29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcbiAgICBAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQHVzZSBcIi4uL2hlbHBlcnMvZXh0ZW5kc1wiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL2NvbG9yc1wiO1xyXG5AdXNlIFwiLi4vbWl4aW5zL2luY2x1ZGUtbWVkaWFcIjtcclxuQHVzZSBcIi4uL21peGlucy9taXhcIjtcclxuQHVzZSBcIi4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuLm1vZGFsLW9wZW4ge1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdC5tb2RhbCB7XHJcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XHJcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xyXG5cdH1cclxufVxyXG5cclxuLm1vZGFsIHtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0aW5zZXQ6IDA7XHJcblx0ei1pbmRleDogMTA1MDtcclxuXHRkaXNwbGF5OiBub25lO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdG91dGxpbmU6IDA7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcclxuXHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0bWF4LWhlaWdodDogMTAwJTtcclxuXHJcblx0JltvcGVuXSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdCY6OmJhY2tkcm9wIHtcclxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cdH1cclxuXHJcblx0Ji1kaWFsb2cge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MHB4KTtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdFx0bWFyZ2luOiAzMHB4IGF1dG87XHJcblx0fVxyXG5cclxuXHQmW29wZW5dIC5tb2RhbC1kaWFsb2cge1xyXG5cdFx0dHJhbnNmb3JtOiBub25lO1xyXG5cdH1cclxuXHJcblx0Ji1jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRwb2ludGVyLWV2ZW50czogYXV0bztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMC4zcmVtO1xyXG5cdFx0b3V0bGluZTogMDtcclxuXHR9XHJcblxyXG5cdCYtY2xvc2Uge1xyXG5cdFx0d2lkdGg6IDEwcmVtO1xyXG5cdFx0bWFyZ2luOiAwIGF1dG8gM3JlbTtcclxuXHJcblx0XHRidXR0b24ge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdFx0XHRoZWlnaHQ6IDEwcmVtO1xyXG5cdFx0XHR3aWR0aDogMTByZW07XHJcblx0XHRcdGJvcmRlcjogMDtcclxuXHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcblx0XHRcdGZvbnQtc2l6ZTogNC40cmVtO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHNjYWxlKDAuNyk7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0QGV4dGVuZCAlZC1mbGV4LWNlbnRlciAhb3B0aW9uYWw7XHJcblx0XHRcdHVzZXItc2VsZWN0OiBub25lO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWl4LmhhZiB7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogY29sb3JzLmNvbG9yKGJsdWUpO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogNXJlbTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji1oZWFkZXIge1xyXG5cdFx0ZGlzcGxheTogLW1zLWZsZXhib3g7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblx0XHQtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xyXG5cdFx0cGFkZGluZzogMXJlbSAxcmVtO1xyXG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYygwLjNyZW0gLSAxcHgpO1xyXG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGMoMC4zcmVtIC0gMXB4KTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cclxuXHRcdC5jbG9zZSB7XHJcblx0XHRcdHBhZGRpbmc6IDFyZW0gMXJlbTtcclxuXHRcdFx0bWFyZ2luOiAtMXJlbSAtMXJlbSAtMXJlbSBhdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji10aXRsZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcclxuXHRcdGNvbG9yOiAjMmIyYjJiO1xyXG5cdFx0Zm9udC1zaXplOiAzcmVtO1xyXG5cdH1cclxuXHJcblx0Ji1ib2R5IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdC1tcy1mbGV4OiAxIDEgYXV0bztcclxuXHRcdGZsZXg6IDEgMSBhdXRvO1xyXG5cdFx0cGFkZGluZzogMnJlbTtcclxuXHRcdEBpbmNsdWRlIGluY2x1ZGUtbWVkaWEubWVkaWEoJz50YWJsZXQnKSB7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGEge1xyXG5cdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1peC5oYWYge1xyXG5cdFx0XHRcdGNvbG9yOiBjb2xvcnMuY29sb3IoYmx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRoMyB7XHJcblx0XHRcdGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdGZvbnQtc2l6ZTogNXJlbTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogM3JlbTtcclxuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHRcdFx0bWFyZ2luLXRvcDogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYubW9kYWwtY2xpZW50cyB7XHJcblx0XHQuY29sLW1kLTQge1xyXG5cdFx0XHRib3JkZXItbGVmdDogLjFyZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcclxuXHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPD10YWJsZXQnKSB7XHJcblx0XHRcdFx0Ym9yZGVyOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dWwge1xyXG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPnRhYmxldCcpIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuMnJlbTtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IC43cmVtO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYubW9kYWwtY29udGFjdC11cyB7XHJcblx0XHQubW9kYWwtaGVhZGVyIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHRcdH1cclxuXHJcblx0XHQubW9kYWwtdGl0bGUge1xyXG5cdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRcdH1cclxuXHJcblx0XHQubW9kYWwtY2xvc2Uge1xyXG5cdFx0XHRtYXJnaW46IDAgYXV0byAycmVtO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5tb2RhbC1jb250ZW50IHtcclxuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0I2NvbnRhY3QtZm9ybSB7XHJcblx0XHRcdC5jb250cm9sLWdyb3VwIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAycmVtO1xyXG5cclxuXHRcdFx0XHQmLmNvbnRyb2wtZ3JvdXAtdGV4dCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC5jb250cm9scyB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHRcdFx0dGV4dGFyZWEsIGlucHV0IHtcclxuXHRcdFx0XHRcdFx0b3V0bGluZTogMDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMS4ycmVtIDJyZW07XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcclxuXHRcdFx0XHRcdFx0Ym9yZGVyOiAuMXJlbSBzb2xpZCBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKHdoaXRlKTtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjRyZW07XHJcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDVyZW07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0aW5wdXQge1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDZyZW07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0dGV4dGFyZWEge1xyXG5cdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiAxNnJlbTtcclxuXHRcdFx0XHRcdFx0cmVzaXplOiBub25lO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGxhYmVsIHtcclxuXHRcdFx0XHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcih3aGl0ZSk7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IC41ZW07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0LmhlbHAtYmxvY2sge1xyXG5cdFx0XHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjJyZW07XHJcblx0XHRcdFx0XHRcdFx0Y29sb3I6IGNvbG9ycy5jb2xvcihyZWQpO1xyXG5cdFx0XHRcdFx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0ZXh0YXJlYSArIC5oZWxwLWJsb2NrIHVsIHtcclxuXHRcdFx0XHRcdFx0dG9wOiAyMiU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRidXR0b24uc3VibWl0IHtcclxuXHRcdFx0XHRmb250LXNpemU6IDEuNnJlbTtcclxuXHRcdFx0XHRwYWRkaW5nOiAxLjlyZW0gNXJlbTtcclxuXHRcdFx0XHRib3JkZXI6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDE4cmVtO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRcdFx0YmFja2dyb3VuZDogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuXHRcdFx0XHRAaW5jbHVkZSBtaXguaGFmIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGNvbG9ycy5jb2xvcihibHVlKTtcclxuXHRcdFx0XHRcdGNvbG9yOiBjb2xvcnMuY29sb3Iod2hpdGUpO1xyXG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQjc3VjY2VzcyB7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdGNvbG9yOiAjMzMzO1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG5cdFx0XHRcdC5hbGVydCB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHRtYXJnaW46IDFyZW0gYXV0byAycmVtO1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMTVweCA0MHB4IDE1cHggMTVweDtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHRcdFx0XHQmLXN1Y2Nlc3Mge1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogI2Q0ZWRkYTtcclxuXHRcdFx0XHRcdFx0Ym9yZGVyOiAuMXJlbSBzb2xpZCBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cclxuXHRcdFx0XHRcdFx0YnV0dG9uIHtcclxuXHRcdFx0XHRcdFx0XHRjb2xvcjogY29sb3JzLmNvbG9yKGdyZWVuKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCYtZGFuZ2VyIHtcclxuXHRcdFx0XHRcdFx0Y29sb3I6IGNvbG9ycy4kY2xyLXJlZDtcclxuXHRcdFx0XHRcdFx0Ym9yZGVyOiAwLjFyZW0gc29saWQgY29sb3JzLiRjbHItcmVkO1xyXG5cclxuXHRcdFx0XHRcdFx0YnV0dG9uIHtcclxuXHRcdFx0XHRcdFx0XHRjb2xvcjogY29sb3JzLiRjbHItcmVkO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHAge1xyXG5cdFx0XHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0YnV0dG9uIHtcclxuXHRcdFx0XHRcdGJvcmRlcjogMDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdFx0cGFkZGluZzogLjVyZW0gMXJlbTtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogM3JlbTtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLm1vZGFsLW5vdGljZSB7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdGg0IHtcclxuXHRcdGNvbG9yOiBjb2xvcnMuY29sb3IoZ3JlZW4pO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdGZvbnQtc2l6ZTogMnJlbTtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG5cdFx0XHRmb250LXNpemU6IDEuNXJlbTtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC50aXRsZSB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRAaW5jbHVkZSBpbmNsdWRlLW1lZGlhLm1lZGlhKCc+dGFibGV0Jykge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnJvdyB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Z2FwOiA1cmVtO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcblxyXG5cdFx0QGluY2x1ZGUgaW5jbHVkZS1tZWRpYS5tZWRpYSgnPD10YWJsZXQnKSB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRcdGdhcDogMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jb2wge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcclxuXHQubW9kYWwtZGlhbG9nIHtcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbjogMS43NXJlbSBhdXRvO1xyXG5cdH1cclxuXHJcblx0Lm1vZGFsLXNtIHtcclxuXHRcdG1heC13aWR0aDogMzAwcHg7XHJcblx0fVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuXHQubW9kYWwtbGcsXHJcblx0Lm1vZGFsLXhsIHtcclxuXHRcdG1heC13aWR0aDogMTAyNXB4O1xyXG5cdH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG5cdC5tb2RhbC14bCB7XHJcblx0XHRtYXgtd2lkdGg6IDExNDBweDtcclxuXHR9XHJcbn1cclxuXHJcbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XHJcblx0Lm1vZGFsIC5tb2RhbC1kaWFsb2cge1xyXG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcclxuXHR9XHJcbn1cclxuIiwiQHVzZSBcIi4uL21peGlucy9jb2xvcnNcIjtcclxuQHVzZSBcIi4uL21peGlucy9wb3NpdGlvblwiO1xyXG5cclxuQG1peGluIGNvbG9yLW1vZGlmaWVycyB7XHJcblx0QGVhY2ggJG5hbWUsICRoZXggaW4gY29sb3JzLiRjb2xvcnMge1xyXG5cdFx0Ji1jbHItI3snJyArICRuYW1lfSB7XHJcblx0XHRcdGNvbG9yOiAkaGV4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGNvbG9yLW1vZGlmaWVycy1iZyB7XHJcblx0QGVhY2ggJG5hbWUsICRoZXggaW4gY29sb3JzLiRjb2xvcnMge1xyXG5cdFx0Ji1jbHItI3snJyArICRuYW1lfSB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRoZXg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4udHh0LSB7XHJcblx0QGluY2x1ZGUgY29sb3ItbW9kaWZpZXJzO1xyXG59XHJcblxyXG4uYmctIHtcclxuXHRAaW5jbHVkZSBjb2xvci1tb2RpZmllcnMtYmc7XHJcbn1cclxuXHJcbi5idG4tIHtcclxuXHRAaW5jbHVkZSBjb2xvci1tb2RpZmllcnMtYmc7XHJcbn1cclxuXHJcbi5wb3MtcmVsIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5wb3Mtc3RjIHtcclxuXHRwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wb3MtYWJ0IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi5wb3MtZml4IHtcclxuXHRwb3NpdGlvbjogZml4ZWQ7XHJcbn1cclxuXHJcbi5jbGVhcmZpeCB7XHJcblx0QGV4dGVuZCAlY2xlYXJmaXggIW9wdGlvbmFsO1xyXG59XHJcblxyXG4udmlzdWFsbHktaGlkZGVuIHtcclxuXHRAZXh0ZW5kICV2aXN1YWxseWhpZGRlbiAhb3B0aW9uYWw7XHJcbn1cclxuXHJcbi5uby1yZXNpemUge1xyXG5cdHJlc2l6ZTogbm9uZTtcclxufVxyXG5cclxuLmludmlzaWJsZSB7XHJcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG5zbWFsbCwgLnNtYWxsIHtcclxuXHRmb250LXNpemU6IDEycHg7XHJcbn1cclxuXHJcbi5jLWFsbC0wIHtcclxuXHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XHJcblx0ei1pbmRleDogOTtcclxufVxyXG5cclxuLmMtYWxsIHtcclxuXHRAaW5jbHVkZSBwb3NpdGlvbi5wb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xyXG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG5cdHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4uYm9yZGVyLTAge1xyXG5cdGJvcmRlcjogMCAhaW1wb3J0YW50O1xyXG59XHJcbiIsIi5zdGFycyB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5zdGFyIHtcclxuICB3aWR0aDogM3B4O1xyXG4gIGhlaWdodDogM3B4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC44KTtcclxuICBib3gtc2hhZG93OiAwIDAgNDBweCAwIHJnYmEoMCwgMTIzLCAyNTUsIDAuOCksIDAgMCAyMHB4IDAgI2ZmZjtcclxuICBhbmltYXRpb246IGdsb3cgNXMgaW5maW5pdGU7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblxyXG4gICYtLW1lZGl1bSB7XHJcbiAgICB3aWR0aDogNnB4O1xyXG4gICAgaGVpZ2h0OiA2cHg7XHJcbiAgfVxyXG5cclxuICAmLS1iaWcge1xyXG4gICAgd2lkdGg6IDlweDtcclxuICAgIGhlaWdodDogOXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDQwcHggMCAjMDA3YmZmLCAwIDAgMjBweCAwICNmZmYsIGluc2V0IDAgMCA0cHggI2ZmZjtcclxuICB9XHJcblxyXG4gICYuY29tZXQge1xyXG4gICAgd2lkdGg6IDVweDtcclxuICAgIGhlaWdodDogNXB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDdweCA3cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBvcGFjaXR5OiAwLjM7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgwLCAtNTBweCk7XHJcbiAgICBhbmltYXRpb246IGNvbWV0IDUwcyBpbmZpbml0ZTtcclxuXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICB3aWR0aDogMTB2dztcclxuICAgICAgaGVpZ2h0OiA0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG4gICAgICBib3gtc2hhZG93OiAwIDAgNjBweCByZ2JhKDIzNywgMjA1LCAxNjMsIDAuNCk7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb25fX3doYXQtd2UtZG8ge1xyXG4gIC5zdGFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNDMsIDI0MywgMC44KTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA0MHB4IDAgcmdiYSgyNTIsIDI1MywgMjU1LCAwLjgpLCAwIDAgMjBweCAwICNmZmY7XHJcblxyXG4gICAgJi5zdGFyLS1iaWcge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDAgNDBweCAwICNlYWVhZWEsIDAgMCAyMHB4IDAgI2ZmZiwgaW5zZXQgMCAwIDRweCAjZmZmO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBnbG93IHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAwLjk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICBvcGFjaXR5OiAwLjI7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgb3BhY2l0eTogMC45O1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBjb21ldCB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKDApO1xyXG4gICAgb3BhY2l0eTogMC4zO1xyXG4gIH1cclxuICAxMCUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbiAgMjAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWCgtMTAwdncpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVgoLTEwMHZ3KTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4uZHJhdy1pbiB7XHJcbiAgc3Ryb2tlLWRhc2hhcnJheTogMTAwMDtcclxuICBzdHJva2UtZGFzaG9mZnNldDogMTAwMDtcclxuICBhbmltYXRpb246IGRyYXcgMTVzIGVhc2UtaW4tb3V0IGFsdGVybmF0ZSBpbmZpbml0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGRyYXcge1xyXG4gIGZyb20ge1xyXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDEwMDA7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBkcmF3IHtcclxuICBmcm9tIHtcclxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAxMDAwO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICB9XHJcbn1cclxuXHJcbi5pdGVtLXRvIHtcclxuICBhbmltYXRpb24tZHVyYXRpb246IDEwcztcclxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XHJcbn1cclxuXHJcbi5ib3VuY2UtMSB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZS0xO1xyXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbn1cclxuXHJcbi5ib3VuY2UtMiB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZS0yO1xyXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbn1cclxuXHJcbi5ib3VuY2UtMyB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZS0zO1xyXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UtMSB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlLTEge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlLTIge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBib3VuY2UtMiB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlLTMge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGJvdW5jZS0zIHtcclxuICAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gIH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICBmcm9tIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyByb3RhdGlvbiB7XHJcbiAgZnJvbSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/