@import url("https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i&subset=cyrillic");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

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

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

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

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

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

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

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -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
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

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

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

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: 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 style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

/* Forms
   ========================================================================== */
/**
 * Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}

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

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

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.


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

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

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

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

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

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  -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 and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

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

/**
 * Remove default input styling from WebKit (rounded corners and inset shadows)
 */
input:not([type=checkbox]),
input:not([type=radio]),
textarea {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  -moz-border-radius: 0;
  -webkit-border-radius: 0;
}

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

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

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

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

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

@font-face {
  font-family: 'Bauhaus';
  src: url("../fonts/BauhausLight/BauhausLightC.eot");
  src: url("../fonts/BauhausLight/BauhausLightC.woff2") format("woff2"), url("../fonts/BauhausLight/BauhausLightC.woff") format("woff"), url("../fonts/BauhausLight/BauhausLightC.ttf") format("truetype"), url("../fonts/BauhausLight/BauhausLightC.svg#BauhausLightC") format("svg"), url("../fonts/BauhausLight/BauhausLightC.eot?#iefix") format("embedded-opentype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Bauhaus';
  src: url("../fonts/BauhausMedium/BauhausMediumC.eot");
  src: url("../fonts/BauhausMedium/BauhausMediumC.woff2") format("woff2"), url("../fonts/BauhausMedium/BauhausMediumC.woff") format("woff"), url("../fonts/BauhausMedium/BauhausMediumC.ttf") format("truetype"), url("../fonts/BauhausMedium/BauhausMediumC.svg#BauhausMediumC") format("svg"), url("../fonts/BauhausMedium/BauhausMediumC.eot?#iefix") format("embedded-opentype");
  font-weight: bold;
  font-style: normal;
}

.container:before, .header:before, .footer:before, .nav:before, .breadcrumbs:before, .info:before, .wrapper:before, .page:before, .indexPortfolio:before, .carousel-similar:before, .carousel-show:before, .container:after, .header:after, .footer:after, .nav:after, .breadcrumbs:after, .info:after, .wrapper:after, .page:after, .indexPortfolio:after, .carousel-similar:after, .carousel-show:after {
  display: table;
  content: "";
  line-height: 0;
}

.container:after, .header:after, .footer:after, .nav:after, .breadcrumbs:after, .info:after, .wrapper:after, .page:after, .indexPortfolio:after, .carousel-similar:after, .carousel-show:after {
  clear: both;
}

.menuTop li, .lang ul li, .social ul li, .breadcrumbs ul li, div.pagination li {
  float: left;
  text-align: center;
}

.menuTop li a:hover, .lang ul li a:hover, .social ul li a:hover, .breadcrumbs ul li a:hover, div.pagination li a:hover, .menuTop li a:focus, .lang ul li a:focus, .social ul li a:focus, .breadcrumbs ul li a:focus, div.pagination li a:focus {
  text-decoration: none;
}

h1, h2 {
  font-weight: bold;
  text-transform: uppercase;
  text-align: left;
  margin-bottom: 1.563rem;
}

h1 {
  font-size: 1.563rem;
  line-height: 1.563rem;
  font-family: "Bauhaus", sans-serif;
  border-left: 4px solid #ef4482;
  padding-left: 12px;
  padding-bottom: 0;
}

h2 {
  font-size: 1.25rem;
  line-height: 1.563rem;
  font-family: "Bauhaus", sans-serif;
  border-left: 4px solid #ef4482;
  padding-left: 12px;
  padding-bottom: 0;
}

@media (min-width: 1024px) {
  h2 {
    font-size: 1.563rem;
    line-height: 1.563rem;
  }
}

h3 {
  font-size: 1.25rem;
  line-height: 1.563rem;
  font-family: "Roboto", sans-serif;
  color: #000000;
  text-align: left;
  margin-bottom: 1.563rem;
}

a, a:hover, a:focus, a:visited {
  font-size: 0.875rem;
  line-height: 1.563rem;
  text-decoration: none;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

@media (min-width: 768px) {
  a, a:hover, a:focus, a:visited {
    font-size: 1rem;
    line-height: 1.563rem;
  }
}

a:hover, a:focus {
  text-decoration: none;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

b, strong {
  font-weight: bold;
}

i, em {
  font-style: italic;
}

p, ul, ol, pre, table, blockquote {
  font-size: 0.875rem;
  line-height: 1.563rem;
  font-family: "Roboto", sans-serif;
  color: #777777;
  margin-top: 0;
  padding-bottom: 0.7815rem;
  text-align: left;
}

@media (min-width: 768px) {
  p, ul, ol, pre, table, blockquote {
    font-size: 1rem;
    line-height: 1.563rem;
  }
}

ul ul, ol ol, ul ol, ol ul {
  text-align: left;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
}

hr, .hr {
  background-color: #cacaca;
  border: 0;
  height: 1px;
}

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

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

::-webkit-input-placeholder {
  color: #c0c0c0;
  opacity: 1;
}

:-moz-placeholder {
  color: #c0c0c0;
  opacity: 1;
}

::-moz-placeholder {
  color: #c0c0c0;
  opacity: 1;
}

:-ms-input-placeholder {
  color: #c0c0c0;
  opacity: 1;
}

button {
  cursor: pointer;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

button, input, textarea, select {
  outline: none;
}

button:active, input:active, textarea:active, select:active {
  outline: none;
}

button:focus, input:focus, textarea:focus, select:focus {
  outline: none;
}

button, input, textarea {
  display: inline-block;
  margin-bottom: 1.563rem;
  text-align: center;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

input[type="text"], textarea {
  padding: 0.7815rem 1.69492%;
}

input[type="text"]:focus, textarea:focus {
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.button, input[type="submit"] {
  display: inline-block;
  padding: 0.39075rem 0.7815rem;
  text-align: center;
  text-decoration: none;
  border: 1px solid #cacaca;
  color: #c0c0c0;
  background-color: #f2f3f4;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  position: relative;
  -webkit-transition-property: color;
  -o-transition-property: color;
  transition-property: color;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.button:before, input[type="submit"]:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ef4482;
  border-color: #ef4482;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: .3s;
       -o-transition-duration: .3s;
          transition-duration: .3s;
  -webkit-transition-timing-function: ease-out;
       -o-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
}

.button:hover, .button:focus, input[type="submit"]:hover, input[type="submit"]:focus {
  text-decoration: none;
  color: #ffffff !important;
}

.button:hover:before, .button:focus:before, input[type="submit"]:hover:before, input[type="submit"]:focus:before {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

input[type="submit"]:hover, input[type="submit"]:focus {
  text-decoration: none;
  color: #ffffff !important;
  background-color: #ef4482;
  border-color: #ef4482;
}

.formFeedback {
  width: 100%;
  background-color: #ffffff;
  padding: 1.563rem 0;
}

.formFeedback textarea {
  font-size: 1.25rem;
}

.formFeedback input[type=submit] {
  cursor: pointer;
}

.formFeedback label {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  font-size: 1.25rem;
  font-weight: 300;
  margin: 0.521rem;
  padding: 0;
  background-color: #ffffff;
  -webkit-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}

.formFeedback div {
  position: relative;
  height: 70px;
}

.formFeedback div:last-of-type {
  height: 205px;
}

.formFeedback .active {
  color: #c0c0c0;
  top: -20px;
  font-size: 1rem;
  padding: 0 0.7815rem;
  -webkit-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}

.formControl {
  width: 100%;
  position: absolute;
  top: 0;
  padding: 1.563rem;
  border: 1px solid #cacaca;
  font-size: 1rem;
  text-align: left;
  background-color: #ffffff;
  color: #777777;
}

.formControl:focus + label {
  color: #c0c0c0;
  top: -20px;
  font-size: 1rem;
  padding: 0 0.7815rem;
  -webkit-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}

.formControl:focus {
  outline: none;
}

.icon {
  position: absolute;
  top: 6px;
}

.envelop {
  top: 2px;
}

@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}

@keyframes shine {
  100% {
    left: 125%;
  }
}

@-webkit-keyframes pulse-in {
  to {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
}

@keyframes pulse-in {
  to {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
}

@-webkit-keyframes pulse {
  25% {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
  75% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
}

@keyframes pulse {
  25% {
    -webkit-transform: scale(1.05);
    transform: scale(1.05);
  }
  75% {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
}

@-webkit-keyframes buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

@keyframes buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
            transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
            transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
            transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
            transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
            transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
            transform: translateX(-1px) rotate(0);
  }
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

:focus {
  outline: none;
}

html, body {
  height: 100%;
}

body {
  font-size: 1rem;
  line-height: 1.563rem;
  font-family: "Roboto", sans-serif;
  background: #ffffff;
  color: #777777;
}

img {
  max-width: 100%;
  height: auto;
}

.container, .header, .footer, .nav, .breadcrumbs, .info {
  width: 100%;
  margin: 0 auto;
}

.wrapper, .page, .indexPortfolio {
  width: 96.61017%;
  margin: 0 1.69492%;
}

@media (min-width: 1280px) {
  .wrapper, .page, .indexPortfolio {
    max-width: 1280px;
    margin: 0 auto;
  }
}

.main {
  width: 100%;
}

a.svg {
  position: relative;
  display: inline-block;
}

a.svg:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.bgLight, .breadcrumbs, .infoLink {
  background-color: #f2f3f4;
}

.bgDark, .infoLinkDark {
  background-color: #513369;
}

.bgDarken {
  background-color: #3b1758;
}

/*
!*baseline grid*!
.main {
position: relative;
  &:before {
    content: '';
    //background: susy-svg-grid() no-repeat scroll;
    @include baseline-grid;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
  }
}
*/
.header {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.header .social {
  display: none;
}

@media (min-width: 768px) {
  .header .social {
    display: block;
  }
}

.header .topLine {
  position: fixed;
  z-index: 50;
  opacity: .9;
}

.header .topLine + .container {
  padding-top: 50px;
}

@media (min-width: 768px) {
  .header .topLine {
    position: relative;
    opacity: 1;
  }
  .header .topLine + .container {
    padding-top: 0;
  }
}

.logo, .slogan {
  min-height: 4.689rem;
  line-height: 4.689rem;
}

@media (min-width: 768px) {
  .logo, .slogan {
    min-height: 6.252rem;
    line-height: 6.252rem;
  }
}

.logo {
  width: 150px;
  height: 60px;
  margin: 0.7815rem auto 0;
  float: none;
}

.logo object {
  width: 150px;
  display: inline-block;
  vertical-align: middle;
  line-height: normal;
}

@media (min-width: 768px) {
  .logo {
    width: 23.72881%;
    float: left;
    margin: 0;
  }
}

.slogan {
  width: 100%;
  float: none;
  text-align: center;
}

.slogan p {
  margin: auto;
  color: #cccef7;
  text-align: center;
  font-family: "Bauhaus", sans-serif;
  font-size: 1rem;
  display: inline-block;
  vertical-align: middle;
  padding-bottom: 0;
}

@media (min-width: 480px) {
  .slogan p {
    font-size: 1.25rem;
  }
}

@media (min-width: 1024px) {
  .slogan p {
    font-size: 1.563rem;
  }
}

@media (min-width: 768px) {
  .slogan {
    width: 49.15254%;
    float: left;
  }
}

.telTop {
  width: 100%;
  float: none;
  text-align: center;
  min-height: 3.126rem;
  line-height: 1.563rem;
}

.telTop p {
  display: inline-block;
  vertical-align: middle;
  padding-bottom: 0;
  padding-top: 0.7815rem;
}

.telTop a, .telTop a:visited {
  color: #ffffff;
  font-weight: 300;
  display: inline-block;
  width: auto;
  text-align: center;
}

.telTop a:not(:first-of-type), .telTop a:visited:not(:first-of-type) {
  padding-left: 12px;
}

.telTop a:first-of-type:before, .telTop a:visited:first-of-type:before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #513369;
  background-image: url("../img/icon_phone.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 70%;
  margin-bottom: -10px;
  margin-right: 10px;
}

.telTop a:hover, .telTop a:focus {
  color: #cccef7;
}

@media (min-width: 768px) {
  .telTop {
    width: 23.72881%;
    float: right;
    text-align: right;
    min-height: 6.252rem;
    line-height: 6.252rem;
  }
  .telTop p {
    padding-top: 0;
  }
  .telTop a, .telTop a:visited {
    text-align: right;
    width: 100%;
  }
}

.footer {
  padding-top: 1.563rem;
}

.footer p, .footer a, .footer a:hover, .footer a:focus, .footer a:visited {
  font-size: 0.875rem;
  color: #cccef7;
  display: inline-block;
}

.footer a:hover, .footer a:focus {
  color: #ef4482;
}

.footer h2 {
  color: #ffffff;
}

.footer .wrapper {
  padding: 0.7815rem 0;
}

.footer .signature-wrapper {
  padding-bottom: 0.7815rem;
}

@media (min-width: 768px) {
  .footer .signature-wrapper {
    padding-bottom: 0;
  }
}

.footer .social {
  text-align: center;
  width: 100%;
}

.footer .social ul {
  display: inline-block;
  padding: 0;
  overflow: auto;
}

@media (min-width: 768px) {
  .footer .social {
    text-align: left;
    width: 40.67797%;
  }
}

.footerContacts {
  width: 280px;
  margin: 0 auto;
  float: none;
}

@media (min-width: 768px) {
  .footerContacts {
    float: left;
    width: 32.20339%;
    padding-top: 0.7815rem;
    margin: 0;
  }
}

.footerPartners {
  width: 280px;
  text-align: center;
  margin: 0.7815rem auto 0;
  float: none;
}

.footerPartners a, .footerPartners a:visited {
  opacity: .7;
}

.footerPartners a:hover, .footerPartners a:focus {
  opacity: 1;
}

@media (min-width: 768px) {
  .footerPartners {
    text-align: left;
    float: right;
    width: 15.25424%;
    padding-top: 0.7815rem;
    margin: 0;
  }
}

.footerCatalog, .footerInfo {
  display: none;
}

@media (min-width: 768px) {
  .footerCatalog, .footerInfo {
    display: block;
    float: left;
    width: 23.72881%;
    padding-top: 0.7815rem;
  }
}

.footerItem {
  position: relative;
  padding-top: 1px;
  margin-bottom: 1.563rem;
}

.footerItem p {
  margin-left: 30px;
  padding-bottom: 0;
}

.footerItem a, .footerItem a:hover, .footerItem a:focus, .footerItem a:visited {
  width: 100%;
}

.signature {
  width: 100%;
  float: none;
  text-align: center;
}

@media (min-width: 768px) {
  .signature {
    width: 57.62712%;
    float: right;
    text-align: right;
  }
}

.copy, .linecore {
  font-size: 0.78rem;
  line-height: 1.563rem;
  text-align: center;
  width: 100%;
  margin: 0 auto;
  color: rgba(204, 206, 247, 0.7);
}

@media (min-width: 768px) {
  .copy, .linecore {
    width: 57.62712%;
    text-align: right;
    margin: 0;
    display: inline;
  }
}

.linecore span {
  font-weight: bold;
}

.linecore a {
  color: #cccef7;
  text-transform: uppercase;
}

.linecore a:hover, .linecore a:focus {
  color: #fc5b8d;
}

.linecore a:hover span, .linecore a:focus span {
  color: #ef4482;
}

.clientsLogo, .clientsLogo2 {
  overflow: hidden;
  margin: 3.126rem auto;
}

.clientsLogo div, .clientsLogo2 div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.clientsLogo2 {
  display: none;
}

@media (min-width: 1024px) {
  .clientsLogo2 {
    display: block;
  }
}

.clientLogo {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.7815rem;
}

.clientLogo img {
  max-height: 70px;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  opacity: .7;
}

.blog {
  max-width: 800px;
  margin: 0 auto 1.563rem;
}

.blog img {
  margin: 0.7815rem auto;
  max-width: none;
  width: 100%;
}

.blogImg {
  margin-bottom: 1.563rem;
}

.content {
  padding-bottom: 1.563rem;
}

.content a, .content a:hover, .content a:focus, .content a:visited {
  color: #5361ad;
  text-decoration: none;
}

.content a:hover, .content a:focus {
  text-decoration: underline;
  color: #ef4482;
}

.title {
  color: #513369;
  text-transform: none;
  margin-top: 1.563rem;
}

.titleEstrada {
  color: #ef4482;
  text-transform: none;
  margin: 3.126rem auto;
  padding-left: 0;
  border-left: none;
  text-align: center;
  font-size: 1.95rem;
  line-height: 2.3445rem;
}

@media (min-width: 768px) {
  .titleEstrada {
    font-size: 2.44rem;
    line-height: 3.126rem;
  }
}

.titleLink {
  margin-top: 1.563rem;
  color: #5361ad;
  position: relative;
  text-transform: none;
}

.titleLink:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  margin-left: 12px;
  bottom: 4px;
  border: 6px solid;
  color: transparent;
  border-left-color: #ef4482;
}

.titleLink:hover {
  color: #ef4482;
}

.infoLink, .infoLinkDark {
  width: 100%;
  padding: 1.563rem 0;
}

.infoLink .wrapper, .infoLinkDark .wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.infoLink a, .infoLink a:hover, .infoLink a:focus, .infoLink a:visited, .infoLinkDark a, .infoLinkDark a:hover, .infoLinkDark a:focus, .infoLinkDark a:visited {
  display: block;
  width: 25%;
  font-size: 0.875rem;
  color: #777777;
  text-align: center;
  text-decoration: none;
  border-bottom: none;
}

.infoLink a:hover, .infoLink a:focus, .infoLinkDark a:hover, .infoLinkDark a:focus {
  color: #ef4482;
  text-decoration: none;
}

@media (max-width: 767px) {
  .infoLink .wrapper, .infoLinkDark .wrapper {
    display: block;
  }
  .infoLink a, .infoLink a:hover, .infoLink a:focus, .infoLink a:visited, .infoLinkDark a, .infoLinkDark a:hover, .infoLinkDark a:focus, .infoLinkDark a:visited {
    width: 50%;
    margin: auto;
  }
  .infoLink a:not(:last-of-type), .infoLink a:hover:not(:last-of-type), .infoLink a:focus:not(:last-of-type), .infoLink a:visited:not(:last-of-type), .infoLinkDark a:not(:last-of-type), .infoLinkDark a:hover:not(:last-of-type), .infoLinkDark a:focus:not(:last-of-type), .infoLinkDark a:visited:not(:last-of-type) {
    padding-bottom: 0.7815rem;
    border-bottom: 1px solid rgba(119, 119, 119, 0.15);
  }
  .infoLink a:not(:first-of-type), .infoLink a:hover:not(:first-of-type), .infoLink a:focus:not(:first-of-type), .infoLink a:visited:not(:first-of-type), .infoLinkDark a:not(:first-of-type), .infoLinkDark a:hover:not(:first-of-type), .infoLinkDark a:focus:not(:first-of-type), .infoLinkDark a:visited:not(:first-of-type) {
    padding-top: 0.7815rem;
  }
}

.infoLinkDark a, .infoLinkDark a:visited {
  color: #cccef7;
}

.infoLinkDark a:hover, .infoLinkDark a:focus {
  color: #ef4482;
}

@media (max-width: 767px) {
  .infoLinkDark a:not(:last-of-type), .infoLinkDark a:hover:not(:last-of-type), .infoLinkDark a:focus:not(:last-of-type), .infoLinkDark a:visited:not(:last-of-type) {
    border-bottom: 1px solid rgba(204, 206, 247, 0.3);
  }
}

.popular {
  max-width: 480px;
  width: 100%;
  margin: 0 auto 1.563rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.popular a, .popular a:hover, .popular a:focus, .popular a:visited {
  text-decoration: none;
}

@media (min-width: 1024px) {
  .popular {
    max-width: inherit;
  }
}

.popularItem {
  width: 100%;
  margin-bottom: 1.563rem;
  -webkit-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

.popularItem:hover .popularImg:before, .popularItem:focus .popularImg:before {
  -webkit-animation: shine .75s;
          animation: shine .75s;
}

.popularItem:hover .popularTitle, .popularItem:focus .popularTitle {
  color: #ef4482;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

@media (min-width: 1024px) {
  .popularItem {
    width: 32.20339%;
  }
}

.popularImg {
  position: relative;
  overflow: hidden;
}

.popularImg:before {
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 2;
  display: block;
  content: '';
  width: 50%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.3)));
  background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  -webkit-transform: skewX(-25deg);
      -ms-transform: skewX(-25deg);
          transform: skewX(-25deg);
}

.popularTitle {
  margin-top: 0.7815rem;
  color: #000000;
  font-weight: bold;
  text-decoration: none;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.tags, .tagsMain {
  font-size: 0.875rem;
  line-height: 1.563rem;
  color: #c0c0c0;
  padding: 3.126rem 0;
}

.tagsMain {
  border-top: 1px solid #cacaca;
}

.error {
  font-size: .75rem;
  display: block;
  position: absolute;
  width: 100%;
  bottom: 5px;
}

.popupWrap {
  position: relative;
  max-width: 600px;
  width: 100%;
  background-color: #ffffff;
  padding: 3.126rem 1.563rem 0;
  margin: auto;
  -webkit-transition: all .7s ease-in-out;
  -o-transition: all .7s ease-in-out;
  transition: all .7s ease-in-out;
}

.popupBack {
  display: none;
  overflow: auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: fixed;
  z-index: 200;
  padding: 0.7815rem;
  background-color: rgba(59, 23, 88, 0.8);
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.close {
  position: absolute;
  cursor: pointer;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background: white;
  display: block;
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
}

.close:after, .close:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background: #777777;
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
  top: 12px;
}

.close:before {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 12px;
}

.nav {
  background-color: #3b1758;
  background-image: none;
  padding: 0.7815rem 0;
}

@media (min-width: 768px) {
  .nav {
    background-color: #ffffff;
    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ffffff), color-stop(10%, #ffffff), color-stop(90%, #ffffff), to(#c9c8cc));
    background-image: -webkit-linear-gradient(bottom, #ffffff 0, #ffffff 10%, #ffffff 90%, #c9c8cc 100%);
    background-image: -o-linear-gradient(bottom, #ffffff 0, #ffffff 10%, #ffffff 90%, #c9c8cc 100%);
    background-image: linear-gradient(to top, #ffffff 0, #ffffff 10%, #ffffff 90%, #c9c8cc 100%);
  }
}

.menuTop {
  display: block;
  overflow: hidden;
  width: 84.74576%;
  float: left;
  padding-top: 0.7815rem;
}

.menuTop li {
  padding-right: 1rem;
}

.menuTop a, .menuTop a:hover, .menuTop a:focus, .menuTop a:visited {
  display: inline-block;
  color: #3b1758;
  text-transform: uppercase;
  font-size: 0.875rem;
}

.menuTop .active > a, .menuTop a:hover, .menuTop a:focus {
  color: #ef4482;
  text-decoration: none;
}

@media (max-width: 767px) {
  .menuTop {
    display: none;
  }
}

.orderTop {
  background-color: #ef4482;
  color: #ffffff;
  font-family: "Bauhaus", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  float: none;
  width: 270px;
  display: block;
  line-height: 1.25rem;
  padding: 0.39075rem;
  margin: 0 auto;
  -webkit-animation-name: pulse;
          animation-name: pulse;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-play-state: running;
          animation-play-state: running;
}

.orderTop:hover, .orderTop:focus {
  background-color: #3b1758;
  color: #ef4482;
  line-height: 1.25rem;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}

@media (min-width: 768px) {
  .orderTop {
    float: right;
    width: 110px;
  }
}

.lang, .social {
  width: 50%;
}

.lang ul, .social ul {
  padding-top: 0.7815rem;
}

.lang a, .lang a:hover, .lang a:focus, .lang a:visited, .social a, .social a:hover, .social a:focus, .social a:visited {
  font-size: 0.875rem;
  color: #cccef7;
}

.lang a, .lang a:visited, .social a, .social a:visited {
  opacity: .7;
}

.lang a:hover, .lang a:focus, .social a:hover, .social a:focus {
  opacity: 1;
}

.lang {
  float: right;
}

.lang ul {
  float: right;
}

.lang li:not(:first-of-type) {
  padding-left: 1rem;
}

.lang a.active {
  color: #ef4482;
  opacity: 1;
}

.lang span {
  display: none;
}

@media (min-width: 480px) {
  .lang span {
    display: inline;
  }
}

.social {
  float: left;
}

.social li {
  padding-top: 3px;
}

.social li:not(:last-of-type) {
  padding-right: 1rem;
}

.social img {
  height: 1.25rem;
  width: auto;
}

.breadcrumbs {
  padding: 0.7815rem 0;
}

.breadcrumbs ul {
  padding-bottom: 0;
}

.breadcrumbs li {
  font-size: 0.875rem;
  color: #c0c0c0;
}

.breadcrumbs li:not(:first-of-type):before {
  content: '/';
  padding-left: 5px;
  padding-right: 5px;
}

.breadcrumbs a, .breadcrumbs a:hover, .breadcrumbs a:focus, .breadcrumbs a:visited {
  font-size: 0.875rem;
  color: #c0c0c0;
  display: inline-block;
}

.breadcrumbs a:hover, .breadcrumbs a:focus {
  color: #777777;
}

@media (max-width: 767px) {
  .breadcrumbs {
    display: none;
  }
}

.menuFooter li, .menuCatalog li {
  position: relative;
  padding-left: 16px;
  line-height: 1.563rem;
}

.menuFooter li:before, .menuCatalog li:before {
  content: "";
  position: absolute;
  top: 11px;
  left: 0;
  width: 4px;
  height: 4px;
  background-color: #ef4482;
}

.menuLeft {
  width: 100%;
  border: 1px solid #cacaca;
  border-top: 3px solid #ef4482;
}

.menuLeft h3 {
  font-family: "Bauhaus", sans-serif;
  color: #000000;
  font-weight: bold;
  padding: 0.7815rem;
  margin-bottom: 0;
  cursor: pointer;
}

@media (min-width: 768px) {
  .menuLeft h3 {
    cursor: auto;
  }
}

.menuLeft ul {
  padding-bottom: 0;
}

.menuLeft li {
  border-top: 1px solid #cacaca;
}

.menuLeft a, .menuLeft a:hover, .menuLeft a:focus, .menuLeft a:visited {
  display: inline-block;
  width: 100%;
  padding: 0.7815rem;
  font-size: 0.875rem;
  color: #777777;
  background-color: #ffffff;
}

.menuLeft a:hover, .menuLeft a:focus {
  color: #ef4482;
}

.menuLeft .active > a {
  color: #ef4482;
  background-color: #f2f3f4;
}

.catalogMap a {
  position: relative;
}

.catalogMap a:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  right: 10px;
  top: 20px;
  border: 4px solid;
  color: transparent;
  border-left-color: #777777;
}

.catalogMap a:hover:after, .catalogMap a:focus:after {
  border-left-color: #ef4482;
}

.catalogMap .active a:after {
  right: 12px;
  border-top-color: #ef4482;
  border-left-color: transparent;
}

.catalogMap ul {
  display: none;
}

.catalogMap ul li {
  border-top: none;
}

.catalogMap ul a, .catalogMap ul a:visited {
  padding-top: 0;
  padding-left: 1.563rem;
  opacity: .7;
}

.catalogMap ul a:after, .catalogMap ul a:visited:after {
  content: none;
}

.catalogMap ul a:hover, .catalogMap ul a:focus {
  padding-top: 0;
  opacity: 1;
  color: #000000;
}

.catalogMap ul .active a, .catalogMap ul .active a:hover, .catalogMap ul .active a:focus, .catalogMap ul .active a:visited {
  opacity: 1;
  color: #000000;
  padding-left: 1.563rem;
}

.catalogMap .active a {
  background-color: #ffffff;
}

.catalogMap .active ul {
  display: block;
}

.menuPortfolio {
  display: none;
}

@media (min-width: 768px) {
  .menuPortfolio {
    display: block;
  }
}

div.pagination {
  text-align: center;
  border-top: 1px solid #cacaca;
}

ul.pagination {
  overflow: auto;
  display: inline-block;
  width: auto;
  margin: 1.563rem auto;
  padding-bottom: 0;
}

ul.pagination li {
  padding: 0 5px;
  font-size: 1rem;
}

ul.pagination li:before {
  content: none;
}

ul.pagination a, ul.pagination a:visited, ul.pagination span {
  display: table-cell;
  height: 30px;
  width: 30px;
  text-align: center;
  vertical-align: middle;
  background-color: #ffffff;
  border: 1px solid #cacaca;
  color: #c0c0c0;
}

ul.pagination a:hover, ul.pagination a:focus {
  text-decoration: none;
  color: #ef4482;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
  text-decoration: none;
}

ul.pagination .active > a {
  text-decoration: none;
  color: #ef4482;
  background-color: #f2f3f4;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
  text-decoration: none;
}

ul.pagination .disabled, ul.pagination .control {
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  color: transparent;
}

ul.pagination .control:hover, ul.pagination .control:focus, ul.pagination .disabled {
  opacity: .5;
}

ul.pagination li:nth-of-type(1) a, ul.pagination li:nth-of-type(1) span {
  background: url("../img/first.png") left top no-repeat;
  border: none;
}

ul.pagination li:nth-of-type(2) a, ul.pagination li:nth-of-type(2) span {
  background: url("../img/prev.png") left top no-repeat;
  border: none;
}

ul.pagination li:nth-last-of-type(1) a, ul.pagination li:nth-last-of-type(1) span {
  background: url("../img/last.png") left top no-repeat;
  border: none;
}

ul.pagination li:nth-last-of-type(2) a, ul.pagination li:nth-last-of-type(2) span {
  background: url("../img/next.png") left top no-repeat;
  border: none;
}

label#mobile {
  display: block;
}

label#mobile .menuMobIcon {
  position: fixed;
  left: 5px;
  top: 5px;
  z-index: 100;
  width: 40px;
  height: 40px;
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  -webkit-box-shadow: 0 0 0 0 #FFF, 0 0 0 0 #FFF;
          box-shadow: 0 0 0 0 #FFF, 0 0 0 0 #FFF;
  cursor: pointer;
}

label#mobile .hamburger {
  position: absolute;
  top: 19px;
  left: 8px;
  width: 24px;
  height: 2px;
  background: rgba(255, 255, 255, 0.8);
  display: block;
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
}

label#mobile .hamburger:after, label#mobile .hamburger:before {
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8);
}

label#mobile .hamburger:before {
  top: -6px;
}

label#mobile .hamburger:after {
  bottom: -6px;
}

label#mobile input {
  display: none;
}

label#mobile input:checked + .menuMobIcon {
  background: white;
  -webkit-box-shadow: 0 0 0 100vw #FFF, 0 0 0 100vh #FFF;
          box-shadow: 0 0 0 100vw #FFF, 0 0 0 100vh #FFF;
  border-radius: 0;
}

label#mobile input:checked + .menuMobIcon .hamburger {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  background-color: #777777;
}

label#mobile input:checked + .menuMobIcon .hamburger:after {
  background-color: #777777;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  bottom: 0;
}

label#mobile input:checked + .menuMobIcon .hamburger:before {
  background-color: #777777;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  top: 0;
}

label#mobile input:checked + .menuMobIcon + .menuMob {
  opacity: 1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: .25s .2s ease-in-out;
  -o-transition: .25s .2s ease-in-out;
  transition: .25s .2s ease-in-out;
}

label#mobile .menuMob {
  z-index: 200;
  position: fixed;
  top: -100%;
  left: -100%;
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 0;
  -webkit-transition: .25s 0s ease-in-out;
  -o-transition: .25s 0s ease-in-out;
  transition: .25s 0s ease-in-out;
}

label#mobile .menuMob a, label#mobile .menuMob a:hover, label#mobile .menuMob a:focus, label#mobile .menuMob a:visited {
  color: #ef4482;
  font-size: 1.25rem;
  line-height: 2.3445rem;
}

@media (min-width: 767px) {
  label#mobile {
    display: none;
  }
}

.indexAbout, .indexClient {
  width: 100%;
  float: none;
  padding-right: 0;
  padding-bottom: 1.563rem;
  text-align: center;
}

.indexAbout p:last-of-type, .indexClient p:last-of-type {
  padding-bottom: 1.563rem;
}

@media (min-width: 1024px) {
  .indexAbout {
    width: 49.15254%;
    float: left;
    padding-right: 1.563rem;
  }
  .indexClient {
    width: 49.15254%;
    float: right;
  }
}

.indexCatalog {
  width: 96.61017%;
  margin: 0 1.69492%;
  padding: 1.563rem 0 0.7815rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

@media (min-width: 1024px) {
  .indexCatalog {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}

@media (min-width: 1280px) {
  .indexCatalog {
    max-width: 1280px;
    margin: 0 auto;
  }
}

.indexCategory {
  width: 100%;
  margin-bottom: 0.7815rem;
  padding: 1.563rem;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  -webkit-transition: .5s;
  -o-transition: .5s;
  transition: .5s;
}

.indexCategory:hover, .indexCategory:focus, .indexCategory:active {
  -webkit-animation-name: pulse-in;
          animation-name: pulse-in;
  -webkit-animation-duration: .5s;
          animation-duration: .5s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
}

@media (min-width: 768px) {
  .indexCategory {
    width: 32.20339%;
  }
}

@media (min-width: 1024px) {
  .indexCategory {
    width: 15.25424%;
  }
}

.categorySound {
  background-color: #fc5b8d;
}

.categoryLight {
  background-color: #fcd424;
}

.categoryScene {
  background-color: #a36acb;
}

.categoryMedia {
  background-color: #769ba3;
}

.categoryDj {
  background-color: #c759af;
}

.categoryArtists {
  background-color: #5361ad;
}

.categoryTitle {
  font-size: 0.875rem;
  line-height: 1rem;
  color: #ffffff;
  text-align: center;
}

.categoryImg {
  width: 5rem;
  height: 5rem;
  margin: auto;
  text-align: center;
  color: #ffffff;
}

.indexPortfolio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 1.563rem 0;
}

.indexPortfolio .buttonPortfolio > .button {
  padding: 0.521rem 0.7815rem;
  background-color: #ef4482;
  font-family: "Roboto", sans-serif;
  font-weight: normal;
  text-transform: none;
}

.indexPortfolio .buttonPortfolio > .button:before {
  background-color: #513369;
}

.indexPortfolioItem {
  max-width: 480px;
  width: 100%;
  padding-bottom: 1.563rem;
  margin: auto;
}

@media (min-width: 640px) {
  .indexPortfolioItem {
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .indexPortfolioItem {
    width: 83.05085%;
  }
}

@media (min-width: 1024px) {
  .indexPortfolioItem {
    width: 49.15254%;
  }
}

.indexPortfolioWrapper {
  width: 100%;
  text-align: center;
}

@media (min-width: 640px) {
  .indexPortfolioWrapper {
    text-align: left;
  }
}

.indexPortfolioImg {
  width: 100%;
  height: auto;
  float: none;
  overflow: auto;
  background-color: #f2f3f4;
  position: relative;
}

.indexPortfolioImg img {
  position: relative;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

@media (min-width: 640px) {
  .indexPortfolioImg {
    width: 13rem;
    height: 10rem;
    float: left;
    overflow: hidden;
  }
  .indexPortfolioImg img {
    position: absolute;
    height: 100%;
    max-width: inherit;
  }
}

.indexPortfolioText {
  margin-left: 0;
  padding-right: 0;
  height: auto;
  font-size: 1.25rem;
  overflow: auto;
}

.indexPortfolioText + .button {
  margin-left: auto;
  margin-top: 0;
}

@media (min-width: 640px) {
  .indexPortfolioText {
    font-size: 1rem;
    margin-left: 14rem;
    padding-right: 1rem;
    margin-bottom: 0.7815rem;
    height: 6.252rem;
    overflow: hidden;
  }
  .indexPortfolioText + .button {
    margin-left: 1rem;
  }
}

@media (min-width: 1024px) {
  .indexPortfolioText {
    font-size: 1.25rem;
  }
}

.seoText {
  font-weight: 500;
  cursor: pointer;
  color: #000000;
}

.seoText:hover {
  color: #ef4482;
}

.gallery {
  width: 100%;
  margin-top: 2.3445rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.gallery a, .gallery a:hover, .gallery a:focus, .gallery a:visited {
  text-decoration: none;
}

.galleryItemTile {
  width: 100%;
  margin-left: 0;
  margin-bottom: 1.563rem;
}

.galleryItemTile .itemImg {
  margin-bottom: 0.7815rem;
}

.galleryItemTile:hover .itemTitle, .galleryItemTile:hover .itemUsedTitle, .galleryItemTile:focus .itemTitle, .galleryItemTile:focus .itemUsedTitle {
  color: #ef4482;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemTile:hover .itemImg img, .galleryItemTile:focus .itemImg img {
  max-width: 110%;
  left: -5%;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemTile:hover .itemUsedImg, .galleryItemTile:focus .itemUsedImg {
  background-color: #ffffff;
}

.galleryItemTile:hover .itemUsedImg img, .galleryItemTile:focus .itemUsedImg img {
  opacity: 0;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

@media (min-width: 480px) {
  .galleryItemTile {
    width: 49.15254%;
    margin-left: 1.69492%;
  }
  .galleryItemTile:nth-child(2n+1) {
    margin-left: 0;
  }
}

@media (min-width: 1024px) {
  .galleryItemTile {
    width: 32.20339%;
  }
  .galleryItemTile:nth-child(2n+1) {
    margin-left: 1.69492%;
  }
  .galleryItemTile:nth-child(3n+1) {
    margin-left: 0;
  }
}

.galleryItemBar {
  max-width: 400px;
  width: 100%;
  display: block;
  position: relative;
  margin: 1.563rem auto;
  text-align: center;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemBar:not(:last-of-type) {
  border-bottom: 1px solid #cacaca;
  padding-bottom: 1.563rem;
}

.galleryItemBar .itemImg {
  width: 100%;
  height: 15rem;
  background-color: transparent;
  float: none;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemBar .itemText {
  margin-left: 0;
  cursor: default;
  opacity: 1;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemBar .itemText h3 {
  margin-top: 0.7815rem;
  margin-bottom: 0.7815rem;
}

.galleryItemBar .moreItem {
  height: auto;
  color: #c0c0c0;
  position: relative;
  margin: auto;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryItemBar .moreItem:visited {
  color: #c0c0c0;
}

.galleryItemBar:hover .itemImg img, .galleryItemBar:focus .itemImg img {
  max-width: 110%;
  left: -5%;
  -webkit-transition: .5s;
  -o-transition: .5s;
  transition: .5s;
}

.galleryItemBar:hover .itemImg img.noHover, .galleryItemBar:focus .itemImg img.noHover {
  max-width: 100%;
  left: 0;
}

.galleryItemBar:hover .moreItem, .galleryItemBar:focus .moreItem {
  -webkit-animation-name: buzz-out;
          animation-name: buzz-out;
  -webkit-animation-duration: .75s;
          animation-duration: .75s;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
  text-decoration: none;
  color: #ffffff !important;
}

.galleryItemBar:hover .moreItem:before, .galleryItemBar:focus .moreItem:before {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

@media (min-width: 768px) {
  .galleryItemBar {
    max-width: 100%;
    margin-top: 0;
  }
  .galleryItemBar .itemImg {
    width: 210px;
    height: 10rem;
    float: left;
  }
  .galleryItemBar .itemText {
    margin-left: 250px;
    opacity: .5;
    cursor: default;
  }
  .galleryItemBar .itemText h3 {
    margin-top: 0;
  }
  .galleryItemBar .moreItem {
    position: relative;
    float: right;
  }
  .galleryItemBar:hover {
    opacity: 1;
    -webkit-transition: all .5s;
    -o-transition: all .5s;
    transition: all .5s;
  }
  .galleryItemBar:hover .itemText {
    opacity: 1;
  }
}

.moreItem {
  margin-bottom: 0;
  font-size: 0.875rem;
}

@media (min-width: 768px) {
  .moreItem {
    font-size: 1rem;
  }
}

.moreItem:hover, .moreItem:hover:focus {
  border-bottom-color: #cacaca;
}

.itemImg {
  display: block;
  height: 10rem;
  width: 100%;
  overflow: hidden;
  background-color: #f2f3f4;
  position: relative;
}

.itemImg img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  -o-object-fit: contain;
     object-fit: contain;
  margin: auto;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.itemTitle, .itemUsedTitle {
  color: #000000;
  text-decoration: none;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryPhoto {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.galleryPhotoItem {
  display: block;
  max-width: 250px;
  width: 250px;
  height: 12.5rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.563rem;
  position: relative;
  overflow: hidden;
  -webkit-transform: perspective(1px) translateZ(0);
          transform: perspective(1px) translateZ(0);
  -webkit-box-shadow: 0 0 1px transparent;
          box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
       -o-transition-duration: 0.3s;
          transition-duration: 0.3s;
  -webkit-transition-property: -webkit-box-shadow, -webkit-transform;
  transition-property: -webkit-box-shadow, -webkit-transform;
  -o-transition-property: box-shadow, transform;
  transition-property: box-shadow, transform;
  transition-property: box-shadow, transform, -webkit-box-shadow, -webkit-transform;
}

.galleryPhotoItem img {
  max-width: -webkit-max-content;
  max-width: -moz-max-content;
  max-width: max-content;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.galleryPhotoItem:hover {
  -webkit-box-shadow: 0 10px 10px -10px rgba(59, 23, 88, 0.8);
          box-shadow: 0 10px 10px -10px rgba(59, 23, 88, 0.8);
  -webkit-transform: scale(1.05);
      -ms-transform: scale(1.05);
          transform: scale(1.05);
}

@media (min-width: 480px) {
  .galleryPhotoItem {
    width: calc(50% - 1.56rem);
    margin-left: .78rem;
    margin-right: .78rem;
  }
}

@media (min-width: 640px) {
  .galleryPhotoItem {
    width: calc(100% / 3 - 1.56rem);
  }
}

@media (min-width: 768px) {
  .galleryPhotoItem {
    width: calc(50% - 1.56rem);
  }
}

@media (min-width: 1024px) {
  .galleryPhotoItem {
    width: calc(100% / 3 - 1.56rem);
  }
}

@media (min-width: 1280px) {
  .galleryPhotoItem {
    width: calc(25% - 1.56rem);
  }
}

.service .popular, servicePage .popular {
  margin: 0 auto;
}

.servicePage .popular {
  margin-top: 1.563rem;
}

.itemUsedImg {
  background-position: center center;
  background-repeat: no-repeat;
  display: block;
  height: 6.252rem;
  width: 6.252rem;
  overflow: hidden;
  position: relative;
  border: 1px solid #cacaca;
  float: left;
}

.itemUsedImg img {
  opacity: .2;
}

.itemUsedTitle {
  width: calc(100% - 110px);
  height: 3.8rem;
  overflow: hidden;
  float: right;
  font-size: 0.875rem;
  line-height: 1.563rem;
  line-height: 1.25rem;
}

.itemUsedPrice {
  font-size: 0.875rem;
  line-height: 1.563rem;
  line-height: 1.25rem;
  color: #ef4482;
  position: absolute;
  left: 110px;
  bottom: 0;
}

.carousel-similar {
  width: 100%;
  position: relative;
  overflow: hidden;
  padding-bottom: 3.126rem;
}

.carousel-similar .slick-prev,
.carousel-similar .slick-next {
  cursor: pointer;
  position: absolute;
  display: block;
  top: auto;
  bottom: -1.563rem;
  height: 40px;
  width: 40px;
  background: white;
  color: transparent;
  padding: 0;
  border: 1px solid #cacaca;
  border-radius: 0;
  line-height: 0;
  font-size: 0;
  outline: none;
  z-index: 19;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.carousel-similar .slick-prev:before,
.carousel-similar .slick-next:before {
  content: '';
  border-top: 1px solid #777777;
  border-right: 1px solid #777777;
  position: absolute;
  width: 10px;
  height: 10px;
  left: 50%;
  top: 50%;
  margin-left: -3px;
  margin-top: -5px;
}

.carousel-similar .slick-prev:hover,
.carousel-similar .slick-next:hover {
  outline: none;
  border-color: #513369;
  background: #513369;
  color: transparent;
}

.carousel-similar .slick-prev:hover:before,
.carousel-similar .slick-next:hover:before {
  border-top: 1px solid white;
  border-right: 1px solid white;
}

.carousel-similar .slick-prev.slick-disabled,
.carousel-similar .slick-next.slick-disabled {
  opacity: 1;
}

.carousel-similar .slick-prev {
  left: 50%;
  margin-left: -39px;
}

.carousel-similar .slick-prev:before {
  -webkit-transform: rotate(225deg);
      -ms-transform: rotate(225deg);
          transform: rotate(225deg);
}

[dir="rtl"] .carousel-similar .slick-prev {
  left: auto;
  right: 24px;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.carousel-similar .slick-next {
  right: 50%;
  margin-right: -40px;
}

.carousel-similar .slick-next:before {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  margin-left: -7px !important;
}

[dir="rtl"] .carousel-similar .slick-next {
  left: 24px;
  right: auto;
  -webkit-transform: rotate(225deg);
      -ms-transform: rotate(225deg);
          transform: rotate(225deg);
}

.similarItemTile {
  width: 100%;
  float: left;
  padding-right: 0;
  margin-left: 0;
  margin-bottom: 1.563rem;
}

.similarItemTile .itemImg {
  margin-bottom: 0.7815rem;
}

.similarItemTile:hover .itemTitle, .similarItemTile:hover .itemUsedTitle, .similarItemTile:focus .itemTitle, .similarItemTile:focus .itemUsedTitle {
  color: #ef4482;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.similarItemTile:hover .itemImg img, .similarItemTile:focus .itemImg img {
  max-width: 110%;
  left: -5%;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.similarItemTile:hover .itemUsedImg, .similarItemTile:focus .itemUsedImg {
  background-color: #ffffff;
}

.similarItemTile:hover .itemUsedImg img, .similarItemTile:focus .itemUsedImg img {
  opacity: 0;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

@media (min-width: 480px) {
  .similarItemTile {
    padding-right: 1.5rem;
  }
}

.carousel-show {
  margin-bottom: 1.563rem;
  width: 100%;
  position: relative;
  overflow: hidden;
  padding-bottom: 3.126rem;
}

.carousel-show .slick-prev,
.carousel-show .slick-next {
  cursor: pointer;
  position: absolute;
  display: block;
  top: auto;
  bottom: -1.563rem;
  height: 40px;
  width: 40px;
  background: white;
  color: transparent;
  padding: 0;
  border: 1px solid #cacaca;
  border-radius: 0;
  line-height: 0;
  font-size: 0;
  outline: none;
  z-index: 19;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.carousel-show .slick-prev:before,
.carousel-show .slick-next:before {
  content: '';
  border-top: 1px solid #777777;
  border-right: 1px solid #777777;
  position: absolute;
  width: 10px;
  height: 10px;
  left: 50%;
  top: 50%;
  margin-left: -3px;
  margin-top: -5px;
}

.carousel-show .slick-prev:hover,
.carousel-show .slick-next:hover {
  outline: none;
  border-color: #513369;
  background: #513369;
  color: transparent;
}

.carousel-show .slick-prev:hover:before,
.carousel-show .slick-next:hover:before {
  border-top: 1px solid white;
  border-right: 1px solid white;
}

.carousel-show .slick-prev.slick-disabled,
.carousel-show .slick-next.slick-disabled {
  opacity: 1;
}

.carousel-show .slick-prev {
  left: 50%;
  margin-left: -39px;
}

.carousel-show .slick-prev:before {
  -webkit-transform: rotate(225deg);
      -ms-transform: rotate(225deg);
          transform: rotate(225deg);
}

[dir="rtl"] .carousel-show .slick-prev {
  left: auto;
  right: 24px;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.carousel-show .slick-next {
  right: 50%;
  margin-right: -40px;
}

.carousel-show .slick-next:before {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  margin-left: -7px !important;
}

[dir="rtl"] .carousel-show .slick-next {
  left: 24px;
  right: auto;
  -webkit-transform: rotate(225deg);
      -ms-transform: rotate(225deg);
          transform: rotate(225deg);
}

.carousel-show .galleryItemTile {
  width: 100%;
  margin: 0;
  margin-bottom: 1.563rem;
}

@media (min-width: 480px) {
  .carousel-show .galleryItemTile {
    width: 100%;
    margin-left: 0;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .carousel-show .galleryItemTile {
    width: 100%;
  }
  .carousel-show .galleryItemTile:nth-child(2n+1) {
    margin-left: 0;
  }
  .carousel-show .galleryItemTile:nth-child(3n+1) {
    margin-left: 0;
  }
}

.video {
  float: none;
  position: relative;
  width: 100%;
  margin-bottom: 1.563rem;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video:nth-child(2n+1) {
  margin-left: 0;
}

.video iframe, .video object, .video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media (min-width: 480px) {
  .video {
    width: 48%;
    float: left;
    padding-bottom: 27%;
  }
  .video:nth-child(2n) {
    margin-left: 4%;
  }
}

.leftSide {
  width: 100%;
  float: none;
  padding: 1.563rem 0;
}

.leftSide + .content {
  margin-left: 0;
  padding-top: 0;
}

@media (min-width: 768px) {
  .leftSide {
    width: 240px;
    float: left;
  }
  .leftSide + .product, .leftSide + .content {
    margin-left: 300px;
    padding-top: 0.521rem;
  }
}

.orderLeft {
  display: block;
  width: 100%;
  padding: 0.7815rem 1.563rem;
  background-color: #3b1758;
  border-color: #3b1758;
  color: #ffffff;
  font-size: 1rem;
  font-family: "Bauhaus", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
}

@media (max-width: 767px) {
  .orderLeft {
    display: none;
  }
}

.catalog {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-top: 2.3445rem;
}

.catalogMenu {
  width: 100%;
  margin-bottom: 1.563rem;
  margin-right: 0;
}

.catalogMenu:nth-child(2n+1) {
  margin-right: 0;
}

@media (min-width: 480px) {
  .catalogMenu {
    width: calc(50% - (1.563/2)*1rem);
    margin-right: 1.563rem;
  }
  .catalogMenu:nth-child(2n) {
    margin-right: 0;
  }
  .catalogMenu:nth-child(2n+1) {
    margin-right: 1.563rem;
  }
}

@media (min-width: 1024px) {
  .catalogMenu {
    width: calc(100%/3 - 1.563*2rem);
    margin-right: 1.563rem;
  }
  .catalogMenu:nth-child(2n) {
    margin-right: 1.563rem;
  }
  .catalogMenu:nth-child(3n) {
    margin-right: 0;
  }
}

.catalogMenuTitle {
  padding: 0.7815rem;
  color: #ffffff;
  background-color: rgba(0, 0, 0, 0.3);
}

.catalogMenuTitle svg {
  float: left;
}

.catalogMenuTitle h5 {
  margin-left: 36px;
}

.subcatalogMenu {
  padding: 0.7815rem;
}

.subcatalogMenu a, .subcatalogMenu a:hover, .subcatalogMenu a:focus, .subcatalogMenu a:visited {
  display: inline-block;
  position: relative;
  padding: 0.39075rem 0.7815rem;
  color: #ffffff;
  opacity: 1;
}

.subcatalogMenu a:before, .subcatalogMenu a:hover:before, .subcatalogMenu a:focus:before, .subcatalogMenu a:visited:before {
  content: '';
  background-color: #ffffff;
  display: block;
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  top: 16px;
  left: 0;
}

.subcatalogMenu a:hover, .subcatalogMenu a:focus {
  text-decoration: none;
  opacity: .6;
}

.product {
  overflow: auto;
  position: relative;
  margin-bottom: 1.563rem;
}

.productTitle {
  width: 100%;
  float: none;
  text-align: center;
}

@media (min-width: 1024px) {
  .productTitle {
    width: 35%;
    float: left;
  }
}

.productImg {
  width: 100%;
  float: none;
  padding: 1.563rem;
  border: 1px solid #cacaca;
}

@media (min-width: 1024px) {
  .productImg {
    width: 60%;
    float: right;
  }
}

.productImg img {
  margin: auto;
}

.productThumb {
  display: none;
}

@media (min-width: 1024px) {
  .productThumb {
    display: block;
    overflow: auto;
    margin: 1.563rem 0;
  }
}

.thumbnail {
  float: left;
  cursor: pointer;
  overflow: hidden;
  margin: 10px;
  width: 80px;
  height: 80px;
}

.thumbnail img {
  display: inline-block;
  border: 1px solid #cacaca;
  padding: 10px;
}

.productPrice {
  font-size: 1.563rem;
  line-height: 1.563rem;
  color: #ef4482;
  font-weight: bold;
}

.productPrice span {
  font-weight: normal;
  font-size: 1rem;
}

.orderProduct {
  width: 160px;
}

.productDescription {
  padding-top: 1.563rem;
  border-top: 1px solid #cacaca;
}

.productDescription h1, .productDescription h2, .productDescription h3 {
  font-size: 1.25rem;
  line-height: 1.563rem;
  font-family: "Roboto", sans-serif;
  color: #777777;
  text-align: left;
  margin-bottom: 0;
  margin-top: 0.7815rem;
  padding-left: 0;
  font-weight: 500;
  border: none;
}

.subcatalog {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.subcatalog + .content {
  padding-bottom: 0;
}

input.tabControl {
  display: none;
}

input.tabControl + label {
  display: inline-block;
  margin: 0.7815rem 0.5rem 0.7815rem 0;
  padding-right: .5rem;
  font-weight: bold;
  text-align: center;
  color: #c0c0c0;
  border-right: 1px solid #cacaca;
}

input.tabControl + label:hover {
  color: #000000;
  cursor: pointer;
}

input.tabControl:first-child + label {
  padding-left: .5rem;
  border-left: 1px solid #cacaca;
}

input.tabControl:checked + label {
  color: #000000;
}

#Description:checked ~ #tabDescription,
#List:checked ~ #tabList,
#Schema:checked ~ #tabSchema,
#Advantages:checked ~ #tabAdvantages,
#Price:checked ~ #tabPrice {
  display: block;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.tabContent {
  width: 100%;
  display: none;
  padding-top: 3.126rem;
  padding-bottom: 1.563rem;
  border-top: 1px solid #cacaca;
  -webkit-transition: all .5s;
  -o-transition: all .5s;
  transition: all .5s;
}

.tabContent .gallery {
  border-bottom: 1px solid #cacaca;
}

.buttonPortfolio {
  margin: 1.563rem auto;
  text-align: center;
}

.buttonPortfolio .button {
  border: none;
}

.buttonPortfolio a, .buttonPortfolio a:hover, .buttonPortfolio a:focus, .buttonPortfolio a:visited {
  background-color: #513369;
  padding: 0.521rem 0.7815rem 0.3126rem;
  color: #ffffff;
  font-family: "Bauhaus", sans-serif;
  font-weight: bold;
  text-transform: uppercase;
  text-decoration: none;
}

.buttonPortfolio a:hover, .buttonPortfolio a:focus {
  background-color: #ef4482;
}

.contactInfo {
  width: 100%;
  float: none;
  padding-right: 0;
  padding-top: 1.563rem;
}

@media (min-width: 768px) {
  .contactInfo {
    width: 50%;
    float: left;
    padding-right: 1.563rem;
  }
}

.contactForm {
  width: 100%;
  margin-left: 0;
  padding-left: 0;
  padding-top: .5rem;
}

@media (min-width: 768px) {
  .contactForm {
    width: 50%;
    margin-left: 50%;
    padding-left: 1.563rem;
  }
}

.contactItem {
  position: relative;
  padding-top: 1px;
  margin-bottom: 1.563rem;
}

.contactItem p {
  margin-left: 30px;
  padding-bottom: 0;
}

.contactItem a, .contactItem a:hover, .contactItem a:focus, .contactItem a:visited {
  display: inline-block;
  width: 100%;
}

.contactItem a, .contactItem a:focus, .contactItem a:visited {
  color: #777777;
}

.contactImg {
  width: 100%;
  height: 15.63rem;
  background: url("/uploads/office.jpg") no-repeat bottom center;
  background-size: cover;
}

#map {
  width: 100%;
  height: 500px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvX3ZhcmlhYmxlcy5zY3NzIiwiY29tcG9uZW50cy9fcmVzZXQuc2NzcyIsInN0eWxlLmNzcyIsImNvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsImNvbXBvbmVudHMvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiY29tcG9uZW50cy9fY29tcG9uZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L19zdS1tYXRoLnNjc3MiLCJjb21wb25lbnRzL19pY29ucy5zY3NzIiwiY29tcG9uZW50cy9fYW5pbWF0aW9uLnNjc3MiLCJwYWdlcy9fbWFpbi5zY3NzIiwicGFnZXMvX25hdi5zY3NzIiwicGFnZXMvX2luZGV4LnNjc3MiLCJwYWdlcy9fZ2FsbGVyeS5zY3NzIiwicGFnZXMvX2NhdGFsb2cuc2NzcyIsInBhZ2VzL19zdWJjYXRhbG9nLnNjc3MiLCJwYWdlcy9fYWJvdXQuc2NzcyIsInBhZ2VzL19jb250YWN0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLG9JQUFZO0FDekJaOzs7Ozs7Ozs7Ozs7O0VBYUUsVUFBUztFQUNULFdBQVU7RUFDVixVQUFTO0VBQ1QsZ0JBQWU7RUFDZixjQUFhO0VBQ2IseUJBQXdCO0NBQ3pCOztBQUVEOzs7OztHQUtHO0FBRUg7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFjO0NBQ2Y7O0FBRUQ7RUFDRSxlQUFjO0NBQ2Y7O0FBRUQ7RUFDRSxpQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxhQUFZO0NBQ2I7O0FBRUQ7O0VBRUUsWUFBVztFQUNYLGNBQWE7Q0FDZDs7QUFFRDtFQUNFLDBCQUF5QjtFQUN6QixrQkFBaUI7Q0FDbEI7O0FBRUQsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7OztHQUlHO0FBRUg7RUFDRSxrQkFBaUI7RUFBRyxPQUFPO0VBQzNCLDJCQUEwQjtF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QWdCO0lBQ2hCLHVCakI2QytCO0dpQjNDbEM7Q2ZxckdBOztBZXByR0Q7RUFDRSxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLHdCakJ1Q2lDO0NpQnhCbEM7O0FBbEJEO0VBTUksa0JBQWlCO0VBQ2pCLGtCQUFpQjtDQUNsQjs7QUFSSDtFQVdJLHNCQUFxQjtFQUNyQixZQUFXO0NBQ1o7O0FBYkg7RUFnQkksZWpCL0JZO0NpQmdDYjs7QUFHSDtFQUNFLFlBQVc7RUFDWCxpQkFBdUI7RUFDdkIsK0RBQThEO0VBQzlELHVCQUFzQjtDQUN2Qjs7QUFFRDtFQUNFLFlBQVc7RUFDWCxjQUFhO0NBQ2QiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9TdXN5XG4kc3VzeTogKFxuICAnY29sdW1ucyc6IHN1c3ktcmVwZWF0KDEyKVxuKTtcblxuLy8gQ29sb3JzXG4gICRiZzogI2ZmZmZmZjtcbiAgJGJnTGlnaHQ6ICNmMmYzZjQ7XG4gICRiZ0Rhcms6ICM1MTMzNjk7XG4gICRiZ0RhcmtlbjogIzNiMTc1ODtcbiAgJGxpbmU6ICNjYWNhY2E7XG4gICR0ZXh0OiAjNzc3Nzc3O1xuICAkdGV4dExpZ2h0OiAjYzBjMGMwO1xuICAkdGV4dERhcms6ICM3Nzc3Nzc7XG4gICR0ZXh0VGl0bGU6ICMwMDAwMDA7XG4gICR0ZXh0U2xvZ2FuOiAjY2NjZWY3O1xuICAkYWN0aXZlOiAjZWY0NDgyO1xuICAkY29sb3JTb3VuZDogI2ZjNWI4ZDtcbiAgJGNvbG9yTGlnaHQ6ICNmY2Q0MjQ7XG4gICRjb2xvclNjZW5lOiAjYTM2YWNiO1xuICAkY29sb3JNZWRpYTogIzc2OWJhMztcbiAgJGNvbG9yREo6ICNjNzU5YWY7XG4gICRjb2xvckFydGlzdHM6ICM1MzYxYWQ7XG5cbi8vIEZvbnRzXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzoxMDAsMTAwaSwzMDAsMzAwaSw0MDAsNDAwaSw1MDAsNTAwaSw3MDAsNzAwaSw5MDAsOTAwaSZzdWJzZXQ9Y3lyaWxsaWMnKTtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQmF1aGF1cyc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9CYXVoYXVzTGlnaHQvQmF1aGF1c0xpZ2h0Qy5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0JhdWhhdXNMaWdodC9CYXVoYXVzTGlnaHRDLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL0JhdWhhdXNMaWdodC9CYXVoYXVzTGlnaHRDLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9CYXVoYXVzTGlnaHQvQmF1aGF1c0xpZ2h0Qy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnLi4vZm9udHMvQmF1aGF1c0xpZ2h0L0JhdWhhdXNMaWdodEMuc3ZnI0JhdWhhdXNMaWdodEMnKSBmb3JtYXQoJ3N2ZycpLFxuICB1cmwoJy4uL2ZvbnRzL0JhdWhhdXNMaWdodC9CYXVoYXVzTGlnaHRDLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQmF1aGF1cyc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvQmF1aGF1c01lZGl1bS9CYXVoYXVzTWVkaXVtQy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLnN2ZyNCYXVoYXVzTWVkaXVtQycpIGZvcm1hdCgnc3ZnJyksXG4gIHVybCgnLi4vZm9udHMvQmF1aGF1c01lZGl1bS9CYXVoYXVzTWVkaXVtQy5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4kZm9udEJhc2U6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuJGZvbnREZWNvcjogJ0JhdWhhdXMnLCBzYW5zLXNlcmlmO1xuXG4kYmFzZS1mb250LXNpemU6IDE7XG4kYmFzZS1saW5lLWhlaWdodDogMS41NjM7XG5cbiR0eXBlLXNjYWxlOiAoXG4gICAgICAgIC0yOiAkYmFzZS1mb250LXNpemUgKiAwLjc4cmVtLCAgLy8gZXh0cmEgc21hbGwgdGV4dFxuICAgICAgICAtMTogJGJhc2UtZm9udC1zaXplICogMC44NzVyZW0sICAvLyBzbWFsbCB0ZXh0XG4gICAgICAgIDA6ICRiYXNlLWZvbnQtc2l6ZSAqIDFyZW0sICAvLyBib2R5IHRleHRcbiAgICAgICAgMTogJGJhc2UtZm9udC1zaXplICogMS4yNXJlbSwgIC8vIGxhcmdlIHRleHQgKGgzKVxuICAgICAgICAyOiAkYmFzZS1mb250LXNpemUgKiAxLjU2M3JlbSwgIC8vIGgyXG4gICAgICAgIDM6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuOTUzcmVtICAgLy8gaDFcbik7XG4kbGluZS1oZWlnaHQ6IChcbiAgICAgICAgLTI6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMXJlbSxcbiAgICAgICAgLTE6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMXJlbSxcbiAgICAgICAgMDogJGJhc2UtbGluZS1oZWlnaHQgKiAxcmVtLFxuICAgICAgICAxOiAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0gLFxuICAgICAgICAyOiAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0sXG4gICAgICAgIDM6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMS41cmVtXG4pO1xuXG5AZnVuY3Rpb24gbGluZUhlaWdodCgkbGV2ZWw6IDApIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRsaW5lLWhlaWdodCwgJGxldmVsKTtcbn1cbkBmdW5jdGlvbiB0eXBlU2NhbGUoJGxldmVsOiAwKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkdHlwZS1zY2FsZSwgJGxldmVsKTtcbn1cblxuLy8gQnJlYWtwb2ludHNcblxuJHh4czogMzYwcHg7XG4keHM6IDQ4MHB4O1xuJHNtOiA2NDBweDtcbiRtZDogNzY4cHg7XG4kbGc6IDEwMjRweDtcbiR4bDogMTI4MHB4O1xuJHh4bDogMTM2NnB4O1xuXG4vLyBMaWJyYXJpZXNcblxuJWNsZWFyZml4IHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuJW1lbnVMaSB7XG4gIGxpe1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuJWljb24ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbnMucG5nXCIpIG5vLXJlcGVhdDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cblxuXG4iLCLvu79odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGUsIHEge1xuICBxdW90ZXM6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjYuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4geyAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctIGFuZCBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8gMVxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyAyXG59XG4qL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IGlucHV0IHN0eWxpbmcgZnJvbSBXZWJLaXQgKHJvdW5kZWQgY29ybmVycyBhbmQgaW5zZXQgc2hhZG93cylcbiAqL1xuXG5pbnB1dDpub3QoW3R5cGU9Y2hlY2tib3hdKSxcbmlucHV0Om5vdChbdHlwZT1yYWRpb10pLFxudGV4dGFyZWEge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscywgLyogMSAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzoxMDAsMTAwaSwzMDAsMzAwaSw0MDAsNDAwaSw1MDAsNTAwaSw3MDAsNzAwaSw5MDAsOTAwaSZzdWJzZXQ9Y3lyaWxsaWNcIik7XG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi8qISBub3JtYWxpemUuY3NzIHY2LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvIDFcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8gMlxufVxuKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IGlucHV0IHN0eWxpbmcgZnJvbSBXZWJLaXQgKHJvdW5kZWQgY29ybmVycyBhbmQgaW5zZXQgc2hhZG93cylcbiAqL1xuaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSksXG5pbnB1dDpub3QoW3R5cGU9cmFkaW9dKSxcbnRleHRhcmVhIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0JhdWhhdXMnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0JhdWhhdXNMaWdodC9CYXVoYXVzTGlnaHRDLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9CYXVoYXVzTGlnaHQvQmF1aGF1c0xpZ2h0Qy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvQmF1aGF1c0xpZ2h0L0JhdWhhdXNMaWdodEMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9CYXVoYXVzTGlnaHQvQmF1aGF1c0xpZ2h0Qy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0JhdWhhdXNMaWdodC9CYXVoYXVzTGlnaHRDLnN2ZyNCYXVoYXVzTGlnaHRDXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvQmF1aGF1c0xpZ2h0L0JhdWhhdXNMaWdodEMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdCYXVoYXVzJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9CYXVoYXVzTWVkaXVtL0JhdWhhdXNNZWRpdW1DLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvQmF1aGF1c01lZGl1bS9CYXVoYXVzTWVkaXVtQy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0JhdWhhdXNNZWRpdW0vQmF1aGF1c01lZGl1bUMuc3ZnI0JhdWhhdXNNZWRpdW1DXCIpIGZvcm1hdChcInN2Z1wiKSwgdXJsKFwiLi4vZm9udHMvQmF1aGF1c01lZGl1bS9CYXVoYXVzTWVkaXVtQy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uY29udGFpbmVyOmJlZm9yZSwgLmhlYWRlcjpiZWZvcmUsIC5mb290ZXI6YmVmb3JlLCAubmF2OmJlZm9yZSwgLmJyZWFkY3J1bWJzOmJlZm9yZSwgLmluZm86YmVmb3JlLCAud3JhcHBlcjpiZWZvcmUsIC5wYWdlOmJlZm9yZSwgLmluZGV4UG9ydGZvbGlvOmJlZm9yZSwgLmNhcm91c2VsLXNpbWlsYXI6YmVmb3JlLCAuY2Fyb3VzZWwtc2hvdzpiZWZvcmUsIC5jb250YWluZXI6YWZ0ZXIsIC5oZWFkZXI6YWZ0ZXIsIC5mb290ZXI6YWZ0ZXIsIC5uYXY6YWZ0ZXIsIC5icmVhZGNydW1iczphZnRlciwgLmluZm86YWZ0ZXIsIC53cmFwcGVyOmFmdGVyLCAucGFnZTphZnRlciwgLmluZGV4UG9ydGZvbGlvOmFmdGVyLCAuY2Fyb3VzZWwtc2ltaWxhcjphZnRlciwgLmNhcm91c2VsLXNob3c6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCJcIjtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi5jb250YWluZXI6YWZ0ZXIsIC5oZWFkZXI6YWZ0ZXIsIC5mb290ZXI6YWZ0ZXIsIC5uYXY6YWZ0ZXIsIC5icmVhZGNydW1iczphZnRlciwgLmluZm86YWZ0ZXIsIC53cmFwcGVyOmFmdGVyLCAucGFnZTphZnRlciwgLmluZGV4UG9ydGZvbGlvOmFmdGVyLCAuY2Fyb3VzZWwtc2ltaWxhcjphZnRlciwgLmNhcm91c2VsLXNob3c6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1lbnVUb3AgbGksIC5sYW5nIHVsIGxpLCAuc29jaWFsIHVsIGxpLCAuYnJlYWRjcnVtYnMgdWwgbGksIGRpdi5wYWdpbmF0aW9uIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnVUb3AgbGkgYTpob3ZlciwgLmxhbmcgdWwgbGkgYTpob3ZlciwgLnNvY2lhbCB1bCBsaSBhOmhvdmVyLCAuYnJlYWRjcnVtYnMgdWwgbGkgYTpob3ZlciwgZGl2LnBhZ2luYXRpb24gbGkgYTpob3ZlciwgLm1lbnVUb3AgbGkgYTpmb2N1cywgLmxhbmcgdWwgbGkgYTpmb2N1cywgLnNvY2lhbCB1bCBsaSBhOmZvY3VzLCAuYnJlYWRjcnVtYnMgdWwgbGkgYTpmb2N1cywgZGl2LnBhZ2luYXRpb24gbGkgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuaDEsIGgyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYzcmVtO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS41NjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiQmF1aGF1c1wiLCBzYW5zLXNlcmlmO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNlZjQ0ODI7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkJhdWhhdXNcIiwgc2Fucy1zZXJpZjtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZWY0NDgyO1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDEuNTYzcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbiAgfVxufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTYzcmVtO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYzcmVtO1xufVxuXG5hLCBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbiAgfVxufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG5iLCBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuaSwgZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbnAsIHVsLCBvbCwgcHJlLCB0YWJsZSwgYmxvY2txdW90ZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMC43ODE1cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgcCwgdWwsIG9sLCBwcmUsIHRhYmxlLCBibG9ja3F1b3RlIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTYzcmVtO1xuICB9XG59XG5cbnVsIHVsLCBvbCBvbCwgdWwgb2wsIG9sIHVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmhyLCAuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xufVxuXG5zdWIsIHN1cCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbjo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYzBjMGMwO1xuICBvcGFjaXR5OiAxO1xufVxuXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbn1cblxuYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbmJ1dHRvbjphY3RpdmUsIGlucHV0OmFjdGl2ZSwgdGV4dGFyZWE6YWN0aXZlLCBzZWxlY3Q6YWN0aXZlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuYnV0dG9uOmZvY3VzLCBpbnB1dDpmb2N1cywgdGV4dGFyZWE6Zm9jdXMsIHNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbmJ1dHRvbiwgaW5wdXQsIHRleHRhcmVhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgdGV4dGFyZWEge1xuICBwYWRkaW5nOiAwLjc4MTVyZW0gMS42OTQ5MiU7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLCB0ZXh0YXJlYTpmb2N1cyB7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbi5idXR0b24sIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzkwNzVyZW0gMC43ODE1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG4uYnV0dG9uOmJlZm9yZSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjQ0ODI7XG4gIGJvcmRlci1jb2xvcjogI2VmNDQ4MjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbn1cblxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cywgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmJ1dHRvbjpob3ZlcjpiZWZvcmUsIC5idXR0b246Zm9jdXM6YmVmb3JlLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyOmJlZm9yZSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1czpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY0NDgyO1xuICBib3JkZXItY29sb3I6ICNlZjQ0ODI7XG59XG5cbi5mb3JtRmVlZGJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMS41NjNyZW0gMDtcbn1cblxuLmZvcm1GZWVkYmFjayB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmZvcm1GZWVkYmFjayBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mb3JtRmVlZGJhY2sgbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW46IDAuNTIxcmVtO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xufVxuXG4uZm9ybUZlZWRiYWNrIGRpdiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA3MHB4O1xufVxuXG4uZm9ybUZlZWRiYWNrIGRpdjpsYXN0LW9mLXR5cGUge1xuICBoZWlnaHQ6IDIwNXB4O1xufVxuXG4uZm9ybUZlZWRiYWNrIC5hY3RpdmUge1xuICBjb2xvcjogI2MwYzBjMDtcbiAgdG9wOiAtMjBweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBwYWRkaW5nOiAwIDAuNzgxNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbn1cblxuLmZvcm1Db250cm9sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAxLjU2M3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cblxuLmZvcm1Db250cm9sOmZvY3VzICsgbGFiZWwge1xuICBjb2xvcjogI2MwYzBjMDtcbiAgdG9wOiAtMjBweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBwYWRkaW5nOiAwIDAuNzgxNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbn1cblxuLmZvcm1Db250cm9sOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xufVxuXG4uZW52ZWxvcCB7XG4gIHRvcDogMnB4O1xufVxuXG5Aa2V5ZnJhbWVzIHNoaW5lIHtcbiAgMTAwJSB7XG4gICAgbGVmdDogMTI1JTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlLWluIHtcbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAyNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICB9XG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBidXp6LW91dCB7XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpO1xuICB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZyk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZSgxZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpO1xuICB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDFkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpIHJvdGF0ZSgtMWRlZyk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgwKTtcbiAgfVxufVxuXG4qIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbio6YmVmb3JlLCAqOmFmdGVyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbmh0bWwsIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmNvbnRhaW5lciwgLmhlYWRlciwgLmZvb3RlciwgLm5hdiwgLmJyZWFkY3J1bWJzLCAuaW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLndyYXBwZXIsIC5wYWdlLCAuaW5kZXhQb3J0Zm9saW8ge1xuICB3aWR0aDogOTYuNjEwMTclO1xuICBtYXJnaW46IDAgMS42OTQ5MiU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgLndyYXBwZXIsIC5wYWdlLCAuaW5kZXhQb3J0Zm9saW8ge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5tYWluIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmEuc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbmEuc3ZnOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5iZ0xpZ2h0LCAuYnJlYWRjcnVtYnMsIC5pbmZvTGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjQ7XG59XG5cbi5iZ0RhcmssIC5pbmZvTGlua0Rhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEzMzY5O1xufVxuXG4uYmdEYXJrZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2IxNzU4O1xufVxuXG4vKlxuISpiYXNlbGluZSBncmlkKiFcbi5tYWluIHtcbnBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIC8vYmFja2dyb3VuZDogc3VzeS1zdmctZ3JpZCgpIG5vLXJlcGVhdCBzY3JvbGw7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxufVxuKi9cbi5oZWFkZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5oZWFkZXIgLnNvY2lhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5zb2NpYWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5oZWFkZXIgLnRvcExpbmUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDUwO1xuICBvcGFjaXR5OiAuOTtcbn1cblxuLmhlYWRlciAudG9wTGluZSArIC5jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogNTBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXIgLnRvcExpbmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5oZWFkZXIgLnRvcExpbmUgKyAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuXG4ubG9nbywgLnNsb2dhbiB7XG4gIG1pbi1oZWlnaHQ6IDQuNjg5cmVtO1xuICBsaW5lLWhlaWdodDogNC42ODlyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubG9nbywgLnNsb2dhbiB7XG4gICAgbWluLWhlaWdodDogNi4yNTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDYuMjUycmVtO1xuICB9XG59XG5cbi5sb2dvIHtcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbjogMC43ODE1cmVtIGF1dG8gMDtcbiAgZmxvYXQ6IG5vbmU7XG59XG5cbi5sb2dvIG9iamVjdCB7XG4gIHdpZHRoOiAxNTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxvZ28ge1xuICAgIHdpZHRoOiAyMy43Mjg4MSU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5zbG9nYW4ge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNsb2dhbiBwIHtcbiAgbWFyZ2luOiBhdXRvO1xuICBjb2xvcjogI2NjY2VmNztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogXCJCYXVoYXVzXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5zbG9nYW4gcCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnNsb2dhbiBwIHtcbiAgICBmb250LXNpemU6IDEuNTYzcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2xvZ2FuIHtcbiAgICB3aWR0aDogNDkuMTUyNTQlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi50ZWxUb3Age1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMy4xMjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2M3JlbTtcbn1cblxuLnRlbFRvcCBwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDAuNzgxNXJlbTtcbn1cblxuLnRlbFRvcCBhLCAudGVsVG9wIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZWxUb3AgYTpub3QoOmZpcnN0LW9mLXR5cGUpLCAudGVsVG9wIGE6dmlzaXRlZDpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xufVxuXG4udGVsVG9wIGE6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUsIC50ZWxUb3AgYTp2aXNpdGVkOmZpcnN0LW9mLXR5cGU6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEzMzY5O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbl9waG9uZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogNzAlO1xuICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4udGVsVG9wIGE6aG92ZXIsIC50ZWxUb3AgYTpmb2N1cyB7XG4gIGNvbG9yOiAjY2NjZWY3O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlbFRvcCB7XG4gICAgd2lkdGg6IDIzLjcyODgxJTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWluLWhlaWdodDogNi4yNTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDYuMjUycmVtO1xuICB9XG4gIC50ZWxUb3AgcCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbiAgLnRlbFRvcCBhLCAudGVsVG9wIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmZvb3RlciB7XG4gIHBhZGRpbmctdG9wOiAxLjU2M3JlbTtcbn1cblxuLmZvb3RlciBwLCAuZm9vdGVyIGEsIC5mb290ZXIgYTpob3ZlciwgLmZvb3RlciBhOmZvY3VzLCAuZm9vdGVyIGE6dmlzaXRlZCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjY2NjZWY3O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5mb290ZXIgYTpob3ZlciwgLmZvb3RlciBhOmZvY3VzIHtcbiAgY29sb3I6ICNlZjQ0ODI7XG59XG5cbi5mb290ZXIgaDIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmZvb3RlciAud3JhcHBlciB7XG4gIHBhZGRpbmc6IDAuNzgxNXJlbSAwO1xufVxuXG4uZm9vdGVyIC5zaWduYXR1cmUtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjc4MTVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyIC5zaWduYXR1cmUtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLmZvb3RlciAuc29jaWFsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmZvb3RlciAuc29jaWFsIHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXIgLnNvY2lhbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogNDAuNjc3OTclO1xuICB9XG59XG5cbi5mb290ZXJDb250YWN0cyB7XG4gIHdpZHRoOiAyODBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZsb2F0OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3RlckNvbnRhY3RzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzIuMjAzMzklO1xuICAgIHBhZGRpbmctdG9wOiAwLjc4MTVyZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5mb290ZXJQYXJ0bmVycyB7XG4gIHdpZHRoOiAyODBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAuNzgxNXJlbSBhdXRvIDA7XG4gIGZsb2F0OiBub25lO1xufVxuXG4uZm9vdGVyUGFydG5lcnMgYSwgLmZvb3RlclBhcnRuZXJzIGE6dmlzaXRlZCB7XG4gIG9wYWNpdHk6IC43O1xufVxuXG4uZm9vdGVyUGFydG5lcnMgYTpob3ZlciwgLmZvb3RlclBhcnRuZXJzIGE6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3RlclBhcnRuZXJzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTUuMjU0MjQlO1xuICAgIHBhZGRpbmctdG9wOiAwLjc4MTVyZW07XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5mb290ZXJDYXRhbG9nLCAuZm9vdGVySW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyQ2F0YWxvZywgLmZvb3RlckluZm8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMy43Mjg4MSU7XG4gICAgcGFkZGluZy10b3A6IDAuNzgxNXJlbTtcbiAgfVxufVxuXG4uZm9vdGVySXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjNyZW07XG59XG5cbi5mb290ZXJJdGVtIHAge1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5mb290ZXJJdGVtIGEsIC5mb290ZXJJdGVtIGE6aG92ZXIsIC5mb290ZXJJdGVtIGE6Zm9jdXMsIC5mb290ZXJJdGVtIGE6dmlzaXRlZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2lnbmF0dXJlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2lnbmF0dXJlIHtcbiAgICB3aWR0aDogNTcuNjI3MTIlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuXG4uY29weSwgLmxpbmVjb3JlIHtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogcmdiYSgyMDQsIDIwNiwgMjQ3LCAwLjcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvcHksIC5saW5lY29yZSB7XG4gICAgd2lkdGg6IDU3LjYyNzEyJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG5cbi5saW5lY29yZSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5saW5lY29yZSBhIHtcbiAgY29sb3I6ICNjY2NlZjc7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5saW5lY29yZSBhOmhvdmVyLCAubGluZWNvcmUgYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmM1YjhkO1xufVxuXG4ubGluZWNvcmUgYTpob3ZlciBzcGFuLCAubGluZWNvcmUgYTpmb2N1cyBzcGFuIHtcbiAgY29sb3I6ICNlZjQ0ODI7XG59XG5cbi5jbGllbnRzTG9nbywgLmNsaWVudHNMb2dvMiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMy4xMjZyZW0gYXV0bztcbn1cblxuLmNsaWVudHNMb2dvIGRpdiwgLmNsaWVudHNMb2dvMiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uY2xpZW50c0xvZ28yIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY2xpZW50c0xvZ28yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4uY2xpZW50TG9nbyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwLjc4MTVyZW07XG59XG5cbi5jbGllbnRMb2dvIGltZyB7XG4gIG1heC1oZWlnaHQ6IDcwcHg7XG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICBvcGFjaXR5OiAuNztcbn1cblxuLmJsb2cge1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0byAxLjU2M3JlbTtcbn1cblxuLmJsb2cgaW1nIHtcbiAgbWFyZ2luOiAwLjc4MTVyZW0gYXV0bztcbiAgbWF4LXdpZHRoOiBub25lO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJsb2dJbWcge1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbn1cblxuLmNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMS41NjNyZW07XG59XG5cbi5jb250ZW50IGEsIC5jb250ZW50IGE6aG92ZXIsIC5jb250ZW50IGE6Zm9jdXMsIC5jb250ZW50IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjNTM2MWFkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5jb250ZW50IGE6aG92ZXIsIC5jb250ZW50IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICNlZjQ0ODI7XG59XG5cbi50aXRsZSB7XG4gIGNvbG9yOiAjNTEzMzY5O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luLXRvcDogMS41NjNyZW07XG59XG5cbi50aXRsZUVzdHJhZGEge1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMy4xMjZyZW0gYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuOTVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjM0NDVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGl0bGVFc3RyYWRhIHtcbiAgICBmb250LXNpemU6IDIuNDRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMuMTI2cmVtO1xuICB9XG59XG5cbi50aXRsZUxpbmsge1xuICBtYXJnaW4tdG9wOiAxLjU2M3JlbTtcbiAgY29sb3I6ICM1MzYxYWQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi50aXRsZUxpbms6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgYm90dG9tOiA0cHg7XG4gIGJvcmRlcjogNnB4IHNvbGlkO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZWY0NDgyO1xufVxuXG4udGl0bGVMaW5rOmhvdmVyIHtcbiAgY29sb3I6ICNlZjQ0ODI7XG59XG5cbi5pbmZvTGluaywgLmluZm9MaW5rRGFyayB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxLjU2M3JlbSAwO1xufVxuXG4uaW5mb0xpbmsgLndyYXBwZXIsIC5pbmZvTGlua0RhcmsgLndyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaW5mb0xpbmsgYSwgLmluZm9MaW5rIGE6aG92ZXIsIC5pbmZvTGluayBhOmZvY3VzLCAuaW5mb0xpbmsgYTp2aXNpdGVkLCAuaW5mb0xpbmtEYXJrIGEsIC5pbmZvTGlua0RhcmsgYTpob3ZlciwgLmluZm9MaW5rRGFyayBhOmZvY3VzLCAuaW5mb0xpbmtEYXJrIGE6dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjUlO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5pbmZvTGluayBhOmhvdmVyLCAuaW5mb0xpbmsgYTpmb2N1cywgLmluZm9MaW5rRGFyayBhOmhvdmVyLCAuaW5mb0xpbmtEYXJrIGE6Zm9jdXMge1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmluZm9MaW5rIC53cmFwcGVyLCAuaW5mb0xpbmtEYXJrIC53cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaW5mb0xpbmsgYSwgLmluZm9MaW5rIGE6aG92ZXIsIC5pbmZvTGluayBhOmZvY3VzLCAuaW5mb0xpbmsgYTp2aXNpdGVkLCAuaW5mb0xpbmtEYXJrIGEsIC5pbmZvTGlua0RhcmsgYTpob3ZlciwgLmluZm9MaW5rRGFyayBhOmZvY3VzLCAuaW5mb0xpbmtEYXJrIGE6dmlzaXRlZCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLmluZm9MaW5rIGE6bm90KDpsYXN0LW9mLXR5cGUpLCAuaW5mb0xpbmsgYTpob3Zlcjpub3QoOmxhc3Qtb2YtdHlwZSksIC5pbmZvTGluayBhOmZvY3VzOm5vdCg6bGFzdC1vZi10eXBlKSwgLmluZm9MaW5rIGE6dmlzaXRlZDpub3QoOmxhc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTpub3QoOmxhc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTpob3Zlcjpub3QoOmxhc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTpmb2N1czpub3QoOmxhc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTp2aXNpdGVkOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNzgxNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxMTksIDExOSwgMTE5LCAwLjE1KTtcbiAgfVxuICAuaW5mb0xpbmsgYTpub3QoOmZpcnN0LW9mLXR5cGUpLCAuaW5mb0xpbmsgYTpob3Zlcjpub3QoOmZpcnN0LW9mLXR5cGUpLCAuaW5mb0xpbmsgYTpmb2N1czpub3QoOmZpcnN0LW9mLXR5cGUpLCAuaW5mb0xpbmsgYTp2aXNpdGVkOm5vdCg6Zmlyc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTpub3QoOmZpcnN0LW9mLXR5cGUpLCAuaW5mb0xpbmtEYXJrIGE6aG92ZXI6bm90KDpmaXJzdC1vZi10eXBlKSwgLmluZm9MaW5rRGFyayBhOmZvY3VzOm5vdCg6Zmlyc3Qtb2YtdHlwZSksIC5pbmZvTGlua0RhcmsgYTp2aXNpdGVkOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgIHBhZGRpbmctdG9wOiAwLjc4MTVyZW07XG4gIH1cbn1cblxuLmluZm9MaW5rRGFyayBhLCAuaW5mb0xpbmtEYXJrIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjY2NjZWY3O1xufVxuXG4uaW5mb0xpbmtEYXJrIGE6aG92ZXIsIC5pbmZvTGlua0RhcmsgYTpmb2N1cyB7XG4gIGNvbG9yOiAjZWY0NDgyO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmluZm9MaW5rRGFyayBhOm5vdCg6bGFzdC1vZi10eXBlKSwgLmluZm9MaW5rRGFyayBhOmhvdmVyOm5vdCg6bGFzdC1vZi10eXBlKSwgLmluZm9MaW5rRGFyayBhOmZvY3VzOm5vdCg6bGFzdC1vZi10eXBlKSwgLmluZm9MaW5rRGFyayBhOnZpc2l0ZWQ6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMDQsIDIwNiwgMjQ3LCAwLjMpO1xuICB9XG59XG5cbi5wb3B1bGFyIHtcbiAgbWF4LXdpZHRoOiA0ODBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvIDEuNTYzcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLnBvcHVsYXIgYSwgLnBvcHVsYXIgYTpob3ZlciwgLnBvcHVsYXIgYTpmb2N1cywgLnBvcHVsYXIgYTp2aXNpdGVkIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5wb3B1bGFyIHtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIH1cbn1cblxuLnBvcHVsYXJJdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYzcmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4ucG9wdWxhckl0ZW06aG92ZXIgLnBvcHVsYXJJbWc6YmVmb3JlLCAucG9wdWxhckl0ZW06Zm9jdXMgLnBvcHVsYXJJbWc6YmVmb3JlIHtcbiAgYW5pbWF0aW9uOiBzaGluZSAuNzVzO1xufVxuXG4ucG9wdWxhckl0ZW06aG92ZXIgLnBvcHVsYXJUaXRsZSwgLnBvcHVsYXJJdGVtOmZvY3VzIC5wb3B1bGFyVGl0bGUge1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAucG9wdWxhckl0ZW0ge1xuICAgIHdpZHRoOiAzMi4yMDMzOSU7XG4gIH1cbn1cblxuLnBvcHVsYXJJbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wb3B1bGFySW1nOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtNzUlO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykgMTAwJSk7XG4gIHRyYW5zZm9ybTogc2tld1goLTI1ZGVnKTtcbn1cblxuLnBvcHVsYXJUaXRsZSB7XG4gIG1hcmdpbi10b3A6IDAuNzgxNXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbi50YWdzLCAudGFnc01haW4ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIGNvbG9yOiAjYzBjMGMwO1xuICBwYWRkaW5nOiAzLjEyNnJlbSAwO1xufVxuXG4udGFnc01haW4ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuLmVycm9yIHtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDVweDtcbn1cblxuLnBvcHVwV3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDMuMTI2cmVtIDEuNTYzcmVtIDA7XG4gIG1hcmdpbjogYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIC43cyBlYXNlLWluLW91dDtcbn1cblxuLnBvcHVwQmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDIwMDtcbiAgcGFkZGluZzogMC43ODE1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU5LCAyMywgODgsIDAuOCk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cblxuLmNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogOHB4O1xuICByaWdodDogOHB4O1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLmNsb3NlOmFmdGVyLCAuY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjNzc3Nzc3O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICB0b3A6IDEycHg7XG59XG5cbi5jbG9zZTpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogMTJweDtcbn1cblxuLm5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjE3NTg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzgxNXJlbSAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZmZmZmZmIDAsICNmZmZmZmYgMTAlLCAjZmZmZmZmIDkwJSwgI2M5YzhjYyAxMDAlKTtcbiAgfVxufVxuXG4ubWVudVRvcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogODQuNzQ1NzYlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy10b3A6IDAuNzgxNXJlbTtcbn1cblxuLm1lbnVUb3AgbGkge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4ubWVudVRvcCBhLCAubWVudVRvcCBhOmhvdmVyLCAubWVudVRvcCBhOmZvY3VzLCAubWVudVRvcCBhOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjM2IxNzU4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4ubWVudVRvcCAuYWN0aXZlID4gYSwgLm1lbnVUb3AgYTpob3ZlciwgLm1lbnVUb3AgYTpmb2N1cyB7XG4gIGNvbG9yOiAjZWY0NDgyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWVudVRvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ub3JkZXJUb3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWY0NDgyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1mYW1pbHk6IFwiQmF1aGF1c1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDI3MHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmc6IDAuMzkwNzVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xufVxuXG4ub3JkZXJUb3A6aG92ZXIsIC5vcmRlclRvcDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjE3NTg7XG4gIGNvbG9yOiAjZWY0NDgyO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxcHgpIHRyYW5zbGF0ZVooMCk7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAub3JkZXJUb3Age1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogMTEwcHg7XG4gIH1cbn1cblxuLmxhbmcsIC5zb2NpYWwge1xuICB3aWR0aDogNTAlO1xufVxuXG4ubGFuZyB1bCwgLnNvY2lhbCB1bCB7XG4gIHBhZGRpbmctdG9wOiAwLjc4MTVyZW07XG59XG5cbi5sYW5nIGEsIC5sYW5nIGE6aG92ZXIsIC5sYW5nIGE6Zm9jdXMsIC5sYW5nIGE6dmlzaXRlZCwgLnNvY2lhbCBhLCAuc29jaWFsIGE6aG92ZXIsIC5zb2NpYWwgYTpmb2N1cywgLnNvY2lhbCBhOnZpc2l0ZWQge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogI2NjY2VmNztcbn1cblxuLmxhbmcgYSwgLmxhbmcgYTp2aXNpdGVkLCAuc29jaWFsIGEsIC5zb2NpYWwgYTp2aXNpdGVkIHtcbiAgb3BhY2l0eTogLjc7XG59XG5cbi5sYW5nIGE6aG92ZXIsIC5sYW5nIGE6Zm9jdXMsIC5zb2NpYWwgYTpob3ZlciwgLnNvY2lhbCBhOmZvY3VzIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmxhbmcge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5sYW5nIHVsIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGFuZyBsaTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4ubGFuZyBhLmFjdGl2ZSB7XG4gIGNvbG9yOiAjZWY0NDgyO1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubGFuZyBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5sYW5nIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxuXG4uc29jaWFsIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5zb2NpYWwgbGkge1xuICBwYWRkaW5nLXRvcDogM3B4O1xufVxuXG4uc29jaWFsIGxpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG5cbi5zb2NpYWwgaW1nIHtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZzogMC43ODE1cmVtIDA7XG59XG5cbi5icmVhZGNydW1icyB1bCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uYnJlYWRjcnVtYnMgbGkge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogI2MwYzBjMDtcbn1cblxuLmJyZWFkY3J1bWJzIGxpOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6YmVmb3JlIHtcbiAgY29udGVudDogJy8nO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuXG4uYnJlYWRjcnVtYnMgYSwgLmJyZWFkY3J1bWJzIGE6aG92ZXIsIC5icmVhZGNydW1icyBhOmZvY3VzLCAuYnJlYWRjcnVtYnMgYTp2aXNpdGVkIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJyZWFkY3J1bWJzIGE6aG92ZXIsIC5icmVhZGNydW1icyBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm1lbnVGb290ZXIgbGksIC5tZW51Q2F0YWxvZyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG59XG5cbi5tZW51Rm9vdGVyIGxpOmJlZm9yZSwgLm1lbnVDYXRhbG9nIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMXB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VmNDQ4Mjtcbn1cblxuLm1lbnVMZWZ0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCAjZWY0NDgyO1xufVxuXG4ubWVudUxlZnQgaDMge1xuICBmb250LWZhbWlseTogXCJCYXVoYXVzXCIsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogMC43ODE1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubWVudUxlZnQgaDMge1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWVudUxlZnQgdWwge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLm1lbnVMZWZ0IGxpIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbi5tZW51TGVmdCBhLCAubWVudUxlZnQgYTpob3ZlciwgLm1lbnVMZWZ0IGE6Zm9jdXMsIC5tZW51TGVmdCBhOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjc4MTVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4ubWVudUxlZnQgYTpob3ZlciwgLm1lbnVMZWZ0IGE6Zm9jdXMge1xuICBjb2xvcjogI2VmNDQ4Mjtcbn1cblxuLm1lbnVMZWZ0IC5hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICNlZjQ0ODI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjQ7XG59XG5cbi5jYXRhbG9nTWFwIGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXRhbG9nTWFwIGE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICByaWdodDogMTBweDtcbiAgdG9wOiAyMHB4O1xuICBib3JkZXI6IDRweCBzb2xpZDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogIzc3Nzc3Nztcbn1cblxuLmNhdGFsb2dNYXAgYTpob3ZlcjphZnRlciwgLmNhdGFsb2dNYXAgYTpmb2N1czphZnRlciB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZWY0NDgyO1xufVxuXG4uY2F0YWxvZ01hcCAuYWN0aXZlIGE6YWZ0ZXIge1xuICByaWdodDogMTJweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2VmNDQ4MjtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uY2F0YWxvZ01hcCB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXRhbG9nTWFwIHVsIGxpIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLmNhdGFsb2dNYXAgdWwgYSwgLmNhdGFsb2dNYXAgdWwgYTp2aXNpdGVkIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctbGVmdDogMS41NjNyZW07XG4gIG9wYWNpdHk6IC43O1xufVxuXG4uY2F0YWxvZ01hcCB1bCBhOmFmdGVyLCAuY2F0YWxvZ01hcCB1bCBhOnZpc2l0ZWQ6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xufVxuXG4uY2F0YWxvZ01hcCB1bCBhOmhvdmVyLCAuY2F0YWxvZ01hcCB1bCBhOmZvY3VzIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uY2F0YWxvZ01hcCB1bCAuYWN0aXZlIGEsIC5jYXRhbG9nTWFwIHVsIC5hY3RpdmUgYTpob3ZlciwgLmNhdGFsb2dNYXAgdWwgLmFjdGl2ZSBhOmZvY3VzLCAuY2F0YWxvZ01hcCB1bCAuYWN0aXZlIGE6dmlzaXRlZCB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuNTYzcmVtO1xufVxuXG4uY2F0YWxvZ01hcCAuYWN0aXZlIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4uY2F0YWxvZ01hcCAuYWN0aXZlIHVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZW51UG9ydGZvbGlvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tZW51UG9ydGZvbGlvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5kaXYucGFnaW5hdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbnVsLnBhZ2luYXRpb24ge1xuICBvdmVyZmxvdzogYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxLjU2M3JlbSBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxudWwucGFnaW5hdGlvbiBsaSB7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbnVsLnBhZ2luYXRpb24gbGk6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTtcbn1cblxudWwucGFnaW5hdGlvbiBhLCB1bC5wYWdpbmF0aW9uIGE6dmlzaXRlZCwgdWwucGFnaW5hdGlvbiBzcGFuIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBjb2xvcjogI2MwYzBjMDtcbn1cblxudWwucGFnaW5hdGlvbiBhOmhvdmVyLCB1bC5wYWdpbmF0aW9uIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjZWY0NDgyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnVsLnBhZ2luYXRpb24gLmFjdGl2ZSA+IGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjZWY0NDgyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmM2Y0O1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbnVsLnBhZ2luYXRpb24gLmRpc2FibGVkLCB1bC5wYWdpbmF0aW9uIC5jb250cm9sIHtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG51bC5wYWdpbmF0aW9uIC5jb250cm9sOmhvdmVyLCB1bC5wYWdpbmF0aW9uIC5jb250cm9sOmZvY3VzLCB1bC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC41O1xufVxuXG51bC5wYWdpbmF0aW9uIGxpOm50aC1vZi10eXBlKDEpIGEsIHVsLnBhZ2luYXRpb24gbGk6bnRoLW9mLXR5cGUoMSkgc3BhbiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9maXJzdC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbnVsLnBhZ2luYXRpb24gbGk6bnRoLW9mLXR5cGUoMikgYSwgdWwucGFnaW5hdGlvbiBsaTpudGgtb2YtdHlwZSgyKSBzcGFuIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3ByZXYucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG51bC5wYWdpbmF0aW9uIGxpOm50aC1sYXN0LW9mLXR5cGUoMSkgYSwgdWwucGFnaW5hdGlvbiBsaTpudGgtbGFzdC1vZi10eXBlKDEpIHNwYW4ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbGFzdC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbnVsLnBhZ2luYXRpb24gbGk6bnRoLWxhc3Qtb2YtdHlwZSgyKSBhLCB1bC5wYWdpbmF0aW9uIGxpOm50aC1sYXN0LW9mLXR5cGUoMikgc3BhbiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9uZXh0LnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxubGFiZWwjbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmxhYmVsI21vYmlsZSAubWVudU1vYkljb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDVweDtcbiAgdG9wOiA1cHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgdHJhbnNpdGlvbjogLjVzIGVhc2UtaW4tb3V0O1xuICBib3gtc2hhZG93OiAwIDAgMCAwICNGRkYsIDAgMCAwIDAgI0ZGRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5sYWJlbCNtb2JpbGUgLmhhbWJ1cmdlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxOXB4O1xuICBsZWZ0OiA4cHg7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG59XG5cbmxhYmVsI21vYmlsZSAuaGFtYnVyZ2VyOmFmdGVyLCBsYWJlbCNtb2JpbGUgLmhhbWJ1cmdlcjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cblxubGFiZWwjbW9iaWxlIC5oYW1idXJnZXI6YmVmb3JlIHtcbiAgdG9wOiAtNnB4O1xufVxuXG5sYWJlbCNtb2JpbGUgLmhhbWJ1cmdlcjphZnRlciB7XG4gIGJvdHRvbTogLTZweDtcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYkljb24ge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMTAwdncgI0ZGRiwgMCAwIDAgMTAwdmggI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYkljb24gLmhhbWJ1cmdlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3Nztcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYkljb24gLmhhbWJ1cmdlcjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgYm90dG9tOiAwO1xufVxuXG5sYWJlbCNtb2JpbGUgaW5wdXQ6Y2hlY2tlZCArIC5tZW51TW9iSWNvbiAuaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdG9wOiAwO1xufVxuXG5sYWJlbCNtb2JpbGUgaW5wdXQ6Y2hlY2tlZCArIC5tZW51TW9iSWNvbiArIC5tZW51TW9iIHtcbiAgb3BhY2l0eTogMTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zaXRpb246IC4yNXMgLjJzIGVhc2UtaW4tb3V0O1xufVxuXG5sYWJlbCNtb2JpbGUgLm1lbnVNb2Ige1xuICB6LWluZGV4OiAyMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtMTAwJTtcbiAgbGVmdDogLTEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAuMjVzIDBzIGVhc2UtaW4tb3V0O1xufVxuXG5sYWJlbCNtb2JpbGUgLm1lbnVNb2IgYSwgbGFiZWwjbW9iaWxlIC5tZW51TW9iIGE6aG92ZXIsIGxhYmVsI21vYmlsZSAubWVudU1vYiBhOmZvY3VzLCBsYWJlbCNtb2JpbGUgLm1lbnVNb2IgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICNlZjQ0ODI7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzQ0NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gIGxhYmVsI21vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uaW5kZXhBYm91dCwgLmluZGV4Q2xpZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMS41NjNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmluZGV4QWJvdXQgcDpsYXN0LW9mLXR5cGUsIC5pbmRleENsaWVudCBwOmxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjU2M3JlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaW5kZXhBYm91dCB7XG4gICAgd2lkdGg6IDQ5LjE1MjU0JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjU2M3JlbTtcbiAgfVxuICAuaW5kZXhDbGllbnQge1xuICAgIHdpZHRoOiA0OS4xNTI1NCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi5pbmRleENhdGFsb2cge1xuICB3aWR0aDogOTYuNjEwMTclO1xuICBtYXJnaW46IDAgMS42OTQ5MiU7XG4gIHBhZGRpbmc6IDEuNTYzcmVtIDAgMC43ODE1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaW5kZXhDYXRhbG9nIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5pbmRleENhdGFsb2cge1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5pbmRleENhdGVnb3J5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNzgxNXJlbTtcbiAgcGFkZGluZzogMS41NjNyZW07XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiAuNXM7XG59XG5cbi5pbmRleENhdGVnb3J5OmhvdmVyLCAuaW5kZXhDYXRlZ29yeTpmb2N1cywgLmluZGV4Q2F0ZWdvcnk6YWN0aXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlLWluO1xuICBhbmltYXRpb24tZHVyYXRpb246IC41cztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmluZGV4Q2F0ZWdvcnkge1xuICAgIHdpZHRoOiAzMi4yMDMzOSU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaW5kZXhDYXRlZ29yeSB7XG4gICAgd2lkdGg6IDE1LjI1NDI0JTtcbiAgfVxufVxuXG4uY2F0ZWdvcnlTb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYzViOGQ7XG59XG5cbi5jYXRlZ29yeUxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZDQyNDtcbn1cblxuLmNhdGVnb3J5U2NlbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTM2YWNiO1xufVxuXG4uY2F0ZWdvcnlNZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3NjliYTM7XG59XG5cbi5jYXRlZ29yeURqIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M3NTlhZjtcbn1cblxuLmNhdGVnb3J5QXJ0aXN0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzYxYWQ7XG59XG5cbi5jYXRlZ29yeVRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jYXRlZ29yeUltZyB7XG4gIHdpZHRoOiA1cmVtO1xuICBoZWlnaHQ6IDVyZW07XG4gIG1hcmdpbjogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmluZGV4UG9ydGZvbGlvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAxLjU2M3JlbSAwO1xufVxuXG4uaW5kZXhQb3J0Zm9saW8gLmJ1dHRvblBvcnRmb2xpbyA+IC5idXR0b24ge1xuICBwYWRkaW5nOiAwLjUyMXJlbSAwLjc4MTVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjQ0ODI7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmluZGV4UG9ydGZvbGlvIC5idXR0b25Qb3J0Zm9saW8gPiAuYnV0dG9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MTMzNjk7XG59XG5cbi5pbmRleFBvcnRmb2xpb0l0ZW0ge1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDEuNTYzcmVtO1xuICBtYXJnaW46IGF1dG87XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaW5kZXhQb3J0Zm9saW9JdGVtIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5pbmRleFBvcnRmb2xpb0l0ZW0ge1xuICAgIHdpZHRoOiA4My4wNTA4NSU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaW5kZXhQb3J0Zm9saW9JdGVtIHtcbiAgICB3aWR0aDogNDkuMTUyNTQlO1xuICB9XG59XG5cbi5pbmRleFBvcnRmb2xpb1dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmluZGV4UG9ydGZvbGlvV3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4uaW5kZXhQb3J0Zm9saW9JbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbG9hdDogbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmluZGV4UG9ydGZvbGlvSW1nIGltZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaW5kZXhQb3J0Zm9saW9JbWcge1xuICAgIHdpZHRoOiAxM3JlbTtcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLmluZGV4UG9ydGZvbGlvSW1nIGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gIH1cbn1cblxuLmluZGV4UG9ydGZvbGlvVGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5pbmRleFBvcnRmb2xpb1RleHQgKyAuYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuaW5kZXhQb3J0Zm9saW9UZXh0IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDE0cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC43ODE1cmVtO1xuICAgIGhlaWdodDogNi4yNTJyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAuaW5kZXhQb3J0Zm9saW9UZXh0ICsgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuaW5kZXhQb3J0Zm9saW9UZXh0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbn1cblxuLnNlb1RleHQge1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uc2VvVGV4dDpob3ZlciB7XG4gIGNvbG9yOiAjZWY0NDgyO1xufVxuXG4uZ2FsbGVyeSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAyLjM0NDVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmdhbGxlcnkgYSwgLmdhbGxlcnkgYTpob3ZlciwgLmdhbGxlcnkgYTpmb2N1cywgLmdhbGxlcnkgYTp2aXNpdGVkIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uZ2FsbGVyeUl0ZW1UaWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbn1cblxuLmdhbGxlcnlJdGVtVGlsZSAuaXRlbUltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzgxNXJlbTtcbn1cblxuLmdhbGxlcnlJdGVtVGlsZTpob3ZlciAuaXRlbVRpdGxlLCAuZ2FsbGVyeUl0ZW1UaWxlOmhvdmVyIC5pdGVtVXNlZFRpdGxlLCAuZ2FsbGVyeUl0ZW1UaWxlOmZvY3VzIC5pdGVtVGl0bGUsIC5nYWxsZXJ5SXRlbVRpbGU6Zm9jdXMgLml0ZW1Vc2VkVGl0bGUge1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuLmdhbGxlcnlJdGVtVGlsZTpob3ZlciAuaXRlbUltZyBpbWcsIC5nYWxsZXJ5SXRlbVRpbGU6Zm9jdXMgLml0ZW1JbWcgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMTAlO1xuICBsZWZ0OiAtNSU7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbi5nYWxsZXJ5SXRlbVRpbGU6aG92ZXIgLml0ZW1Vc2VkSW1nLCAuZ2FsbGVyeUl0ZW1UaWxlOmZvY3VzIC5pdGVtVXNlZEltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5nYWxsZXJ5SXRlbVRpbGU6aG92ZXIgLml0ZW1Vc2VkSW1nIGltZywgLmdhbGxlcnlJdGVtVGlsZTpmb2N1cyAuaXRlbVVzZWRJbWcgaW1nIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5nYWxsZXJ5SXRlbVRpbGUge1xuICAgIHdpZHRoOiA0OS4xNTI1NCU7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNjk0OTIlO1xuICB9XG4gIC5nYWxsZXJ5SXRlbVRpbGU6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5nYWxsZXJ5SXRlbVRpbGUge1xuICAgIHdpZHRoOiAzMi4yMDMzOSU7XG4gIH1cbiAgLmdhbGxlcnlJdGVtVGlsZTpudGgtY2hpbGQoMm4rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjY5NDkyJTtcbiAgfVxuICAuZ2FsbGVyeUl0ZW1UaWxlOm50aC1jaGlsZCgzbisxKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmdhbGxlcnlJdGVtQmFyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMS41NjNyZW0gYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4uZ2FsbGVyeUl0ZW1CYXI6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmctYm90dG9tOiAxLjU2M3JlbTtcbn1cblxuLmdhbGxlcnlJdGVtQmFyIC5pdGVtSW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmbG9hdDogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuLmdhbGxlcnlJdGVtQmFyIC5pdGVtVGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbi5nYWxsZXJ5SXRlbUJhciAuaXRlbVRleHQgaDMge1xuICBtYXJnaW4tdG9wOiAwLjc4MTVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzgxNXJlbTtcbn1cblxuLmdhbGxlcnlJdGVtQmFyIC5tb3JlSXRlbSB7XG4gIGhlaWdodDogYXV0bztcbiAgY29sb3I6ICNjMGMwYzA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4uZ2FsbGVyeUl0ZW1CYXIgLm1vcmVJdGVtOnZpc2l0ZWQge1xuICBjb2xvcjogI2MwYzBjMDtcbn1cblxuLmdhbGxlcnlJdGVtQmFyOmhvdmVyIC5pdGVtSW1nIGltZywgLmdhbGxlcnlJdGVtQmFyOmZvY3VzIC5pdGVtSW1nIGltZyB7XG4gIG1heC13aWR0aDogMTEwJTtcbiAgbGVmdDogLTUlO1xuICB0cmFuc2l0aW9uOiAuNXM7XG59XG5cbi5nYWxsZXJ5SXRlbUJhcjpob3ZlciAuaXRlbUltZyBpbWcubm9Ib3ZlciwgLmdhbGxlcnlJdGVtQmFyOmZvY3VzIC5pdGVtSW1nIGltZy5ub0hvdmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuXG4uZ2FsbGVyeUl0ZW1CYXI6aG92ZXIgLm1vcmVJdGVtLCAuZ2FsbGVyeUl0ZW1CYXI6Zm9jdXMgLm1vcmVJdGVtIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJ1enotb3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuXG4uZ2FsbGVyeUl0ZW1CYXI6aG92ZXIgLm1vcmVJdGVtOmJlZm9yZSwgLmdhbGxlcnlJdGVtQmFyOmZvY3VzIC5tb3JlSXRlbTpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmdhbGxlcnlJdGVtQmFyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAuZ2FsbGVyeUl0ZW1CYXIgLml0ZW1JbWcge1xuICAgIHdpZHRoOiAyMTBweDtcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5nYWxsZXJ5SXRlbUJhciAuaXRlbVRleHQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNTBweDtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cbiAgLmdhbGxlcnlJdGVtQmFyIC5pdGVtVGV4dCBoMyB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAuZ2FsbGVyeUl0ZW1CYXIgLm1vcmVJdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5nYWxsZXJ5SXRlbUJhcjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICB9XG4gIC5nYWxsZXJ5SXRlbUJhcjpob3ZlciAuaXRlbVRleHQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLm1vcmVJdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb3JlSXRlbSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbi5tb3JlSXRlbTpob3ZlciwgLm1vcmVJdGVtOmhvdmVyOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2NhY2FjYTtcbn1cblxuLml0ZW1JbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMHJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYzZjQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLml0ZW1JbWcgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG1hcmdpbjogYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuLml0ZW1UaXRsZSwgLml0ZW1Vc2VkVGl0bGUge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4uZ2FsbGVyeVBob3RvIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5nYWxsZXJ5UGhvdG9JdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMjUwcHg7XG4gIHdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDFweCkgdHJhbnNsYXRlWigwKTtcbiAgYm94LXNoYWRvdzogMCAwIDFweCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm94LXNoYWRvdywgdHJhbnNmb3JtO1xufVxuXG4uZ2FsbGVyeVBob3RvSXRlbSBpbWcge1xuICBtYXgtd2lkdGg6IG1heC1jb250ZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4uZ2FsbGVyeVBob3RvSXRlbTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IC0xMHB4IHJnYmEoNTksIDIzLCA4OCwgMC44KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5nYWxsZXJ5UGhvdG9JdGVtIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjU2cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogLjc4cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLjc4cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuZ2FsbGVyeVBob3RvSXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMgLSAxLjU2cmVtKTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmdhbGxlcnlQaG90b0l0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuNTZyZW0pO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmdhbGxlcnlQaG90b0l0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzIC0gMS41NnJlbSk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAuZ2FsbGVyeVBob3RvSXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS41NnJlbSk7XG4gIH1cbn1cblxuLnNlcnZpY2UgLnBvcHVsYXIsIHNlcnZpY2VQYWdlIC5wb3B1bGFyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5zZXJ2aWNlUGFnZSAucG9wdWxhciB7XG4gIG1hcmdpbi10b3A6IDEuNTYzcmVtO1xufVxuXG4uaXRlbVVzZWRJbWcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA2LjI1MnJlbTtcbiAgd2lkdGg6IDYuMjUycmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uaXRlbVVzZWRJbWcgaW1nIHtcbiAgb3BhY2l0eTogLjI7XG59XG5cbi5pdGVtVXNlZFRpdGxlIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMHB4KTtcbiAgaGVpZ2h0OiAzLjhyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTYzcmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbn1cblxuLml0ZW1Vc2VkUHJpY2Uge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMTBweDtcbiAgYm90dG9tOiAwO1xufVxuXG4uY2Fyb3VzZWwtc2ltaWxhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAzLjEyNnJlbTtcbn1cblxuLmNhcm91c2VsLXNpbWlsYXIgLnNsaWNrLXByZXYsXG4uY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stbmV4dCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IC0xLjU2M3JlbTtcbiAgaGVpZ2h0OiA0MHB4O1xuICB3aWR0aDogNDBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgei1pbmRleDogMTk7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbi5jYXJvdXNlbC1zaW1pbGFyIC5zbGljay1wcmV2OmJlZm9yZSxcbi5jYXJvdXNlbC1zaW1pbGFyIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzc3Nzc3NztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzc3Nzc3NztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTNweDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cblxuLmNhcm91c2VsLXNpbWlsYXIgLnNsaWNrLXByZXY6aG92ZXIsXG4uY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stbmV4dDpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzUxMzM2OTtcbiAgYmFja2dyb3VuZDogIzUxMzM2OTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXG4uY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHdoaXRlO1xufVxuXG4uY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stcHJldi5zbGljay1kaXNhYmxlZCxcbi5jYXJvdXNlbC1zaW1pbGFyIC5zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNhcm91c2VsLXNpbWlsYXIgLnNsaWNrLXByZXYge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzlweDtcbn1cblxuLmNhcm91c2VsLXNpbWlsYXIgLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2Fyb3VzZWwtc2ltaWxhciAuc2xpY2stcHJldiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAyNHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5jYXJvdXNlbC1zaW1pbGFyIC5zbGljay1uZXh0IHtcbiAgcmlnaHQ6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAtNDBweDtcbn1cblxuLmNhcm91c2VsLXNpbWlsYXIgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBtYXJnaW4tbGVmdDogLTdweCAhaW1wb3J0YW50O1xufVxuXG5bZGlyPVwicnRsXCJdIC5jYXJvdXNlbC1zaW1pbGFyIC5zbGljay1uZXh0IHtcbiAgbGVmdDogMjRweDtcbiAgcmlnaHQ6IGF1dG87XG4gIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG59XG5cbi5zaW1pbGFySXRlbVRpbGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbn1cblxuLnNpbWlsYXJJdGVtVGlsZSAuaXRlbUltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzgxNXJlbTtcbn1cblxuLnNpbWlsYXJJdGVtVGlsZTpob3ZlciAuaXRlbVRpdGxlLCAuc2ltaWxhckl0ZW1UaWxlOmhvdmVyIC5pdGVtVXNlZFRpdGxlLCAuc2ltaWxhckl0ZW1UaWxlOmZvY3VzIC5pdGVtVGl0bGUsIC5zaW1pbGFySXRlbVRpbGU6Zm9jdXMgLml0ZW1Vc2VkVGl0bGUge1xuICBjb2xvcjogI2VmNDQ4MjtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuLnNpbWlsYXJJdGVtVGlsZTpob3ZlciAuaXRlbUltZyBpbWcsIC5zaW1pbGFySXRlbVRpbGU6Zm9jdXMgLml0ZW1JbWcgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMTAlO1xuICBsZWZ0OiAtNSU7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG5cbi5zaW1pbGFySXRlbVRpbGU6aG92ZXIgLml0ZW1Vc2VkSW1nLCAuc2ltaWxhckl0ZW1UaWxlOmZvY3VzIC5pdGVtVXNlZEltZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zaW1pbGFySXRlbVRpbGU6aG92ZXIgLml0ZW1Vc2VkSW1nIGltZywgLnNpbWlsYXJJdGVtVGlsZTpmb2N1cyAuaXRlbVVzZWRJbWcgaW1nIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5zaW1pbGFySXRlbVRpbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxufVxuXG4uY2Fyb3VzZWwtc2hvdyB7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYzcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogMy4xMjZyZW07XG59XG5cbi5jYXJvdXNlbC1zaG93IC5zbGljay1wcmV2LFxuLmNhcm91c2VsLXNob3cgLnNsaWNrLW5leHQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAtMS41NjNyZW07XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBmb250LXNpemU6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDE5O1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4uY2Fyb3VzZWwtc2hvdyAuc2xpY2stcHJldjpiZWZvcmUsXG4uY2Fyb3VzZWwtc2hvdyAuc2xpY2stbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3Nzc3Nzc7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM3Nzc3Nzc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG5cbi5jYXJvdXNlbC1zaG93IC5zbGljay1wcmV2OmhvdmVyLFxuLmNhcm91c2VsLXNob3cgLnNsaWNrLW5leHQ6aG92ZXIge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICM1MTMzNjk7XG4gIGJhY2tncm91bmQ6ICM1MTMzNjk7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNhcm91c2VsLXNob3cgLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxuLmNhcm91c2VsLXNob3cgLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB3aGl0ZTtcbn1cblxuLmNhcm91c2VsLXNob3cgLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQsXG4uY2Fyb3VzZWwtc2hvdyAuc2xpY2stbmV4dC5zbGljay1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jYXJvdXNlbC1zaG93IC5zbGljay1wcmV2IHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTM5cHg7XG59XG5cbi5jYXJvdXNlbC1zaG93IC5zbGljay1wcmV2OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG59XG5cbltkaXI9XCJydGxcIl0gLmNhcm91c2VsLXNob3cgLnNsaWNrLXByZXYge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjRweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uY2Fyb3VzZWwtc2hvdyAuc2xpY2stbmV4dCB7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1yaWdodDogLTQwcHg7XG59XG5cbi5jYXJvdXNlbC1zaG93IC5zbGljay1uZXh0OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgbWFyZ2luLWxlZnQ6IC03cHggIWltcG9ydGFudDtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2Fyb3VzZWwtc2hvdyAuc2xpY2stbmV4dCB7XG4gIGxlZnQ6IDI0cHg7XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xufVxuXG4uY2Fyb3VzZWwtc2hvdyAuZ2FsbGVyeUl0ZW1UaWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjNyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuY2Fyb3VzZWwtc2hvdyAuZ2FsbGVyeUl0ZW1UaWxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuY2Fyb3VzZWwtc2hvdyAuZ2FsbGVyeUl0ZW1UaWxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY2Fyb3VzZWwtc2hvdyAuZ2FsbGVyeUl0ZW1UaWxlOm50aC1jaGlsZCgybisxKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmNhcm91c2VsLXNob3cgLmdhbGxlcnlJdGVtVGlsZTpudGgtY2hpbGQoM24rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi52aWRlbyB7XG4gIGZsb2F0OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjU2M3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmlkZW86bnRoLWNoaWxkKDJuKzEpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi52aWRlbyBpZnJhbWUsIC52aWRlbyBvYmplY3QsIC52aWRlbyBlbWJlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnZpZGVvIHtcbiAgICB3aWR0aDogNDglO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctYm90dG9tOiAyNyU7XG4gIH1cbiAgLnZpZGVvOm50aC1jaGlsZCgybikge1xuICAgIG1hcmdpbi1sZWZ0OiA0JTtcbiAgfVxufVxuXG4ubGVmdFNpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmc6IDEuNTYzcmVtIDA7XG59XG5cbi5sZWZ0U2lkZSArIC5jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxlZnRTaWRlIHtcbiAgICB3aWR0aDogMjQwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxlZnRTaWRlICsgLnByb2R1Y3QsIC5sZWZ0U2lkZSArIC5jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMzAwcHg7XG4gICAgcGFkZGluZy10b3A6IDAuNTIxcmVtO1xuICB9XG59XG5cbi5vcmRlckxlZnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNzgxNXJlbSAxLjU2M3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNiMTc1ODtcbiAgYm9yZGVyLWNvbG9yOiAjM2IxNzU4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogXCJCYXVoYXVzXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm9yZGVyTGVmdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY2F0YWxvZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogMi4zNDQ1cmVtO1xufVxuXG4uY2F0YWxvZ01lbnUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjNyZW07XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmNhdGFsb2dNZW51Om50aC1jaGlsZCgybisxKSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5jYXRhbG9nTWVudSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gKDEuNTYzLzIpKjFyZW0pO1xuICAgIG1hcmdpbi1yaWdodDogMS41NjNyZW07XG4gIH1cbiAgLmNhdGFsb2dNZW51Om50aC1jaGlsZCgybikge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAuY2F0YWxvZ01lbnU6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTYzcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNhdGFsb2dNZW51IHtcbiAgICB3aWR0aDogY2FsYygxMDAlLzMgLSAxLjU2MyoycmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTYzcmVtO1xuICB9XG4gIC5jYXRhbG9nTWVudTpudGgtY2hpbGQoMm4pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNTYzcmVtO1xuICB9XG4gIC5jYXRhbG9nTWVudTpudGgtY2hpbGQoM24pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmNhdGFsb2dNZW51VGl0bGUge1xuICBwYWRkaW5nOiAwLjc4MTVyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5jYXRhbG9nTWVudVRpdGxlIHN2ZyB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uY2F0YWxvZ01lbnVUaXRsZSBoNSB7XG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xufVxuXG4uc3ViY2F0YWxvZ01lbnUge1xuICBwYWRkaW5nOiAwLjc4MTVyZW07XG59XG5cbi5zdWJjYXRhbG9nTWVudSBhLCAuc3ViY2F0YWxvZ01lbnUgYTpob3ZlciwgLnN1YmNhdGFsb2dNZW51IGE6Zm9jdXMsIC5zdWJjYXRhbG9nTWVudSBhOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMC4zOTA3NXJlbSAwLjc4MTVyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc3ViY2F0YWxvZ01lbnUgYTpiZWZvcmUsIC5zdWJjYXRhbG9nTWVudSBhOmhvdmVyOmJlZm9yZSwgLnN1YmNhdGFsb2dNZW51IGE6Zm9jdXM6YmVmb3JlLCAuc3ViY2F0YWxvZ01lbnUgYTp2aXNpdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0b3A6IDE2cHg7XG4gIGxlZnQ6IDA7XG59XG5cbi5zdWJjYXRhbG9nTWVudSBhOmhvdmVyLCAuc3ViY2F0YWxvZ01lbnUgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogLjY7XG59XG5cbi5wcm9kdWN0IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjNyZW07XG59XG5cbi5wcm9kdWN0VGl0bGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAucHJvZHVjdFRpdGxlIHtcbiAgICB3aWR0aDogMzUlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi5wcm9kdWN0SW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nOiAxLjU2M3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAucHJvZHVjdEltZyB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbn1cblxuLnByb2R1Y3RJbWcgaW1nIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4ucHJvZHVjdFRodW1iIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAucHJvZHVjdFRodW1iIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW46IDEuNTYzcmVtIDA7XG4gIH1cbn1cblxuLnRodW1ibmFpbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMTBweDtcbiAgd2lkdGg6IDgwcHg7XG4gIGhlaWdodDogODBweDtcbn1cblxuLnRodW1ibmFpbCBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5wcm9kdWN0UHJpY2Uge1xuICBmb250LXNpemU6IDEuNTYzcmVtO1xuICBsaW5lLWhlaWdodDogMS41NjNyZW07XG4gIGNvbG9yOiAjZWY0NDgyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByb2R1Y3RQcmljZSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ub3JkZXJQcm9kdWN0IHtcbiAgd2lkdGg6IDE2MHB4O1xufVxuXG4ucHJvZHVjdERlc2NyaXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDEuNTYzcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuLnByb2R1Y3REZXNjcmlwdGlvbiBoMSwgLnByb2R1Y3REZXNjcmlwdGlvbiBoMiwgLnByb2R1Y3REZXNjcmlwdGlvbiBoMyB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTYzcmVtO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDAuNzgxNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBmb250LXdlaWdodDogNTAwO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5zdWJjYXRhbG9nIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zdWJjYXRhbG9nICsgLmNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuaW5wdXQudGFiQ29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmlucHV0LnRhYkNvbnRyb2wgKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwLjc4MTVyZW0gMC41cmVtIDAuNzgxNXJlbSAwO1xuICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNjMGMwYzA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5cbmlucHV0LnRhYkNvbnRyb2wgKyBsYWJlbDpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmlucHV0LnRhYkNvbnRyb2w6Zmlyc3QtY2hpbGQgKyBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogLjVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuaW5wdXQudGFiQ29udHJvbDpjaGVja2VkICsgbGFiZWwge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuI0Rlc2NyaXB0aW9uOmNoZWNrZWQgfiAjdGFiRGVzY3JpcHRpb24sXG4jTGlzdDpjaGVja2VkIH4gI3RhYkxpc3QsXG4jU2NoZW1hOmNoZWNrZWQgfiAjdGFiU2NoZW1hLFxuI0FkdmFudGFnZXM6Y2hlY2tlZCB+ICN0YWJBZHZhbnRhZ2VzLFxuI1ByaWNlOmNoZWNrZWQgfiAjdGFiUHJpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cblxuLnRhYkNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZy10b3A6IDMuMTI2cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS41NjNyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4udGFiQ29udGVudCAuZ2FsbGVyeSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2FjYWNhO1xufVxuXG4uYnV0dG9uUG9ydGZvbGlvIHtcbiAgbWFyZ2luOiAxLjU2M3JlbSBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idXR0b25Qb3J0Zm9saW8gLmJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmJ1dHRvblBvcnRmb2xpbyBhLCAuYnV0dG9uUG9ydGZvbGlvIGE6aG92ZXIsIC5idXR0b25Qb3J0Zm9saW8gYTpmb2N1cywgLmJ1dHRvblBvcnRmb2xpbyBhOnZpc2l0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTEzMzY5O1xuICBwYWRkaW5nOiAwLjUyMXJlbSAwLjc4MTVyZW0gMC4zMTI2cmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1mYW1pbHk6IFwiQmF1aGF1c1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYnV0dG9uUG9ydGZvbGlvIGE6aG92ZXIsIC5idXR0b25Qb3J0Zm9saW8gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZjQ0ODI7XG59XG5cbi5jb250YWN0SW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy10b3A6IDEuNTYzcmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhY3RJbmZvIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNTYzcmVtO1xuICB9XG59XG5cbi5jb250YWN0Rm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogLjVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFjdEZvcm0ge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNTYzcmVtO1xuICB9XG59XG5cbi5jb250YWN0SXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjNyZW07XG59XG5cbi5jb250YWN0SXRlbSBwIHtcbiAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uY29udGFjdEl0ZW0gYSwgLmNvbnRhY3RJdGVtIGE6aG92ZXIsIC5jb250YWN0SXRlbSBhOmZvY3VzLCAuY29udGFjdEl0ZW0gYTp2aXNpdGVkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNvbnRhY3RJdGVtIGEsIC5jb250YWN0SXRlbSBhOmZvY3VzLCAuY29udGFjdEl0ZW0gYTp2aXNpdGVkIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG5cbi5jb250YWN0SW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTUuNjNyZW07XG4gIGJhY2tncm91bmQ6IHVybChcIi91cGxvYWRzL29mZmljZS5qcGdcIikgbm8tcmVwZWF0IGJvdHRvbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbiNtYXAge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MDBweDtcbn1cbiIsIi8vIFR5cG9ncmFwaHlcblxuaDEsIGgyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcbn1cblxuaDEge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygyKTtcbiAgZm9udC1mYW1pbHk6ICRmb250RGVjb3I7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGFjdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuaDIge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygxKTtcbiAgZm9udC1mYW1pbHk6ICRmb250RGVjb3I7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGFjdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIEBpbmNsdWRlIHR5cGVTZXR0aW5nKDIpO1xuICB9XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgdHlwZVNldHRpbmcoMSk7XG4gIGZvbnQtZmFtaWx5OiAkZm9udEJhc2U7XG4gIGNvbG9yOiAkdGV4dFRpdGxlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG59XG5cbmEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKC0xKTtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBAaW5jbHVkZSB0eXBlU2V0dGluZygwKTtcbiAgfVxufVxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cbmIsIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuaSwgZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5wLCB1bCwgb2wsIHByZSwgdGFibGUsIGJsb2NrcXVvdGUge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygtMSk7XG5cbiAgZm9udC1mYW1pbHk6ICRmb250QmFzZTtcbiAgY29sb3I6ICR0ZXh0O1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBAaW5jbHVkZSB0eXBlU2V0dGluZygwKTtcbiAgfVxufVxudWwgdWwsIG9sIG9sLCB1bCBvbCwgb2wgdWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuaHIsIC5ociB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaW5lO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xufVxuc3ViLCBzdXAge1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuXG4iLCIvLyBDb250YWluZXJcbkBtaXhpbiBjb250YWluZXIoJHdpZHRoOiAxMDAlLCAkanVzdGlmeTogYXV0byBhdXRvLCAkcHJvcGVydHk6IG1heC13aWR0aCkge1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgbWFyZ2luLWxlZnQ6IG50aCgkanVzdGlmeSwgMSk7XG4gIG1hcmdpbi1yaWdodDogbnRoKCRqdXN0aWZ5LCAyKTtcbn1cblxuLy8gVHlwZSBzZXR0aW5nc1xuQG1peGluIHR5cGVTZXR0aW5nKCRsZXZlbDogMCkge1xuICBmb250LXNpemU6IHR5cGVTY2FsZSgkbGV2ZWwpO1xuICBsaW5lLWhlaWdodDogbGluZUhlaWdodCgkbGV2ZWwpO1xufVxuLy9QbGFjZWhvbGRlclxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IEBjb250ZW50OyB9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAgeyBAY29udGVudDsgfVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHsgQGNvbnRlbnQ7IH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7IEBjb250ZW50OyB9XG59XG4vLyBHYWxsZXJ5XG5AbWl4aW4gZ2FsbGVyeSgkY29sdW1ucykge1xuICAkZ3V0dGVyOiAyJTtcbiAgJGNvbHVtbldpZHRoOiAxMDAlIC8gJGNvbHVtbnMgLSAkZ3V0dGVyO1xuICAkZ3V0dGVyV2lkdGg6ICRndXR0ZXIqJGNvbHVtbnMgLyAoJGNvbHVtbnMgLSAxKTtcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJGNvbHVtbldpZHRoO1xuICBmbG9hdDogbGVmdDtcblxuICBAZm9yICRpdGVtIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAkbnRoOiAnI3skY29sdW1uc31uICsgI3skaXRlbX0nO1xuICAgICY6bnRoLWNoaWxkKCN7JG50aH0pIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoJGd1dHRlcldpZHRoICsgJGNvbHVtbldpZHRoKSokaXRlbSAtICgkZ3V0dGVyV2lkdGggKyAkY29sdW1uV2lkdGgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcblxuICAgICAgQGlmICRpdGVtID09IDEge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgIH1AZWxzZXtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIExheW91dFxuQG1peGluIGxheW91dCgkd2lkdGg6IDUwJSwgJGxheW91dDogbGVmdCkge1xuICB3aWR0aDogJHdpZHRoO1xuICBmbG9hdDogJGxheW91dDtcbn1cblxuLy8gQmFzZWxpbmUgZ3JpZFxuQG1peGluIGJhc2VsaW5lLWdyaWQoKXtcblxuICAkYmFzZWxpbmUtY29sb3I6IHJnYmEoNTYsMjU1LDI1NSwuOCk7XG4gICRiYXNlbGluZTogJGJhc2UtbGluZS1oZWlnaHQgKiAxNiAqIDFweDtcblxuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDBweCwgdHJhbnNwYXJlbnQgKCRiYXNlbGluZSAtIDEpLCAkYmFzZWxpbmUtY29sb3IgJGJhc2VsaW5lLCAkYmFzZWxpbmUtY29sb3IgJGJhc2VsaW5lKTtcbn1cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIu+7v0BpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogJHRleHRMaWdodDtcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG5idXR0b24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG59XHJcblxyXG5idXR0b24sIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICBvdXRsaW5lOiBub25lO1xyXG5cclxuICAmOmFjdGl2ZSB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLCB0ZXh0YXJlYSB7XHJcbiAgcGFkZGluZzogbGluZUhlaWdodCgwKS8yIGd1dHRlcigpO1xyXG5cclxuICAmOmZvY3VzIHtcclxuXHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG4gIH1cclxufVxyXG5cclxubGFiZWwge1xyXG5cclxufVxyXG5cclxuLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKS80IGxpbmVIZWlnaHQoKS8yO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpbmU7XHJcbiAgY29sb3I6ICR0ZXh0TGlnaHQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnTGlnaHQ7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDFweCkgdHJhbnNsYXRlWigwKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxuXHJcbiAgJjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6IC0xO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZTtcclxuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XHJcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XHJcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiAkYmcgIWltcG9ydGFudDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiAkYmcgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmU7XHJcbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gRm9ybXNcclxuLmZvcm1GZWVkYmFjayB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xyXG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKSAwO1xyXG5cclxuICB0ZXh0YXJlYSB7XHJcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgxKTtcclxuICB9XHJcblxyXG4gIGlucHV0W3R5cGU9c3VibWl0XSB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICBsYWJlbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiA1O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIG1hcmdpbjogbGluZUhlaWdodCgpLzM7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcclxuICB9XHJcblxyXG4gIGRpdiB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDcwcHg7XHJcblxyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICBoZWlnaHQ6IDIwNXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogJHRleHRMaWdodDtcclxuICAgIHRvcDogLTIwcHg7XHJcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgwKTtcclxuICAgIHBhZGRpbmc6IDAgbGluZUhlaWdodCgpLzI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2UtaW4tb3V0O1xyXG4gIH1cclxufVxyXG5cclxuLmZvcm1Db250cm9sIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkbGluZTtcclxuICBmb250LXNpemU6IHR5cGVTY2FsZSgwKTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcclxuICBjb2xvcjogJHRleHQ7XHJcblxyXG4gICY6Zm9jdXMrbGFiZWwge1xyXG4gICAgY29sb3I6ICR0ZXh0TGlnaHQ7XHJcbiAgICB0b3A6IC0yMHB4O1xyXG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMCk7XHJcbiAgICBwYWRkaW5nOiAwIGxpbmVIZWlnaHQoKS8yO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcclxuICB9XHJcbn1cclxuXHJcbi5mb3JtQ29udHJvbDpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufSIsIi8vLyBHcmlkIE1hdGggRW5naW5lXG4vLy8gPT09PT09PT09PT09PT09PVxuLy8vIFRoZSBgc3VgIGZ1bmN0aW9ucyBnaXZlIHlvdSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBtYXRoIGxheWVyLFxuLy8vIHdpdGhvdXQgYW55IHN5bnRheC1zdWdhciBsaWtlIHNob3J0aGFuZCBwYXJzaW5nLCBhbmQgbm9ybWFsaXphdGlvbi5cbi8vLyBJZiB5b3UgcHJlZmVyIG5hbWVkIGFyZ3VtZW50cywgYW5kIHN0cmlwcGVkLWRvd24gc3ludGF4LFxuLy8vIHlvdSBjYW4gdXNlIHRoZXNlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbiB5b3VyIGNvZGUg4oCTXG4vLy8gcmVwbGFjaW5nIGBzcGFuYCwgYGd1dHRlcmAsIGFuZCBgc2xpY2VgLlxuLy8vXG4vLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBhbHNvIHVzZWZ1bFxuLy8vIGZvciBidWlsZGluZyBtaXhpbnMgb3Igb3RoZXIgZXh0ZW5zaW9ucyB0byBTdXN5LlxuLy8vIEFwcGx5IHRoZSBTdXN5IHN5bnRheCB0byBuZXcgbWl4aW5zIGFuZCBmdW5jdGlvbnMsXG4vLy8gdXNpbmcgb3VyIFwiUGx1Z2luIEhlbHBlcnNcIixcbi8vLyBvciB3cml0ZSB5b3VyIG93biBzeW50YXggYW5kIHBhc3MgdGhlIG5vcm1hbGl6ZWQgcmVzdWx0cyBhbG9uZ1xuLy8vIHRvIGBzdWAgZm9yIGNvbXBpbGF0aW9uLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vL1xuLy8vIEBzZWUgc3Utc3BhblxuLy8vIEBzZWUgc3UtZ3V0dGVyXG4vLy8gQHNlZSBzdS1zbGljZVxuLy8vIEBpZ25vcmUgX3N1LXN1bVxuLy8vIEBpZ25vcmUgX3N1LWNhbGMtc3BhblxuLy8vIEBpZ25vcmUgX3N1LWNhbGMtc3VtXG4vLy8gQGlnbm9yZSBfc3UtbmVlZHMtY2FsYy1vdXRwdXRcblxuXG5cbi8vIFN1IFNwYW5cbi8vIC0tLS0tLS1cbi8vLyBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIGEgQ1NTLXJlYWR5IHNwYW4gd2lkdGgsXG4vLy8gYmFzZWQgb24gbm9ybWFsaXplZCBzcGFuIGFuZCBjb250ZXh0IGRhdGEg4oCTXG4vLy8gYSBsb3ctbGV2ZWwgdmVyc2lvbiBvZiBgc3VzeS1zcGFuYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIHVuaXRsZXNzIG51bWJlcnMgd2lsbCByZXR1cm4gYCVgIHZhbHVlcy5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBjb21wYXJhYmxlIHVuaXRzXG4vLy8gICB3aWxsIHJldHVybiBhIHZhbHVlIGluIHRoZSB1bml0cyBwcm92aWRlZC5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBhIG1peCBvZiB1bml0cyxcbi8vLyAgIG9yIGEgY29tYmluYXRpb24gb2YgdW50aWxlc3MgbnVtYmVycyBhbmQgdW5pdC1sZW5ndGhzLFxuLy8vICAgd2lsbCByZXR1cm4gYSBgY2FsYygpYCBzdHJpbmcuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBzZWUgc3VzeS1zcGFuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlciB8IGxpc3R9ICRzcGFuIC1cbi8vLyAgIE51bWJlciBvciBsaXN0IG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgYXZhaWxhYmxlXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRjb250YWluZXItc3ByZWFkIFskc3ByZWFkXSAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtpbnRlZ2VyfSAkbG9jYXRpb24gWzFdIC1cbi8vLyAgIE9wdGlvbmFsIHBvc2l0aW9uIG9mIHN1Yi1zcGFuIGFtb25nIGZ1bGwgc2V0IG9mIGNvbHVtbnNcbi8vL1xuLy8vIEByZXR1cm4ge2xlbmd0aH0gLVxuLy8vICAgUmVsYXRpdmUgb3Igc3RhdGljIGxlbmd0aCBvZiBhIHNwYW4gb24gdGhlIGdyaWRcbkBmdW5jdGlvbiBzdS1zcGFuKFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkY29udGFpbmVyLXNwcmVhZDogJHNwcmVhZCxcbiAgJGxvY2F0aW9uOiAxXG4pIHtcbiAgJHNwYW46IHN1LXZhbGlkLXNwYW4oJHNwYW4pO1xuICAkY29sdW1uczogc3UtdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgJHNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRzcHJlYWQpO1xuXG4gIEBpZiAodHlwZS1vZigkc3BhbikgPT0gJ251bWJlcicpIHtcbiAgICBAaWYgKG5vdCB1bml0bGVzcygkc3BhbikpIHtcbiAgICAgIEByZXR1cm4gJHNwYW47XG4gICAgfVxuXG4gICAgJGxvY2F0aW9uOiBzdS12YWxpZC1sb2NhdGlvbigkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG4gICAgJHNwYW46IHN1LXNsaWNlKCRzcGFuLCAkY29sdW1ucywgJGxvY2F0aW9uLCAkdmFsaWRhdGU6IGZhbHNlKTtcbiAgfVxuXG4gIEBpZiBfc3UtbmVlZHMtY2FsYy1vdXRwdXQoJHNwYW4sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCwgbm90ICd2YWxpZGF0ZScpIHtcbiAgICBAcmV0dXJuIF9zdS1jYWxjLXNwYW4oJHNwYW4sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCwgJGNvbnRhaW5lci1zcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcbiAgfVxuXG4gICRzcGFuLXdpZHRoOiBfc3Utc3VtKCRzcGFuLCAkZ3V0dGVycywgJHNwcmVhZCwgJHZhbGlkYXRlOiBmYWxzZSk7XG5cbiAgQGlmIHVuaXRsZXNzKCRzcGFuLXdpZHRoKSB7XG4gICAgJGNvbnRhaW5lci1zcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkY29udGFpbmVyLXNwcmVhZCk7XG4gICAgJGNvbnRhaW5lcjogX3N1LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsICRjb250YWluZXItc3ByZWFkLCAkdmFsaWRhdGU6IGZhbHNlKTtcbiAgICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHNwYW4td2lkdGggLyAkY29udGFpbmVyKTtcbiAgfVxuXG4gIEByZXR1cm4gJHNwYW4td2lkdGg7XG59XG5cblxuXG4vLyBTdSBHdXR0ZXJcbi8vIC0tLS0tLS0tLVxuLy8vIENhbGN1bGF0ZXMgYW5kIHJldHVybnMgYSBDU1MtcmVhZHkgZ3V0dGVyIHdpZHRoLFxuLy8vIGJhc2VkIG9uIG5vcm1hbGl6ZWQgZ3JpZCBkYXRhIOKAk1xuLy8vIGEgbG93LWxldmVsIHZlcnNpb24gb2YgYHN1c3ktZ3V0dGVyYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIHVuaXRsZXNzIG51bWJlcnMgd2lsbCByZXR1cm4gYCVgIHZhbHVlcy5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBjb21wYXJhYmxlIHVuaXRzXG4vLy8gICB3aWxsIHJldHVybiBhIHZhbHVlIGluIHRoZSB1bml0cyBwcm92aWRlZC5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBhIG1peCBvZiB1bml0cyxcbi8vLyAgIG9yIGEgY29tYmluYXRpb24gb2YgdW50aWxlc3MgbnVtYmVycyBhbmQgdW5pdC1sZW5ndGhzLFxuLy8vICAgd2lsbCByZXR1cm4gYSBgY2FsYygpYCBzdHJpbmcuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBzZWUgc3VzeS1ndXR0ZXJcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkY29udGFpbmVyLXNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy9cbi8vLyBAcmV0dXJuIHtsZW5ndGh9IC1cbi8vLyAgIFJlbGF0aXZlIG9yIHN0YXRpYyBsZW5ndGggb2Ygb25lIGd1dHRlciBpbiBhIGdyaWRcbkBmdW5jdGlvbiBzdS1ndXR0ZXIoXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJGNvbnRhaW5lci1zcHJlYWRcbikge1xuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgQGlmICgkZ3V0dGVycyA9PSAwKSBvciAobm90IHVuaXRsZXNzKCRndXR0ZXJzKSkge1xuICAgICAgQHJldHVybiAkZ3V0dGVycztcbiAgICB9XG4gIH1cblxuICBAaWYgX3N1LW5lZWRzLWNhbGMtb3V0cHV0KCRndXR0ZXJzLCAkY29sdW1ucywgJGd1dHRlcnMsIC0xLCBub3QgJ3ZhbGlkYXRlJykge1xuICAgIEByZXR1cm4gX3N1LWNhbGMtc3BhbigkZ3V0dGVycywgJGNvbHVtbnMsICRndXR0ZXJzLCAtMSwgJGNvbnRhaW5lci1zcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcbiAgfVxuXG4gICRjb250YWluZXI6IF9zdS1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCAkY29udGFpbmVyLXNwcmVhZCk7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVycyAvICRjb250YWluZXIpO1xufVxuXG5cblxuLy8gU3UgU2xpY2Vcbi8vIC0tLS0tLS0tXG4vLy8gUmV0dXJucyBhIGxpc3Qgb2YgY29sdW1uc1xuLy8vIGJhc2VkIG9uIGEgZ2l2ZW4gc3Bhbi9sb2NhdGlvbiBzbGljZSBvZiB0aGUgZ3JpZCDigJNcbi8vLyBhIGxvdy1sZXZlbCB2ZXJzaW9uIG9mIGBzdXN5LXNsaWNlYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQHNlZSBzdXN5LXNsaWNlXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJHNwYW4gLVxuLy8vICAgTnVtYmVyIG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxvY2F0aW9uIFsxXSAtXG4vLy8gICBTdGFydGluZyBpbmRleCBvZiBhIHNwYW4gaW4gdGhlIGxpc3Qgb2YgY29sdW1uc1xuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIFN1YnNldCBsaXN0IG9mIGdyaWQgY29sdW1ucywgYmFzZWQgb24gc3BhbiBhbmQgbG9jYXRpb25cbkBmdW5jdGlvbiBzdS1zbGljZShcbiAgJHNwYW4sXG4gICRjb2x1bW5zLFxuICAkbG9jYXRpb246IDEsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgICAkbG9jYXRpb246IHN1LXZhbGlkLWxvY2F0aW9uKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbiAgfVxuXG4gICRmbG9vcjogZmxvb3IoJHNwYW4pO1xuICAkc3ViLWNvbHVtbnM6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkbG9jYXRpb24gdG8gKCRsb2NhdGlvbiArICRmbG9vcikge1xuICAgICRzdWItY29sdW1uczogYXBwZW5kKCRzdWItY29sdW1ucywgbnRoKCRjb2x1bW5zLCAkaSkpO1xuICB9XG5cbiAgQGlmICRmbG9vciAhPSAkc3BhbiB7XG4gICAgJHJlbWFpbmRlcjogJHNwYW4gLSAkZmxvb3I7XG4gICAgJGNvbHVtbjogJGxvY2F0aW9uICsgJGZsb29yO1xuICAgICRzdWItY29sdW1uczogYXBwZW5kKCRzdWItY29sdW1ucywgbnRoKCRjb2x1bW5zLCAkY29sdW1uKSAqICRyZW1haW5kZXIpO1xuICB9XG5cbiAgQHJldHVybiAkc3ViLWNvbHVtbnM7XG59XG5cblxuXG4vLyBTdSBTdW1cbi8vIC0tLS0tLVxuLy8vIEdldCB0aGUgdG90YWwgc3VtIG9mIGNvbHVtbi11bml0cyBpbiBhIGxheW91dC5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyfSAtXG4vLy8gICBUb3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgZ3JpZFxuQGZ1bmN0aW9uIF9zdS1zdW0oXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLXNwYW4oJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgY29sdW1uLXN1bVxuICAkY29sdW1uLXN1bTogMDtcbiAgQGVhY2ggJGNvbHVtbiBpbiAkY29sdW1ucyB7XG4gICAgJGNvbHVtbi1zdW06ICRjb2x1bW4tc3VtICsgJGNvbHVtbjtcbiAgfVxuXG4gICRndXR0ZXItc3VtOiAoY2VpbChsZW5ndGgoJGNvbHVtbnMpKSArICRzcHJlYWQpICogJGd1dHRlcnM7XG4gICR0b3RhbDogaWYoKCRndXR0ZXItc3VtID4gMCksICRjb2x1bW4tc3VtICsgJGd1dHRlci1zdW0sICRjb2x1bW4tc3VtKTtcblxuICBAcmV0dXJuICR0b3RhbDtcbn1cblxuXG5cbi8vIFN1IENhbGNcbi8vIC0tLS0tLS1cbi8vLyBSZXR1cm4gYSB1c2FibGUgc3BhbiB3aWR0aCBhcyBhIGBjYWxjKClgIGZ1bmN0aW9uLFxuLy8vIGluIG9yZGVyIHRvIGNyZWF0ZSBtaXhlZC11bml0IGdyaWRzLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyIHwgbGlzdH0gJHNwYW4gLVxuLy8vICAgUHJlLXNsaWNlZCBsaXN0IG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgYXZhaWxhYmxlXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRjb250YWluZXItc3ByZWFkIFskc3ByZWFkXSAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bGVuZ3RofSAtXG4vLy8gICBSZWxhdGl2ZSBvciBzdGF0aWMgbGVuZ3RoIG9mIGEgc3BhbiBvbiB0aGUgZ3JpZFxuQGZ1bmN0aW9uIF9zdS1jYWxjLXNwYW4oXG4gICRzcGFuLFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICRjb250YWluZXItc3ByZWFkOiAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkc3Bhbjogc3UtdmFsaWQtc3Bhbigkc3Bhbik7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gICAgJGNvbnRhaW5lci1zcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkY29udGFpbmVyLXNwcmVhZCk7XG4gIH1cblxuICAvLyBTcGFuIGFuZCBjb250ZXh0XG4gICRzcGFuOiBfc3UtY2FsYy1zdW0oJHNwYW4sICRndXR0ZXJzLCAkc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJyk7XG4gICRjb250ZXh0OiBfc3UtY2FsYy1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCAkY29udGFpbmVyLXNwcmVhZCwgbm90ICd2YWxpZGF0ZScpO1xuXG4gIC8vIEZpeGVkIGFuZCBmbHVpZFxuICAkZml4ZWQtc3BhbjogbWFwLWdldCgkc3BhbiwgJ2ZpeGVkJyk7XG4gICRmbHVpZC1zcGFuOiBtYXAtZ2V0KCRzcGFuLCAnZmx1aWQnKTtcbiAgJGZpeGVkLWNvbnRleHQ6IG1hcC1nZXQoJGNvbnRleHQsICdmaXhlZCcpO1xuICAkZmx1aWQtY29udGV4dDogbWFwLWdldCgkY29udGV4dCwgJ2ZsdWlkJyk7XG5cbiAgJGNhbGM6ICcjeyRmaXhlZC1zcGFufSc7XG4gICRmbHVpZC1jYWxjOiAnKDEwMCUgLSAjeyRmaXhlZC1jb250ZXh0fSknO1xuXG4gIC8vIEZsdWlkLXZhbHVlc1xuICBAaWYgKG5vdCAkZmx1aWQtc3Bhbikge1xuICAgICRmbHVpZC1jYWxjOiBudWxsO1xuICB9IEBlbHNlIGlmICgkZmx1aWQtc3BhbiAhPSAkZmx1aWQtY29udGV4dCkge1xuICAgICRmbHVpZC1zcGFuOiAnKiAjeyRmbHVpZC1zcGFufSc7XG4gICAgJGZsdWlkLWNvbnRleHQ6IGlmKCRmbHVpZC1jb250ZXh0LCAnLyAjeyRmbHVpZC1jb250ZXh0fScsICcnKTtcbiAgICAkZmx1aWQtY2FsYzogJygjeyRmbHVpZC1jYWxjICRmbHVpZC1jb250ZXh0ICRmbHVpZC1zcGFufSknO1xuICB9XG5cbiAgQGlmICRmbHVpZC1jYWxjIHtcbiAgICAkY2FsYzogaWYoKCRjYWxjICE9ICcnKSwgJyN7JGNhbGN9ICsgJywgJycpO1xuICAgICRjYWxjOiAnI3skY2FsYyArICRmbHVpZC1jYWxjfSc7XG4gIH1cblxuICBAcmV0dXJuIGNhbGMoI3t1bnF1b3RlKCRjYWxjKX0pO1xufVxuXG5cblxuLy8gU3UgQ2FsYy1TdW1cbi8vIC0tLS0tLS0tLS0tXG4vLy8gR2V0IHRoZSB0b3RhbCBzdW0gb2YgZml4ZWQgYW5kIGZsdWlkIGNvbHVtbi11bml0c1xuLy8vIGZvciBjcmVhdGluZyBhIG1peGVkLXVuaXQgbGF5b3V0IHdpdGggYGNhbGMoKWAgdmFsdWVzLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGF2YWlsYWJsZVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYHNwYW5gIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bWFwfSAtXG4vLy8gICBNYXAgd2l0aCBgZml4ZWRgIGFuZCBgZmx1aWRgIGtleXNcbi8vLyAgIGNvbnRhaW5pbmcgdGhlIHByb3BlciBtYXRoIGFzIHN0cmluZ3NcbkBmdW5jdGlvbiBfc3UtY2FsYy1zdW0oXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLXNwYW4oJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gIH1cblxuICAkZmx1aWQ6IDA7XG4gICRmaXhlZDogKCk7XG4gICRjYWxjOiBudWxsO1xuXG4gIC8vIEd1dHRlcnNcbiAgJGd1dHRlcnM6ICAkZ3V0dGVycyAqIChsZW5ndGgoJGNvbHVtbnMpICsgJHNwcmVhZCk7XG5cbiAgLy8gQ29sdW1uc1xuICBAZWFjaCAkY29sIGluIGFwcGVuZCgkY29sdW1ucywgJGd1dHRlcnMpIHtcbiAgICBAaWYgdW5pdGxlc3MoJGNvbCkge1xuICAgICAgJGZsdWlkOiAkZmx1aWQgKyAkY29sO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGZpeGVkOiBfc3UtbWFwLWFkZC11bml0cygkZml4ZWQsICRjb2wpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbXBpbGUgRml4ZWQgVW5pdHNcbiAgQGVhY2ggJHVuaXQsICR0b3RhbCBpbiAkZml4ZWQge1xuICAgIEBpZiAoJHRvdGFsICE9ICgwICogJHRvdGFsKSkge1xuICAgICAgJGNhbGM6IGlmKCRjYWxjLCAnI3skY2FsY30gKyAjeyR0b3RhbH0nLCAnI3skdG90YWx9Jyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsYyBudWxsIG9yIHN0cmluZ1xuICBAaWYgJGNhbGMge1xuICAgICRjYWxjOiBpZihzdHItaW5kZXgoJGNhbGMsICcrJyksICcoI3skY2FsY30pJywgJyN7JGNhbGN9Jyk7XG4gIH1cblxuICAvLyBGbHVpZCAwID0+IG51bGxcbiAgJGZsdWlkOiBpZigoJGZsdWlkID09IDApLCBudWxsLCAkZmx1aWQpO1xuXG5cbiAgLy8gUmV0dXJuIG1hcFxuICAkcmV0dXJuOiAoXG4gICAgJ2ZpeGVkJzogJGNhbGMsXG4gICAgJ2ZsdWlkJzogJGZsdWlkLFxuICApO1xuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuXG5cbi8vIE5lZWRzIENhbGNcbi8vIC0tLS0tLS0tLS1cbi8vLyBDaGVjayBpZiBgY2FsYygpYCB3aWxsIGJlIG5lZWRlZCBpbiBkZWZpbmluZyBhIHNwYW4sXG4vLy8gaWYgdGhlIG5lY2Vzc2FyeSB1bml0cyBpbiBhIGdyaWQgYXJlIG5vdCBjb21wYXJhYmxlLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJHNwYW4gLVxuLy8vICAgU2xpY2Ugb2YgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHtib29sfSAtXG4vLy8gICBgVHJ1ZWAgd2hlbiB1bml0cyBkbyBub3QgbWF0Y2gsIGFuZCBgY2FsYygpYCB3aWxsIGJlIHJlcXVpcmVkXG5AZnVuY3Rpb24gX3N1LW5lZWRzLWNhbGMtb3V0cHV0KFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkc3Bhbjogc3UtdmFsaWQtc3Bhbigkc3Bhbik7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgfVxuXG4gICRoYXMtZ3V0dGVyOiBpZigobGVuZ3RoKCRzcGFuKSA+IDEpIG9yICgkc3ByZWFkID49IDApLCB0cnVlLCBmYWxzZSk7XG4gICRjaGVjazogaWYoJGhhcy1ndXR0ZXIsIGFwcGVuZCgkc3BhbiwgJGd1dHRlcnMpLCAkc3Bhbik7XG4gICRzYWZlLXNwYW46IF9zdS1pcy1jb21wYXJhYmxlKCRjaGVjay4uLik7XG5cbiAgQGlmICgkc2FmZS1zcGFuID09ICdzdGF0aWMnKSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfSBAZWxzZSBpZiAobm90ICRzYWZlLXNwYW4pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAkc2FmZS1mbHVpZDogX3N1LWlzLWNvbXBhcmFibGUoJGd1dHRlcnMsICRjb2x1bW5zLi4uKTtcblxuICBAcmV0dXJuIG5vdCAkc2FmZS1mbHVpZDtcbn1cbiIsIu+7vy5pY29uIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA2cHg7XHJcbn1cclxuXHJcbi5lbnZlbG9wIHtcclxuICB0b3A6IDJweDtcclxufSIsIu+7v0BrZXlmcmFtZXMgc2hpbmUge1xyXG4gIDEwMCUge1xyXG4gICAgbGVmdDogMTI1JTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcHVsc2UtaW4ge1xyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICB9XHJcblxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBidXp6LW91dCB7XHJcbiAgMTAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpIHJvdGF0ZSgyZGVnKTtcclxuICB9XHJcbiAgMjAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGUoLTJkZWcpO1xyXG4gIH1cclxuICAzMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpO1xyXG4gIH1cclxuICA0MCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZyk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGUoMWRlZyk7XHJcbiAgfVxyXG4gIDYwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCkgcm90YXRlKC0xZGVnKTtcclxuICB9XHJcbiAgNzAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZSgxZGVnKTtcclxuICB9XHJcbiAgODAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpO1xyXG4gIH1cclxuICA5MCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDApO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KSByb3RhdGUoMCk7XHJcbiAgfVxyXG59Iiwi77u/Ly8gTWFpbiBTdHlsZXNcbioge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuaHRtbCwgYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cbmJvZHkge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygwKTtcblxuICBmb250LWZhbWlseTogJGZvbnRCYXNlO1xuICBiYWNrZ3JvdW5kOiAkYmc7XG4gIGNvbG9yOiAkdGV4dDtcbn1cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmNvbnRhaW5lciwgLmhlYWRlciwgLmZvb3RlciwgLm5hdiwgLmJyZWFkY3J1bWJzLCAuaW5mbyB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLndyYXBwZXIsIC5wYWdlLCAuaW5kZXhQb3J0Zm9saW8ge1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcblxuICB3aWR0aDogMTAwJSAtIGd1dHRlcigpKjI7XG4gIG1hcmdpbjogMCBndXR0ZXIoKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4bCkge1xuICAgIG1heC13aWR0aDogJHhsO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5tYWluIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmEuc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi5iZ0xpZ2h0LCAuYnJlYWRjcnVtYnMsIC5pbmZvTGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZ0xpZ2h0O1xufVxuLmJnRGFyaywgLmluZm9MaW5rRGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZ0Rhcms7XG59XG4uYmdEYXJrZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdEYXJrZW47XG59XG4vKlxuISpiYXNlbGluZSBncmlkKiFcbi5tYWluIHtcbnBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIC8vYmFja2dyb3VuZDogc3VzeS1zdmctZ3JpZCgpIG5vLXJlcGVhdCBzY3JvbGw7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxufVxuKi9cblxuLy8gSGVhZGVyIHN0eWxlc1xuLmhlYWRlciB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcblxuICAuc29jaWFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAudG9wTGluZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDUwO1xuICAgIG9wYWNpdHk6IC45O1xuXG4gICAgJisuY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAmKy5jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL0BpbmNsdWRlIGJhc2VsaW5lLWdyaWQ7XG59XG5cbi5sb2dvLCAuc2xvZ2FuIHtcbiAgbWluLWhlaWdodDogbGluZUhlaWdodCgpKjM7XG4gIGxpbmUtaGVpZ2h0OiBsaW5lSGVpZ2h0KCkqMztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIG1pbi1oZWlnaHQ6IGxpbmVIZWlnaHQoKSo0O1xuICAgIGxpbmUtaGVpZ2h0OiBsaW5lSGVpZ2h0KCkqNDtcbiAgfVxufVxuXG4ubG9nbyB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBtYXJnaW46IGxpbmVIZWlnaHQoKS8yIGF1dG8gMDtcbiAgZmxvYXQ6IG5vbmU7XG5cbiAgb2JqZWN0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgd2lkdGg6IHNwYW4oMyk7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5zbG9nYW57XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIHAge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBjb2xvcjogJHRleHRTbG9nYW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udERlY29yO1xuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDApO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcbiAgICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMik7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB3aWR0aDogc3Bhbig2KTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG4udGVsVG9wIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IGxpbmVIZWlnaHQoKSoyO1xuICBsaW5lLWhlaWdodDogbGluZUhlaWdodCgpO1xuXG4gIHAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgfVxuXG4gIGEsIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRiZztcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIH1cblxuICAgICY6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0Rhcms7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbl9waG9uZS5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogNzAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICR0ZXh0U2xvZ2FuO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB3aWR0aDogc3BhbigzKTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWluLWhlaWdodDogbGluZUhlaWdodCgpKjQ7XG4gICAgbGluZS1oZWlnaHQ6IGxpbmVIZWlnaHQoKSo0O1xuXG4gICAgcCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICBhLCBhOnZpc2l0ZWQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRm9vdGVyIHN0eWxlc1xuLmZvb3RlciB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuICBwYWRkaW5nLXRvcDogbGluZUhlaWdodCgpO1xuXG4gIHAsIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuICAgIGNvbG9yOiAkdGV4dFNsb2dhbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gIH1cblxuICBoMiB7XG4gICAgY29sb3I6ICRiZztcbiAgfVxuXG4gIC53cmFwcGVyIHtcbiAgICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMiAwO1xuICB9XG5cbiAgLnNpZ25hdHVyZS13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnNvY2lhbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IHNwYW4oNSk7XG4gICAgfVxuICB9XG59XG5cbi5mb290ZXJDb250YWN0cyB7XG4gIHdpZHRoOiAyODBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZsb2F0OiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHNwYW4oNCk7XG4gICAgcGFkZGluZy10b3A6IGxpbmVIZWlnaHQoKS8yO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLmZvb3RlclBhcnRuZXJzIHtcbiAgd2lkdGg6IDI4MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogbGluZUhlaWdodCgpLzIgYXV0byAwO1xuICBmbG9hdDogbm9uZTtcblxuICBhLCBhOnZpc2l0ZWQge1xuICAgIG9wYWNpdHk6IC43O1xuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHdpZHRoOiBzcGFuKDIpO1xuICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5mb290ZXJDYXRhbG9nLCAuZm9vdGVySW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogc3BhbigzKTtcbiAgICBwYWRkaW5nLXRvcDogbGluZUhlaWdodCgpLzI7XG4gIH1cbn1cblxuLmZvb3Rlckl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxcHg7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcblxuICBwIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5zaWduYXR1cmUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiBzcGFuKDcpO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxufVxuLmNvcHksIC5saW5lY29yZSB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKC0yKTtcblxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6IHJnYmEoJHRleHRTbG9nYW4sIC43KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiBzcGFuKDcpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cbi5saW5lY29yZSB7XG4gIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICR0ZXh0U2xvZ2FuO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3JTb3VuZDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkYWN0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vL1NlY3Rpb24gc3R5bGVzXG4uY2xpZW50c0xvZ28sIC5jbGllbnRzTG9nbzIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDIqbGluZUhlaWdodCgpIGF1dG87XG5cbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG4uY2xpZW50c0xvZ28yIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uY2xpZW50TG9nbyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMjtcblxuICBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDcwcHg7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgb3BhY2l0eTogLjc7XG4gIH1cbn1cbi5ibG9nIHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG8gbGluZUhlaWdodCgpO1xuXG4gIGltZyB7XG4gICAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkvMiBhdXRvO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmJsb2dJbWcge1xuICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG59XG4uY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGNvbG9yQXJ0aXN0cztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gIH1cbn1cbi50aXRsZSB7XG4gIGNvbG9yOiAkYmdEYXJrO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpO1xuXG4gICZFc3RyYWRhIHtcbiAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IGxpbmVIZWlnaHQoKSoyIGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuOTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IGxpbmVIZWlnaHQoMyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgICAgZm9udC1zaXplOiAyLjQ0cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDIqMS41NjNyZW07XG4gICAgfVxuICB9XG59XG4udGl0bGVMaW5rIHtcbiAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpO1xuICBjb2xvcjogJGNvbG9yQXJ0aXN0cztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGJvdHRvbTogNHB4O1xuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJGFjdGl2ZTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkYWN0aXZlXG4gIH1cbn1cbi5pbmZvTGluaywgLmluZm9MaW5rRGFyayB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkgMDtcblxuICAud3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgtMSk7XG4gICAgY29sb3I6ICR0ZXh0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAoJG1kIC0gMSkpIHtcbiAgICAud3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBtYXJnaW46IGF1dG87XG5cbiAgICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGxpbmVIZWlnaHQoKS8yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkdGV4dCwgLjE1KTtcbiAgICAgIH1cbiAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5pbmZvTGlua0Rhcmsge1xuICBhLCBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkdGV4dFNsb2dhbjtcbiAgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogJGFjdGl2ZTtcbiAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAoJG1kIC0gMSkpIHtcbiAgLmluZm9MaW5rRGFyayB7XG4gICAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICAgICY6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJHRleHRTbG9nYW4sIC4zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnBvcHVsYXIge1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG8gbGluZUhlaWdodCgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICBhLCBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIEBpbmNsdWRlICBicmVha3BvaW50KCRsZykge1xuICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgfVxufVxuLnBvcHVsYXJJdGVtIHtcbiAgd2lkdGg6IHNwYW4oMTIpO1xuICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgLnBvcHVsYXJJbWc6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbjogc2hpbmUgLjc1cztcbiAgICB9XG5cbiAgICAucG9wdWxhclRpdGxlIHtcbiAgICAgIGNvbG9yOiAkYWN0aXZlO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogc3Bhbig0KTtcbiAgfVxufVxuLnBvcHVsYXJJbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTc1JTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMykgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMjVkZWcpO1xuICB9XG59XG5cbi5wb3B1bGFyVGl0bGUge1xuICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgY29sb3I6ICR0ZXh0VGl0bGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuNXM7XG59XG4udGFncywgLnRhZ3NNYWluIHtcbiAgQGluY2x1ZGUgdHlwZVNldHRpbmcoLTEpO1xuXG4gIGNvbG9yOiAkdGV4dExpZ2h0O1xuICBwYWRkaW5nOiAyKmxpbmVIZWlnaHQoKSAwO1xufVxuLnRhZ3NNYWluIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaW5lO1xufVxuXG4uZXJyb3IgIHtcbiAgZm9udC1zaXplOiAuNzVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDVweDtcbn1cblxuLy8gUG9wIHVwXG4ucG9wdXBXcmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkqMiBsaW5lSGVpZ2h0KCkgMDtcbiAgbWFyZ2luOiBhdXRvO1xuICB0cmFuc2l0aW9uOiBhbGwgLjdzIGVhc2UtaW4tb3V0O1xufVxuLnBvcHVwQmFjayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDIwMDtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJnRGFya2VuLCAuOCk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi5jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG5cblxuICAmOmFmdGVyLFxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogJHRleHREYXJrO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgdG9wOiAxMnB4O1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0b3A6IDEycHg7XG4gIH1cbn1cbiIsIu+7vy8vIE1lbnUgc3RpbGVzXG4ubmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnRGFya2VuO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMiAwO1xuXG4gIEBpbmNsdWRlICBicmVha3BvaW50KCRtZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkYmcgMCwgJGJnIDEwJSwgJGJnIDkwJSwgI2M5YzhjYyAxMDAlKTtcbiAgfVxufVxuXG4ubWVudVRvcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogc3BhbigxMCB3aWRlKTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcblxuICBAZXh0ZW5kICVtZW51TGk7XG5cbiAgbGkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIH1cblxuICBhLCBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogJGJnRGFya2VuO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuICB9XG5cbiAgLmFjdGl2ZT5hLCBhOmhvdmVyLCBhOmZvY3VzICB7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgIGJyZWFrcG9pbnQobWF4LXdpZHRoICgkbWQgLSAxKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxufVxuLm9yZGVyVG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZTtcbiAgY29sb3I6ICRiZztcbiAgZm9udC1mYW1pbHk6ICRmb250RGVjb3I7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMjcwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyAge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0RhcmtlbjtcbiAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDFweCkgdHJhbnNsYXRlWigwKTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDExMHB4O1xuICB9XG59XG5cbi5sYW5nLCAuc29jaWFsIHtcbiAgd2lkdGg6IDUwJTtcblxuICB1bCB7XG4gICAgQGV4dGVuZCAlbWVudUxpO1xuICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuICAgIGNvbG9yOiAkdGV4dFNsb2dhbjtcbiAgfVxuXG4gIGEsIGE6dmlzaXRlZCB7XG4gICAgb3BhY2l0eTogLjc7XG4gIH1cblxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5sYW5nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuXG4gIHVsIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICBsaTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIH1cblxuICBhLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbiAgfVxufVxuXG4uc29jaWFsIHtcbiAgZmxvYXQ6IGxlZnQ7XG5cbiAgbGkge1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG5cbiAgICAmOm5vdCg6bGFzdC1vZi10eXBlKXtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IHR5cGVTY2FsZSgxKTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XG5cbiAgfVxufVxuXG4uYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMiAwO1xuICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRsaW5lLCAuNSk7XG5cbiAgdWwge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgQGV4dGVuZCAlbWVudUxpO1xuICB9XG5cbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKC0xKTtcbiAgICBjb2xvcjogJHRleHRMaWdodDtcblxuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpiZWZvcmUge1xuICAgICAgY29udGVudDogJy8nO1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgfVxuICB9XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgtMSk7XG4gICAgY29sb3I6ICR0ZXh0TGlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAkdGV4dDtcbiAgfVxuXG4gIEBpbmNsdWRlICBicmVha3BvaW50KG1heC13aWR0aCAoJG1kIC0gMSkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5tZW51Rm9vdGVyLCAubWVudUNhdGFsb2cge1xuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogbGluZUhlaWdodCgpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTFweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogNHB4O1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG4ubWVudUxlZnR7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGluZTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRhY3RpdmU7XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udERlY29yO1xuICAgIGNvbG9yOiAkdGV4dFRpdGxlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IGxpbmVIZWlnaHQoKS8yO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICBsaSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaW5lO1xuICB9XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogbGluZUhlaWdodCgpLzI7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuICAgIGNvbG9yOiAkdGV4dERhcms7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAkYWN0aXZlO1xuICB9XG5cbiAgLmFjdGl2ZT5hICB7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnTGlnaHQ7XG4gIH1cbn1cblxuLmNhdGFsb2dNYXAge1xuICAgYSB7XG4gICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAmOmFmdGVyIHtcbiAgICAgICBjb250ZW50OiAnJztcbiAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgd2lkdGg6IDA7XG4gICAgICAgaGVpZ2h0OiAwO1xuICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgIHRvcDogMjBweDtcbiAgICAgICBib3JkZXI6IDRweCBzb2xpZDtcbiAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR0ZXh0RGFyaztcbiAgICAgfVxuICAgfVxuICBhOmhvdmVyOmFmdGVyLCBhOmZvY3VzOmFmdGVyIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJGFjdGl2ZTtcbiAgfVxuICAuYWN0aXZlIGE6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRhY3RpdmU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBsaSB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgIH1cblxuICAgIGEsIGE6dmlzaXRlZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogbGluZUhlaWdodCgpO1xuICAgICAgb3BhY2l0eTogLjc7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAkdGV4dFRpdGxlO1xuICAgIH1cbiAgICAuYWN0aXZlIGEsIC5hY3RpdmUgYTpob3ZlciwgLmFjdGl2ZSBhOmZvY3VzLCAuYWN0aXZlIGE6dmlzaXRlZCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICR0ZXh0VGl0bGU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGxpbmVIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICAuYWN0aXZlIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgfVxuXG4gIC5hY3RpdmUgdWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tZW51UG9ydGZvbGlvIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuXG4ubWVudUJvdHRvbSB7XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcblxuICB9XG5cblxufVxuXG4vLyBQYWdpbmF0aW9uXG5kaXYucGFnaW5hdGlvbiB7XG4gIEBleHRlbmQgJW1lbnVMaTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpbmU7XG59XG51bC5wYWdpbmF0aW9uIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogbGluZUhlaWdodCgpIGF1dG87XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gIGxpIHtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBmb250LXNpemU6IDFyZW07XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGEsIGE6dmlzaXRlZCwgc3BhbiB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5lO1xuICAgIGNvbG9yOiAkdGV4dExpZ2h0O1xuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAuYWN0aXZlID4gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkYWN0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0xpZ2h0O1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmRpc2FibGVkLCAuY29udHJvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICBmb250LXNpemU6IDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5jb250cm9sOmhvdmVyLCAuY29udHJvbDpmb2N1cywgLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxuICBsaTpudGgtb2YtdHlwZSgxKSB7XG4gICAgYSwgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZmlyc3QucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgbGk6bnRoLW9mLXR5cGUoMikge1xuICAgIGEsIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3ByZXYucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgbGk6bnRoLWxhc3Qtb2YtdHlwZSgxKSB7XG4gICAgYSwgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbGFzdC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICBsaTpudGgtbGFzdC1vZi10eXBlKDIpIHtcbiAgICBhLCBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9uZXh0LnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTW9iaWxlIG1lbnVcbmxhYmVsI21vYmlsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC5tZW51TW9iSWNvbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDVweDtcbiAgICB0b3A6IDVweDtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIC8vYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwuOCk7XG4gICAgLy9ib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSA1MCU7XG4gICAgdHJhbnNpdGlvbjogLjVzIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgI0ZGRiwgMCAwIDAgMCAjRkZGO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAuaGFtYnVyZ2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxOXB4O1xuICAgIGxlZnQ6IDhweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRiZywgLjgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgJjphZnRlcixcbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoJGJnLCAuOCk7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRvcDogLTZweDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBib3R0b206IC02cHg7XG4gICAgfVxuICB9XG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYkljb24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwdncgI0ZGRiwgMCAwIDAgMTAwdmggI0ZGRjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC5oYW1idXJnZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHREYXJrO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0RGFyaztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0RGFyaztcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIC5tZW51TW9iSWNvbiArIC5tZW51TW9iIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgIHRyYW5zaXRpb246IC4yNXMgLjJzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgLm1lbnVNb2Ige1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAtMTAwJTtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogLjI1cyAwcyBlYXNlLWluLW91dDtcblxuICAgIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xuICAgICAgbGluZS1oZWlnaHQ6IGxpbmVIZWlnaHQoKSoxLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQgLSAxKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwi77u/Ly8gSW5kZXggcGFnZSBzdHlsZXNcbi8vQWJvdXQsIGNsaWVudHNcbi5pbmRleEFib3V0LCAuaW5kZXhDbGllbnQge1xuICB3aWR0aDogc3BhbigxMik7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcDpsYXN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG4gIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgLmluZGV4QWJvdXQge1xuICAgIHdpZHRoOiBzcGFuKDYpO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgcGFkZGluZy1yaWdodDogbGluZUhlaWdodCgpO1xuICB9XG4gIC5pbmRleENsaWVudCB7XG4gICAgd2lkdGg6IHNwYW4oNik7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi8vQ2F0YWxvZyBsaW5rc1xuLmluZGV4Q2F0YWxvZyB7XG4gIHdpZHRoOiAxMDAlIC0gZ3V0dGVyKCkqMjtcbiAgbWFyZ2luOiAwIGd1dHRlcigpO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkgMCBsaW5lSGVpZ2h0KCkvMjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhsKSB7XG4gICAgbWF4LXdpZHRoOiAkeGw7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cbi5pbmRleENhdGVnb3J5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKS8yO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCk7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMXB4KSB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2l0aW9uOiAuNXM7XG5cbiAgJjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBwdWxzZS1pbjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IC41cztcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB3aWR0aDogc3Bhbig0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgd2lkdGg6IHNwYW4oMik7XG4gIH1cbn1cbi5jYXRlZ29yeVNvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yU291bmQ7XG59XG4uY2F0ZWdvcnlMaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckxpZ2h0O1xufVxuLmNhdGVnb3J5U2NlbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JTY2VuZTtcbn1cbi5jYXRlZ29yeU1lZGlhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yTWVkaWE7XG59XG4uY2F0ZWdvcnlEaiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckRKO1xufVxuLmNhdGVnb3J5QXJ0aXN0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvckFydGlzdHM7XG59XG4uY2F0ZWdvcnlUaXRsZSB7XG4gIGZvbnQtc2l6ZTogdHlwZVNjYWxlKC0xKTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG4gIGNvbG9yOiAkYmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jYXRlZ29yeUltZyB7XG4gIHdpZHRoOiA1cmVtO1xuICBoZWlnaHQ6IDVyZW07XG4gIG1hcmdpbjogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogJGJnO1xufVxuXG4vL1BvcnRmb2xpb1xuLmluZGV4UG9ydGZvbGlvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkgMDtcblxuICAuYnV0dG9uUG9ydGZvbGlvPi5idXR0b24ge1xuICAgICAgcGFkZGluZzogbGluZUhlaWdodCgpLzMgbGluZUhlaWdodCgpLzI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250QmFzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ0Rhcms7XG4gICAgICB9XG4gIH1cbn1cblxuLmluZGV4UG9ydGZvbGlvSXRlbSB7XG4gIG1heC13aWR0aDogNDgwcHg7XG4gIHdpZHRoOiBzcGFuKDEyKTtcbiAgcGFkZGluZy1ib3R0b206IGxpbmVIZWlnaHQoKTtcbiAgbWFyZ2luOiBhdXRvO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBpbmNsdWRlICBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiBzcGFuKDEwKTtcbiAgfVxuICBAaW5jbHVkZSAgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogc3Bhbig2KTtcbiAgfVxufVxuLmluZGV4UG9ydGZvbGlvV3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLmluZGV4UG9ydGZvbGlvSW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdMaWdodDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGltZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgfVxuXG4gIEBpbmNsdWRlICBicmVha3BvaW50KCRzbSkge1xuICAgIHdpZHRoOiAxM3JlbTtcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBpbWcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuLmluZGV4UG9ydGZvbGlvVGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xuICBvdmVyZmxvdzogYXV0bztcblxuICAmKy5idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAgYnJlYWtwb2ludCgkc20pIHtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgwKTtcbiAgICBtYXJnaW4tbGVmdDogMTRyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCkvMjtcbiAgICBoZWlnaHQ6IGxpbmVIZWlnaHQoKSo0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmKy5idXR0b24ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlICBicmVha3BvaW50KCRsZykge1xuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xuICB9XG59XG4uc2VvVGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR0ZXh0VGl0bGU7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRhY3RpdmU7XG4gIH1cbn0iLCLvu78vLyBHYWxsZXJ5IHN0eWxlc1xuXG4uZ2FsbGVyeSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCkqMS41O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cbi5nYWxsZXJ5SXRlbVRpbGUge1xuICB3aWR0aDogc3BhbigxMik7XG5cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcblxuICAuaXRlbUltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAuaXRlbVRpdGxlLCAuaXRlbVVzZWRUaXRsZSB7XG4gICAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgfVxuICAgIC5pdGVtSW1nIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDExMCU7XG4gICAgICBsZWZ0OiAtNSU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIH1cbiAgICAuaXRlbVVzZWRJbWcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuXG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XG4gICAgd2lkdGg6IHNwYW4oNik7XG4gICAgbWFyZ2luLWxlZnQ6IGd1dHRlcigpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgd2lkdGg6IHNwYW4oNCk7XG5cbiAgICAmOm50aC1jaGlsZCgybisxKSB7XG4gICAgICBtYXJnaW4tbGVmdDogZ3V0dGVyKCk7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuLmdhbGxlcnlJdGVtQmFyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogbGluZUhlaWdodCgpIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcblxuICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaW5lO1xuICAgIHBhZGRpbmctYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG4gIH1cblxuICAuaXRlbUltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICB9XG4gIC5pdGVtVGV4dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cztcblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IGxpbmVIZWlnaHQoKS8yO1xuICAgICAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG4gICAgfVxuICB9XG4gIC5tb3JlSXRlbSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGNvbG9yOiAgJHRleHRMaWdodDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG5cbiAgICAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICAkdGV4dExpZ2h0O1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIC5pdGVtSW1nIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDExMCU7XG4gICAgICBsZWZ0OiAtNSU7XG4gICAgICB0cmFuc2l0aW9uOiAuNXM7XG4gICAgfVxuXG4gICAgLml0ZW1JbWcgaW1nLm5vSG92ZXIge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gICAgLm1vcmVJdGVtIHtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBidXp6LW91dDtcbiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG5cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkYmcgIWltcG9ydGFudDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIC5pdGVtSW1nIHtcbiAgICAgIHdpZHRoOiAyMTBweDtcbiAgICAgIGhlaWdodDogMTByZW07XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gICAgLml0ZW1UZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDtcbiAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICBoMyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1vcmVJdGVtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuXG4gICAgICAuaXRlbVRleHQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLm1vcmVJdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMCk7XG4gIH1cbn1cbi5tb3JlSXRlbTpob3ZlciwgLm1vcmVJdGVtOmhvdmVyOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGxpbmU7XG59XG4uaXRlbVRleHQge1xuXG59XG4uaXRlbUltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnTGlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbWcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgfVxufVxuLml0ZW1UaXRsZSwgLml0ZW1Vc2VkVGl0bGUge1xuICBjb2xvcjogJHRleHRUaXRsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xufVxuXG4vLyBQaG90byBnYWxsZXJ5XG4uZ2FsbGVyeVBob3RvIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZ2FsbGVyeVBob3RvSXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxcHgpIHRyYW5zbGF0ZVooMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm94LXNoYWRvdywgdHJhbnNmb3JtO1xuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiBtYXgtY29udGVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IC0xMHB4IHJnYmEoJGJnRGFya2VuLCAwLjgpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuNTZyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAuNzhyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAuNzhyZW07XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC8gMyAtIDEuNTZyZW0pO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS41NnJlbSk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC8gMyAtIDEuNTZyZW0pO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhsKSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS41NnJlbSk7XG4gIH1cbn1cblxuLy8gU2VydmljZSBwYWdlXG4uc2VydmljZSwgc2VydmljZVBhZ2Uge1xuICAucG9wdWxhciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuLnNlcnZpY2VQYWdlIC5wb3B1bGFyIHtcbiAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpO1xufVxuXG4vLyBVc2VkIGVxdWlwbWVudCAmIHNlcnZpY2VzXG4uaXRlbVVzZWRJbWcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA0KmxpbmVIZWlnaHQoKTtcbiAgd2lkdGg6IDQqbGluZUhlaWdodCgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaW5lO1xuICBmbG9hdDogbGVmdDtcblxuICBpbWcge1xuICAgIG9wYWNpdHk6IC4yO1xuICB9XG59XG4uaXRlbVVzZWRUaXRsZSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMTBweCk7XG4gIGhlaWdodDogMy44cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbG9hdDogcmlnaHQ7XG5cbiAgQGluY2x1ZGUgdHlwZVNldHRpbmcoLTEpO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbn1cbi5pdGVtVXNlZFByaWNlIHtcbiAgQGluY2x1ZGUgdHlwZVNldHRpbmcoLTEpO1xuXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBjb2xvcjogJGFjdGl2ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMTBweDtcbiAgYm90dG9tOiAwO1xufVxuXG4vL1xuLmNhcm91c2VsLXNpbWlsYXIge1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpKjI7XG5cbiAgLnNsaWNrLXByZXYsXG4gIC5zbGljay1uZXh0IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IC0xKmxpbmVIZWlnaHQoKTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB6LWluZGV4OiAxOTtcblxuICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGV4dDtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR0ZXh0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItY29sb3I6ICRiZ0Rhcms7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmdEYXJrO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAuc2xpY2stcHJldiB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMzlweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gICAgfVxuXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMjRweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gIH1cblxuICAuc2xpY2stbmV4dCB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC00MHB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC03cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgbGVmdDogMjRweDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuLnNpbWlsYXJJdGVtVGlsZSB7XG4gIHdpZHRoOiBzcGFuKDEyKTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcblxuICAuaXRlbUltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAuaXRlbVRpdGxlLCAuaXRlbVVzZWRUaXRsZSB7XG4gICAgICBjb2xvcjogJGFjdGl2ZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAuNXM7XG4gICAgfVxuICAgIC5pdGVtSW1nIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDExMCU7XG4gICAgICBsZWZ0OiAtNSU7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIH1cbiAgICAuaXRlbVVzZWRJbWcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuXG4gICAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG59XG5cbi8vXG4uY2Fyb3VzZWwtc2hvdyB7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcbiAgQGV4dGVuZCAlY2xlYXJmaXg7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1ib3R0b206IGxpbmVIZWlnaHQoKSoyO1xuXG4gIC5zbGljay1wcmV2LFxuICAuc2xpY2stbmV4dCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAtMSpsaW5lSGVpZ2h0KCk7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgei1pbmRleDogMTk7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRleHQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkdGV4dDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmdEYXJrO1xuICAgICAgYmFja2dyb3VuZDogJGJnRGFyaztcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLnNsaWNrLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLXByZXYge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTM5cHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICAgIH1cblxuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDI0cHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuICB9XG5cbiAgLnNsaWNrLW5leHQge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNDBweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtN3B4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgIGxlZnQ6IDI0cHg7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gICAgfVxuICB9XG5cbiAgLmdhbGxlcnlJdGVtVGlsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vLyBWaWRlb1xuLnZpZGVvIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICBoZWlnaHQ6MDtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xuXG4gICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCB7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgdG9wOjA7XG4gICAgbGVmdDowO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgIHdpZHRoOiA0OCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDI3JTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tbGVmdDogNCU7XG4gICAgfVxuICB9XG59Iiwi77u/Ly8gTGVmdCBzaWRlXG4ubGVmdFNpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKSAwO1xuXG4gICYrLmNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB3aWR0aDogMjQwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAmKy5wcm9kdWN0LCAmKy5jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMDBweDtcbiAgICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMztcbiAgICB9XG4gIH1cbn1cblxuLm9yZGVyTGVmdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgbGluZUhlaWdodCgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdEYXJrZW47XG4gIGJvcmRlci1jb2xvcjogJGJnRGFya2VuO1xuICBjb2xvcjogJGJnO1xuICBmb250LXNpemU6IHR5cGVTY2FsZSgwKTtcbiAgZm9udC1mYW1pbHk6ICRmb250RGVjb3I7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlICBicmVha3BvaW50KG1heC13aWR0aCAoJG1kIC0gMSkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIENhdGFsb2cgcGFnZVxuXG4uY2F0YWxvZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpKjMvMjtcbn1cblxuLmNhdGFsb2dNZW51IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtICgxLjU2My8yKSoxcmVtKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGxpbmVIZWlnaHQoKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogbGluZUhlaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJS8zIC0gMS41NjMqMnJlbSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBsaW5lSGVpZ2h0KCk7XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBsaW5lSGVpZ2h0KCk7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDNuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nTWVudVRpdGxlIHtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzI7XG4gIGNvbG9yOiAkYmc7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIC4zKTtcblxuICBzdmcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIGg1IHtcbiAgICBtYXJnaW4tbGVmdDogMzZweDtcbiAgfVxufVxuXG4uc3ViY2F0YWxvZ01lbnUge1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMjtcblxuICBhLCBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogbGluZUhlaWdodCgpLzQgbGluZUhlaWdodCgpLzI7XG4gICAgY29sb3I6ICRiZztcbiAgICBvcGFjaXR5OiAxO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA0cHg7XG4gICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRvcDogMTZweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvcGFjaXR5OiAuNjtcbiAgfVxufVxuXG4vLyBQcm9kdWN0IHBhZ2Vcbi5wcm9kdWN0IHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xufVxuLnByb2R1Y3RUaXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgd2lkdGg6IDM1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuLnByb2R1Y3RJbWcge1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuLnByb2R1Y3RJbWcgaW1nIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLnByb2R1Y3RUaHVtYiB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW46IGxpbmVIZWlnaHQoKSAwO1xuICB9XG59XG4udGh1bWJuYWlsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAxMHB4O1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5lO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbn1cbi5wcm9kdWN0UHJpY2Uge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygyKTtcblxuICBjb2xvcjogJGFjdGl2ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgwKTtcbiAgfVxufVxuLm9yZGVyUHJvZHVjdCB7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi5wcm9kdWN0RGVzY3JpcHRpb24ge1xuICBwYWRkaW5nLXRvcDogbGluZUhlaWdodCgpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpbmU7XG5cbiAgaDEsIGgyLCBoMyB7XG4gICAgQGluY2x1ZGUgdHlwZVNldHRpbmcoMSk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250QmFzZTtcbiAgICBjb2xvcjogJHRleHREYXJrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbiIsIu+7vy5zdWJjYXRhbG9nIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgJisuY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gVGFic1xuaW5wdXQudGFiQ29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJitsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogbGluZUhlaWdodCgpLzIgLjVyZW0gbGluZUhlaWdodCgpLzIgMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR0ZXh0TGlnaHQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGxpbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkdGV4dFRpdGxlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQrbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbGluZTtcbiAgfVxuXG4gICY6Y2hlY2tlZCtsYWJlbCB7XG4gICAgY29sb3I6ICR0ZXh0VGl0bGU7XG4gIH1cbn1cblxuI0Rlc2NyaXB0aW9uOmNoZWNrZWQgfiAjdGFiRGVzY3JpcHRpb24sXG4jTGlzdDpjaGVja2VkIH4gI3RhYkxpc3QsXG4jU2NoZW1hOmNoZWNrZWQgfiAjdGFiU2NoZW1hLFxuI0FkdmFudGFnZXM6Y2hlY2tlZCB+ICN0YWJBZHZhbnRhZ2VzLFxuI1ByaWNlOmNoZWNrZWQgfiAjdGFiUHJpY2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogYWxsIC41cztcbn1cbi50YWJDb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkqMjtcbiAgcGFkZGluZy1ib3R0b206IGxpbmVIZWlnaHQoKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRsaW5lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuXG4gIC5nYWxsZXJ5IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpbmU7XG4gIH1cbn0iLCLvu78vLyBBYm91dCBwYWdlXG4uYnV0dG9uUG9ydGZvbGlvIHtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5idXR0b24ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnRGFyaztcbiAgICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMyBsaW5lSGVpZ2h0KCkvMiBsaW5lSGVpZ2h0KCkvNTtcbiAgICBjb2xvcjogJGJnO1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udERlY29yO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmU7XG4gIH1cbn0iLCLvu78vLyBDb250YWN0IHBhZ2Vcbi5jb250YWN0SW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy10b3A6IGxpbmVIZWlnaHQoKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogbGluZUhlaWdodCgpO1xuICB9XG59XG5cbi5jb250YWN0Rm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogLjVyZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgcGFkZGluZy1sZWZ0OiBsaW5lSGVpZ2h0KCk7XG4gIH1cbn1cbi5jb250YWN0SXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuXG4gIHAge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBhLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkdGV4dDtcbiAgfVxufVxuXG4uY29udGFjdEltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwKmxpbmVIZWlnaHQoKTtcbiAgYmFja2dyb3VuZDogdXJsKFwiL3VwbG9hZHMvb2ZmaWNlLmpwZ1wiKSBuby1yZXBlYXQgYm90dG9tIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuI21hcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwMHB4O1xufSJdfQ== */
