@charset "UTF-8";
/**
 * Foundation for Sites
 * Version 6.9.0
 * https://get.foundation
 * Licensed under MIT Open Source
 */
@import url("https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@1,600&display=swap");
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

a {
  background-color: transparent;
}

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

b,
strong {
  font-weight: bolder;
}

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

small {
  font-size: 80%;
}

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

img {
  border-style: none;
}

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

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

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

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

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

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

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

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

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

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

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

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

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

[data-whatintent=mouse] *, [data-whatintent=mouse] *:focus,
[data-whatintent=touch] *,
[data-whatintent=touch] *:focus,
[data-whatinput=mouse] *,
[data-whatinput=mouse] *:focus,
[data-whatinput=touch] *,
[data-whatinput=touch] *:focus {
  outline: none;
}

[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
}

.foundation-mq {
  font-family: "small=0em&mobile=25.875em&medium=40em&mobile-xl=40em&phablet=48em&tablet=60em&desktop=75em&desktop-xl=90em&desktop-xxl=103.75em";
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%;
}

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Open Sans", sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
}

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0;
}

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important;
}

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto;
}
[data-whatinput=mouse] button {
  outline: 0;
}

pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

.is-visible {
  display: block !important;
}

.is-hidden {
  display: none !important;
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

em,
i {
  font-style: italic;
  line-height: inherit;
}

strong,
b {
  font-weight: 700;
  line-height: inherit;
}

small {
  font-size: 80%;
  line-height: inherit;
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Open Sans", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: inherit;
  text-rendering: optimizeLegibility;
}
h1 small, .h1 small,
h2 small, .h2 small,
h3 small, .h3 small,
h4 small, .h4 small,
h5 small, .h5 small,
h6 small, .h6 small {
  line-height: 0;
  color: #cacaca;
}

h1, .h1 {
  font-size: 3rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2, .h2 {
  font-size: 2.75rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3, .h3 {
  font-size: 2.5rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4, .h4 {
  font-size: 1.875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5, .h5 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h6, .h6 {
  font-size: 1.25rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
  h1, .h1 {
    font-size: 3.125rem;
  }
  h2, .h2 {
    font-size: 2.75rem;
  }
  h3, .h3 {
    font-size: 2.5rem;
  }
  h4, .h4 {
    font-size: 1.875rem;
  }
  h5, .h5 {
    font-size: 1.25rem;
  }
  h6, .h6 {
    font-size: 1.25rem;
  }
}
a {
  line-height: inherit;
  color: #003DF5;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:focus {
  color: rgb(0, 52.46, 210.7);
}
a img {
  border: 0;
}

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
}

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6;
}

li {
  font-size: inherit;
}

ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

ol {
  margin-left: 1.25rem;
}

ul ul, ul ol, ol ul, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

dl {
  margin-bottom: 1rem;
}
dl dt {
  margin-bottom: 0.3rem;
  font-weight: 700;
}

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}
blockquote, blockquote p {
  line-height: 1.6;
  color: #8a8a8a;
}

abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none;
}

figure {
  margin: 0;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  color: #0a0a0a;
}

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a;
}

.lead {
  font-size: 125%;
  line-height: 1.6;
}

.stat {
  font-size: 2.5rem;
  line-height: 1;
}
p + .stat {
  margin-top: -1rem;
}

ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none;
}

.cite-block, cite {
  display: block;
  color: inherit;
  font-size: 0.8125rem;
}
.cite-block:before, cite:before {
  content: "— ";
}

.code-inline, code {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  font-weight: normal;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem;
}

.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: "Cormorant", serif;
  font-weight: normal;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem;
}

.mobile tablet desktop-text-left {
  text-align: left;
}

.mobile tablet desktop-text-right {
  text-align: right;
}

.mobile tablet desktop-text-center {
  text-align: center;
}

.mobile tablet desktop-text-justify {
  text-align: justify;
}

@media screen and (min-width: 90em) {
  .desktop-xl-text-left {
    text-align: left;
  }
  .desktop-xl-text-right {
    text-align: right;
  }
  .desktop-xl-text-center {
    text-align: center;
  }
  .desktop-xl-text-justify {
    text-align: justify;
  }
}
@media screen and (min-width: 103.75em) {
  .desktop-xxl-text-left {
    text-align: left;
  }
  .desktop-xxl-text-right {
    text-align: right;
  }
  .desktop-xxl-text-center {
    text-align: center;
  }
  .desktop-xxl-text-justify {
    text-align: justify;
  }
}
.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    color: black !important;
    print-color-adjust: economy;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  table.show-for-print {
    display: table !important;
  }
  thead.show-for-print {
    display: table-header-group !important;
  }
  tbody.show-for-print {
    display: table-row-group !important;
  }
  tr.show-for-print {
    display: table-row !important;
  }
  td.show-for-print {
    display: table-cell !important;
  }
  th.show-for-print {
    display: table-cell !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .print-break-inside {
    page-break-inside: auto;
  }
}
/**
 * Text color based on its background.
 * @param  {Number} $color Color.
 * @return {Number} Color.
 */
/**
 * Vertical align anything
 * @param {value} $position
 * return none
 */
html {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.section__wrapper {
  max-width: 85vw;
  margin-left: auto;
  margin-right: auto;
  padding-right: 0;
  padding-left: 0;
}
@media print, screen and (min-width: 60em) {
  .section__wrapper {
    max-width: 75rem;
    margin-left: auto;
    margin-right: auto;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}
@media print, screen and (min-width: 60em) and (min-width: 40em) {
  .section__wrapper {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.section {
  padding: 3.75rem 0;
  text-align: center;
}
@media print, screen and (min-width: 60em) {
  .section {
    text-align: left;
  }
}
.section__header {
  margin-bottom: 1.5rem;
}
@media print, screen and (min-width: 60em) {
  .section__header {
    margin-bottom: 3.75rem;
  }
}

.hidden {
  display: none;
}

.webplanner__description, .h-font-alt, :is(h2, h5) {
  font-family: "Cormorant", serif;
}

:is(h5) {
  font-weight: 500;
  font-style: italic;
}

.h-visible-hidden {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.h-visible-hidden:focus {
  clip: auto;
  height: auto;
  overflow: auto;
  position: absolute;
  width: auto;
}

.h-list--clean {
  list-style: none;
  margin: 0;
}
.h-list--counter {
  counter-reset: section;
}
.h-list--counter [class*=title]::before {
  counter-increment: section;
  content: counter(section) ". ";
}

.h-text--primary {
  color: #003DF5;
}
.h-text--italic {
  font-style: italic;
}
.h-text--uppercase {
  text-transform: uppercase;
}
.h-text--underlined {
  text-decoration: underline;
}
.h-text--left {
  text-align: left;
}

.h-font--light {
  font-weight: 300;
}
.h-font--regular {
  font-weight: normal;
}
.h-font--semibold {
  font-weight: 500;
}
.h-font--bold {
  font-weight: 700;
}

.h-font-xxs {
  font-size: 0.625rem;
}

.h-font-xs {
  font-size: 0.75rem;
}

.h-font-s {
  font-size: 0.875rem;
}

.h-font-m {
  font-size: 1rem;
}

.h-font-ml {
  font-size: 1.125rem;
}

.h-font-l {
  font-size: 1.25rem;
}

.h-font-xl {
  font-size: 1.5rem;
}

.h-font-xxl {
  font-size: 1.875rem;
}

.h-p-0 {
  /* stylelint-disable */
  padding: 0rem !important;
  /* stylelint-enable */
}

.h-p-1 {
  /* stylelint-disable */
  padding: 0.5rem !important;
  /* stylelint-enable */
}

.h-p-2 {
  /* stylelint-disable */
  padding: 1rem !important;
  /* stylelint-enable */
}

.h-p-3 {
  /* stylelint-disable */
  padding: 1.5rem !important;
  /* stylelint-enable */
}

.h-p-4 {
  /* stylelint-disable */
  padding: 2rem !important;
  /* stylelint-enable */
}

.h-p-6 {
  /* stylelint-disable */
  padding: 3rem !important;
  /* stylelint-enable */
}

.h-p-8 {
  /* stylelint-disable */
  padding: 4rem !important;
  /* stylelint-enable */
}

.h-p-10 {
  /* stylelint-disable */
  padding: 5rem !important;
  /* stylelint-enable */
}

.h-pt-0 {
  /* stylelint-disable */
  padding-top: 0rem !important;
  /* stylelint-enable */
}

.h-pt-1 {
  /* stylelint-disable */
  padding-top: 0.5rem !important;
  /* stylelint-enable */
}

.h-pt-2 {
  /* stylelint-disable */
  padding-top: 1rem !important;
  /* stylelint-enable */
}

.h-pt-3 {
  /* stylelint-disable */
  padding-top: 1.5rem !important;
  /* stylelint-enable */
}

.h-pt-4 {
  /* stylelint-disable */
  padding-top: 2rem !important;
  /* stylelint-enable */
}

.h-pt-6 {
  /* stylelint-disable */
  padding-top: 3rem !important;
  /* stylelint-enable */
}

.h-pt-8 {
  /* stylelint-disable */
  padding-top: 4rem !important;
  /* stylelint-enable */
}

.h-pt-10 {
  /* stylelint-disable */
  padding-top: 5rem !important;
  /* stylelint-enable */
}

.h-pr-0 {
  /* stylelint-disable */
  padding-right: 0rem !important;
  /* stylelint-enable */
}

.h-pr-1 {
  /* stylelint-disable */
  padding-right: 0.5rem !important;
  /* stylelint-enable */
}

.h-pr-2 {
  /* stylelint-disable */
  padding-right: 1rem !important;
  /* stylelint-enable */
}

.h-pr-3 {
  /* stylelint-disable */
  padding-right: 1.5rem !important;
  /* stylelint-enable */
}

.h-pr-4 {
  /* stylelint-disable */
  padding-right: 2rem !important;
  /* stylelint-enable */
}

.h-pr-6 {
  /* stylelint-disable */
  padding-right: 3rem !important;
  /* stylelint-enable */
}

.h-pr-8 {
  /* stylelint-disable */
  padding-right: 4rem !important;
  /* stylelint-enable */
}

.h-pr-10 {
  /* stylelint-disable */
  padding-right: 5rem !important;
  /* stylelint-enable */
}

.h-pb-0 {
  /* stylelint-disable */
  padding-bottom: 0rem !important;
  /* stylelint-enable */
}

.h-pb-1 {
  /* stylelint-disable */
  padding-bottom: 0.5rem !important;
  /* stylelint-enable */
}

.h-pb-2 {
  /* stylelint-disable */
  padding-bottom: 1rem !important;
  /* stylelint-enable */
}

.h-pb-3 {
  /* stylelint-disable */
  padding-bottom: 1.5rem !important;
  /* stylelint-enable */
}

.h-pb-4 {
  /* stylelint-disable */
  padding-bottom: 2rem !important;
  /* stylelint-enable */
}

.h-pb-6 {
  /* stylelint-disable */
  padding-bottom: 3rem !important;
  /* stylelint-enable */
}

.h-pb-8 {
  /* stylelint-disable */
  padding-bottom: 4rem !important;
  /* stylelint-enable */
}

.h-pb-10 {
  /* stylelint-disable */
  padding-bottom: 5rem !important;
  /* stylelint-enable */
}

.h-pl-0 {
  /* stylelint-disable */
  padding-left: 0rem !important;
  /* stylelint-enable */
}

.h-pl-1 {
  /* stylelint-disable */
  padding-left: 0.5rem !important;
  /* stylelint-enable */
}

.h-pl-2 {
  /* stylelint-disable */
  padding-left: 1rem !important;
  /* stylelint-enable */
}

.h-pl-3 {
  /* stylelint-disable */
  padding-left: 1.5rem !important;
  /* stylelint-enable */
}

.h-pl-4 {
  /* stylelint-disable */
  padding-left: 2rem !important;
  /* stylelint-enable */
}

.h-pl-6 {
  /* stylelint-disable */
  padding-left: 3rem !important;
  /* stylelint-enable */
}

.h-pl-8 {
  /* stylelint-disable */
  padding-left: 4rem !important;
  /* stylelint-enable */
}

.h-pl-10 {
  /* stylelint-disable */
  padding-left: 5rem !important;
  /* stylelint-enable */
}

.h-m-0 {
  /* stylelint-disable */
  margin: 0rem !important;
  /* stylelint-enable */
}

.h-m-1 {
  /* stylelint-disable */
  margin: 0.5rem !important;
  /* stylelint-enable */
}

.h-m-2 {
  /* stylelint-disable */
  margin: 1rem !important;
  /* stylelint-enable */
}

.h-m-3 {
  /* stylelint-disable */
  margin: 1.5rem !important;
  /* stylelint-enable */
}

.h-m-4 {
  /* stylelint-disable */
  margin: 2rem !important;
  /* stylelint-enable */
}

.h-m-6 {
  /* stylelint-disable */
  margin: 3rem !important;
  /* stylelint-enable */
}

.h-m-8 {
  /* stylelint-disable */
  margin: 4rem !important;
  /* stylelint-enable */
}

.h-m-10 {
  /* stylelint-disable */
  margin: 5rem !important;
  /* stylelint-enable */
}

.h-mt-0 {
  /* stylelint-disable */
  margin-top: 0rem !important;
  /* stylelint-enable */
}

.h-mt-1 {
  /* stylelint-disable */
  margin-top: 0.5rem !important;
  /* stylelint-enable */
}

.h-mt-2 {
  /* stylelint-disable */
  margin-top: 1rem !important;
  /* stylelint-enable */
}

.h-mt-3 {
  /* stylelint-disable */
  margin-top: 1.5rem !important;
  /* stylelint-enable */
}

.h-mt-4 {
  /* stylelint-disable */
  margin-top: 2rem !important;
  /* stylelint-enable */
}

.h-mt-6 {
  /* stylelint-disable */
  margin-top: 3rem !important;
  /* stylelint-enable */
}

.h-mt-8 {
  /* stylelint-disable */
  margin-top: 4rem !important;
  /* stylelint-enable */
}

.h-mt-10 {
  /* stylelint-disable */
  margin-top: 5rem !important;
  /* stylelint-enable */
}

.h-mr-0 {
  /* stylelint-disable */
  margin-right: 0rem !important;
  /* stylelint-enable */
}

.h-mr-1 {
  /* stylelint-disable */
  margin-right: 0.5rem !important;
  /* stylelint-enable */
}

.h-mr-2 {
  /* stylelint-disable */
  margin-right: 1rem !important;
  /* stylelint-enable */
}

.h-mr-3 {
  /* stylelint-disable */
  margin-right: 1.5rem !important;
  /* stylelint-enable */
}

.h-mr-4 {
  /* stylelint-disable */
  margin-right: 2rem !important;
  /* stylelint-enable */
}

.h-mr-6 {
  /* stylelint-disable */
  margin-right: 3rem !important;
  /* stylelint-enable */
}

.h-mr-8 {
  /* stylelint-disable */
  margin-right: 4rem !important;
  /* stylelint-enable */
}

.h-mr-10 {
  /* stylelint-disable */
  margin-right: 5rem !important;
  /* stylelint-enable */
}

.h-mb-0 {
  /* stylelint-disable */
  margin-bottom: 0rem !important;
  /* stylelint-enable */
}

.h-mb-1 {
  /* stylelint-disable */
  margin-bottom: 0.5rem !important;
  /* stylelint-enable */
}

.h-mb-2 {
  /* stylelint-disable */
  margin-bottom: 1rem !important;
  /* stylelint-enable */
}

.h-mb-3 {
  /* stylelint-disable */
  margin-bottom: 1.5rem !important;
  /* stylelint-enable */
}

.h-mb-4 {
  /* stylelint-disable */
  margin-bottom: 2rem !important;
  /* stylelint-enable */
}

.h-mb-6 {
  /* stylelint-disable */
  margin-bottom: 3rem !important;
  /* stylelint-enable */
}

.h-mb-8 {
  /* stylelint-disable */
  margin-bottom: 4rem !important;
  /* stylelint-enable */
}

.h-mb-10 {
  /* stylelint-disable */
  margin-bottom: 5rem !important;
  /* stylelint-enable */
}

.h-ml-0 {
  /* stylelint-disable */
  margin-left: 0rem !important;
  /* stylelint-enable */
}

.h-ml-1 {
  /* stylelint-disable */
  margin-left: 0.5rem !important;
  /* stylelint-enable */
}

.h-ml-2 {
  /* stylelint-disable */
  margin-left: 1rem !important;
  /* stylelint-enable */
}

.h-ml-3 {
  /* stylelint-disable */
  margin-left: 1.5rem !important;
  /* stylelint-enable */
}

.h-ml-4 {
  /* stylelint-disable */
  margin-left: 2rem !important;
  /* stylelint-enable */
}

.h-ml-6 {
  /* stylelint-disable */
  margin-left: 3rem !important;
  /* stylelint-enable */
}

.h-ml-8 {
  /* stylelint-disable */
  margin-left: 4rem !important;
  /* stylelint-enable */
}

.h-ml-10 {
  /* stylelint-disable */
  margin-left: 5rem !important;
  /* stylelint-enable */
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 1.625rem;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  padding: 0.85em 2em;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  text-transform: uppercase;
}
[data-whatinput=mouse] .button {
  outline: 0;
}
.button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
  background-color: #003DF5;
  color: #fefefe;
}
.button:hover, .button:focus {
  background-color: rgb(0, 48.8, 196);
  color: #fefefe;
}
[data-whatinput=mouse] .button {
  outline: 0;
}
.button:hover {
  text-decoration: none;
}
.button .svg-icon {
  fill: #fefefe;
}
.button--hollow {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 1.625rem;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  padding: 0.85em 2em;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  font-weight: 500;
  text-transform: uppercase;
}
[data-whatinput=mouse] .button--hollow {
  outline: 0;
}
.button--hollow, .button--hollow:hover, .button--hollow:focus, .button--hollow.disabled, .button--hollow.disabled:hover, .button--hollow.disabled:focus, .button--hollow[disabled], .button--hollow[disabled]:hover, .button--hollow[disabled]:focus {
  background-color: transparent;
}
.button--hollow, .button--hollow.disabled, .button--hollow[disabled], .button--hollow.disabled:hover, .button--hollow[disabled]:hover, .button--hollow.disabled:focus, .button--hollow[disabled]:focus {
  border: 1px solid #003DF5;
  color: #003DF5;
}
.button--hollow:hover, .button--hollow:focus {
  border-color: rgb(0, 30.5, 122.5);
  color: rgb(0, 30.5, 122.5);
}
.button--hollow .svg-icon {
  fill: #003DF5;
}
.button--secondary {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 1.625rem;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  padding: 0.85em 2em;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}
[data-whatinput=mouse] .button--secondary {
  outline: 0;
}
.button--secondary, .button--secondary.disabled, .button--secondary[disabled], .button--secondary.disabled:hover, .button--secondary[disabled]:hover, .button--secondary.disabled:focus, .button--secondary[disabled]:focus {
  background-color: #fefefe;
  color: #0a0a0a;
}
.button--secondary:hover, .button--secondary:focus {
  background-color: rgb(203.2, 203.2, 203.2);
  color: #0a0a0a;
}
.button--special {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 1.625rem;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  padding: 0.85em 2em;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}
[data-whatinput=mouse] .button--special {
  outline: 0;
}
.button--special, .button--special.disabled, .button--special[disabled], .button--special.disabled:hover, .button--special[disabled]:hover, .button--special.disabled:focus, .button--special[disabled]:focus {
  background-color: #43cf9f;
  color: #0a0a0a;
}
.button--special:hover, .button--special:focus {
  background-color: rgb(44.5830508475, 174.6169491525, 130.0338983051);
  color: #0a0a0a;
}
.button--shrink {
  display: inline-block;
  width: auto;
  margin: 0;
}
.button--disabled {
  opacity: 0.25;
  cursor: not-allowed;
}
.button--social {
  font-weight: 500;
}
.button--social .svg-icon {
  fill: #fefefe;
}
.button:focus {
  outline: thin dotted;
}

button:focus {
  outline: transparent;
}

.list__counter {
  counter-reset: mycounter;
}
.list__counter dt::before {
  content: counter(mycounter) ". ";
  counter-increment: mycounter;
}
.list__counter dd {
  counter-reset: subcounter;
}
.list__counter div {
  counter-reset: subsubcounter;
}
.list__counter .subtitle::before {
  content: counter(mycounter) "." counter(subcounter) ". ";
  counter-increment: subcounter;
}
.list__counter .subsubtitle::before {
  content: counter(mycounter) "." counter(subcounter) "." counter(subsubcounter) ". ";
  counter-increment: subsubcounter;
}

.card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
.card__text {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1;
}
.card__name {
  font-weight: 700;
}
.card__description {
  margin: 0;
  padding: 0 1rem;
}
@media print, screen and (min-width: 48em) {
  .card__description {
    padding: 0;
    padding-right: 1rem;
  }
}
.card__image {
  margin-bottom: 1rem;
}

.navbar-open {
  overflow: hidden;
}
.navbar input {
  display: none;
}
.navbar input:checked + .navbar__label span:nth-child(2) {
  opacity: 0;
}
.navbar input:checked + .navbar__label span:first-child {
  -webkit-transform: translateY(7px) translateX(0) rotate(45deg);
          transform: translateY(7px) translateX(0) rotate(45deg);
}
.navbar input:checked + .navbar__label span:last-child {
  -webkit-transform: translateY(-8px) translateX(0) rotate(-45deg);
          transform: translateY(-8px) translateX(0) rotate(-45deg);
}
.navbar input:checked ~ .navbar__list {
  height: auto;
}
@media print, screen and (min-width: 60em) {
  .navbar input:checked ~ .navbar__list {
    height: inherit;
  }
}
.navbar input + label {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
}
@media print, screen and (min-width: 60em) {
  .navbar input + label {
    display: none;
  }
}
.navbar__label {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #fefefe;
  border-radius: 50%;
  height: 100%;
  height: 2.75rem;
  margin: 0;
  padding: 0.8rem 0.6666666667rem;
  width: 2.75rem;
}
.navbar__label:focus {
  outline: 1px dotted #fefefe;
}
.navbar__label span {
  background-color: #0a0a0a;
  border-radius: 1px;
  display: block;
  height: 3px;
  transition: transform 0.2s, -webkit-transform 0.2s;
  width: 100%;
}
.navbar__list {
  -webkit-transition: height 0.4s ease;
  transition: height 0.4s ease;
  z-index: 120;
}
@media print, screen and (max-width: 59.99875em) {
  .navbar__list {
    background-color: rgba(0, 10, 38, 0.95);
    left: 0;
    height: 0;
    text-align: center;
    overflow: hidden;
    position: absolute;
    top: 88px;
    width: 100%;
  }
}
@media print, screen and (min-width: 60em) {
  .navbar__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    height: 4rem;
    overflow: visible;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.navbar__list__item {
  font-size: 1.25rem;
  margin: auto;
  padding: 1rem;
  width: 75vw;
}
.navbar__list__item:first-child {
  border-top: 1px solid #6da2ff;
}
@media print, screen and (min-width: 60em) {
  .navbar__list__item:first-child {
    border: 0;
  }
}
.navbar__list__item:not(:last-child) {
  border-bottom: 1px solid #6da2ff;
}
@media print, screen and (min-width: 60em) {
  .navbar__list__item:not(:last-child) {
    border: 0;
  }
}
@media print, screen and (min-width: 60em) {
  .navbar__list__item {
    margin: inherit;
    min-width: 120px;
    width: auto;
  }
}
@media print, screen and (min-width: 60em) {
  .navbar li ul {
    display: none;
  }
}
@media print, screen and (min-width: 60em) {
  .navbar li:hover span::after {
    content: "-";
    width: 24px;
  }
}
.navbar li:hover ul {
  display: inherit;
}
.navbar li li {
  font-size: 1rem;
  margin-top: 1rem;
}
@media print, screen and (min-width: 60em) {
  .navbar li li {
    margin-top: inherit;
  }
}
.navbar a {
  color: inherit;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
@media print, screen and (min-width: 60em) {
  .navbar a span::after {
    color: #fefefe;
    content: "+";
    display: inline-block;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    margin-left: 0.5rem;
    height: 24px;
    position: relative;
    width: 24px;
  }
}
@media print, screen and (min-width: 60em) {
  .navbar a.rounded {
    border: 1px solid #f7f7f7;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 1.875rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    padding: 0.5rem 1rem;
  }
}

.instructions-navbar {
  left: 0;
  position: fixed;
  top: 15vh;
  z-index: 9;
}
.instructions-navbar__input {
  display: none;
}
.instructions-navbar__input:checked + label {
  -webkit-transform: translateX(1rem);
          transform: translateX(1rem);
}
.instructions-navbar__input:checked + label span:nth-child(2) {
  opacity: 0;
}
.instructions-navbar__input:checked + label span:first-child {
  -webkit-transform: translateY(7px) translateX(1px) rotate(45deg);
          transform: translateY(7px) translateX(1px) rotate(45deg);
}
.instructions-navbar__input:checked + label span:last-child {
  -webkit-transform: translateY(-9px) translateX(1px) rotate(-45deg);
          transform: translateY(-9px) translateX(1px) rotate(-45deg);
}
.instructions-navbar__input:checked ~ .instructions-navbar__wrapper {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.instructions-navbar__input:checked ~ .instructions-navbar__mask::before {
  content: "";
}
.instructions-navbar__input + label {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
}
.instructions-navbar__label {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: #6da2ff;
  border-radius: 0 1.875rem 1.875rem 0;
  color: #071119;
  height: 3.75rem;
  left: -1rem;
  margin: 0;
  padding-right: 0.46875rem;
  position: relative;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  width: 4.375rem;
  z-index: 10;
}
.instructions-navbar__label:hover {
  -webkit-transform: translateX(1rem);
          transform: translateX(1rem);
}
.instructions-navbar__label:focus {
  outline: 1px dotted #6da2ff;
}
@media print, screen and (min-width: 60em) {
  .instructions-navbar__label {
    width: 6.25rem;
  }
}
.instructions-navbar__label__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #071119;
  border-radius: 50%;
  height: 2.75rem;
  padding: 0.8rem 0.6666666667rem;
  width: 2.75rem;
}
.instructions-navbar__label span {
  background-color: #6da2ff;
  border-radius: 1px;
  display: block;
  height: 2px;
  transition: transform 0.2s, -webkit-transform 0.2s;
  width: 100%;
}
.instructions-navbar__label span:nth-child(2) {
  width: 75%;
}
.instructions-navbar__wrapper {
  background-color: #6da2ff;
  border-radius: 0 1.875rem 1.875rem 0;
  max-height: calc(80vh - 32px);
  overflow-y: scroll;
  padding: 0.5rem 0;
  position: relative;
  text-align: right;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  -webkit-transform: translateX(-500px);
          transform: translateX(-500px);
  top: -2rem;
  z-index: 9;
}
.instructions-navbar__mask::before {
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  background-color: rgba(10, 10, 10, 0.35);
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
}
.instructions-navbar__list {
  padding: 2rem 1rem;
}
.instructions-navbar li {
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.instructions-navbar li:last-child  {
  margin: 0;
}
.instructions-navbar li > ul {
  list-style: none;
  margin: 0;
}
.instructions-navbar li li {
  font-weight: normal;
}
.instructions-navbar a {
  color: #071119;
  -webkit-transition: color 0.1s ease;
  transition: color 0.1s ease;
}
.instructions-navbar a:hover {
  color: #f7f7f7;
}

.tabs {
  /** tab styling **/
  /* Style the buttons inside the tab */
  /* Change background color of buttons on hover */
  /* Create an active/current tablink class */
  /* Style the tab content */
}
.tabs .tab {
  overflow: hidden;
  background: #fefefe;
  border: 2px solid #003DF5;
  border-radius: 1.625rem;
  float: right;
}
.tabs .tab.active {
  overflow: visible;
}
@media print, screen and (max-width: 39.99875em) {
  .tabs .tab {
    left: 0;
    right: 0;
    margin: auto;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    float: none;
  }
}
.tabs .tab button {
  background-color: inherit;
  color: #003DF5;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 0.75rem 1.875rem;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  font-size: 1.25rem;
  font-weight: 700;
}
.tabs .tab button:hover {
  background-color: #fefefe;
}
.tabs .tab button.active {
  -webkit-box-shadow: 0 0 0 2px #003DF5;
          box-shadow: 0 0 0 2px #003DF5;
  background-color: #003DF5;
  color: #fefefe;
  border-radius: 1.625rem;
}
.tabs .tabcontent {
  display: none;
}
.tabs .tabcontent.active {
  display: block;
}

.header {
  background-image: url(../img/bkg_hero.webp);
  background-repeat: no-repeat;
  background-size: cover;
  color: #fefefe;
  padding: 0;
}
.header--gray {
  background-color: #071119;
  background-image: none;
}
.header__wrapper {
  padding-top: 0;
}
.header__navbar {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: rgba(0, 10, 38, 0.95);
  -webkit-box-shadow: 0 1px 25px rgba(10, 10, 10, 0.1);
          box-shadow: 0 1px 25px rgba(10, 10, 10, 0.1);
  height: 88px;
  padding: 1rem;
  position: fixed;
  top: 0;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  width: 100%;
  z-index: 100;
}
.header__navbar.hide {
  top: -88px;
}
@media print, screen and (min-width: 60em) {
  .header__navbar {
    background: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    padding: 0;
    position: inherit;
  }
}
.header__navbar__wrapper {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  padding-right: 0;
  padding-left: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  width: 100%;
}
@media print, screen and (min-width: 60em) {
  .header__navbar__wrapper {
    padding: 1rem;
  }
}
.header__logo__image {
  width: clamp(200px, 35vw, 300px);
}
.header-placeholder {
  height: 88px;
}
@media print, screen and (min-width: 60em) {
  .header-placeholder {
    display: none;
  }
}

.hero {
  padding: 0;
  padding-top: 3rem;
}
@media print, screen and (min-width: 60em) {
  .hero {
    background-image: url(../img/hero_smartphones-app.webp?v=1.11);
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: 300px auto;
    margin-top: 1.5rem;
    padding-top: 0;
  }
  .hero--no-image {
    background-image: none;
  }
}
@media print, screen and (min-width: 75em) {
  .hero {
    background-size: 425px auto;
  }
}
.hero__wrapper {
  min-height: 475px;
  padding: 3.75rem 0;
}
.hero__wrapper__empty__top {
  min-height: 475px;
  padding: 9.375rem 1rem 3.75rem;
}
.hero__header {
  margin-bottom: 3rem;
}
@media print, screen and (min-width: 60em) {
  .hero__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 75em) {
  .hero__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(60% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 75em) {
  .hero__header.full-width {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .hero__body {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(60% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
  .hero__body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
}
.hero__picture {
  margin-bottom: 3rem;
}
@media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
  .hero__picture {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(50% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3;
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 60em) {
  .hero__picture {
    display: none;
  }
}
.hero__cta {
  margin-bottom: 3rem;
}
@media print, screen and (min-width: 48em) {
  .hero__cta {
    text-align: left;
  }
}
@media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
  .hero__cta {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (max-width: 59.99875em) {
  .hero__cta__image {
    max-width: 40vw;
    height: 3.75rem;
  }
}
@media print, screen and (min-width: 48em) and (max-width: 59.99875em) {
  .hero__copy {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(50% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.hero__title {
  font-size: 2.1875rem;
  font-weight: 700;
}
@media print, screen and (min-width: 60em) {
  .hero__title {
    font-size: 2.5rem;
  }
}
@media print, screen and (min-width: 48em) {
  .hero__title {
    text-align: left;
  }
}
.hero__subtitle {
  font-size: clamp(1.875rem, 2.375rem, 10vh);
  font-style: italic;
  font-weight: 500;
  margin-bottom: 2rem;
}
@media print, screen and (min-width: 60em) {
  .hero__subtitle {
    margin-bottom: inherit;
  }
}
@media print, screen and (min-width: 48em) {
  .hero__subtitle {
    text-align: left;
  }
}
.hero__citation {
  font-size: 1.25rem;
  font-style: italic;
  font-weight: 500;
  margin-bottom: 2rem;
}
@media print, screen and (min-width: 60em) {
  .hero__citation {
    margin-bottom: inherit;
  }
}
.hero__image {
  margin-bottom: 1rem;
}
.hero__image__50 {
  margin-bottom: 1rem;
  margin-top: 3.75rem;
  height: 3.125rem;
}
@media print, screen and (min-width: 48em) {
  .hero__description {
    text-align: left;
  }
}
.hero__green__button {
  background-color: #43CF9F;
  color: #071119;
  -webkit-transition: background-color 0.1s ease;
  transition: background-color 0.1s ease;
}
.hero__green__button:hover {
  background-color: #1BA777;
}
.hero__green__button:focus {
  background-color: #43CF9F;
}

.highlights {
  background-color: #003DF5;
  color: #fefefe;
}
.highlights__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  text-align: center;
}
.highlights__list__element {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: calc(83.3333333333% - 1.25rem);
  margin-left: 0.625rem;
  margin-right: 0.625rem;
  margin-left: calc(8.3333333333% + 1.25rem / 2);
}
.highlights__list__element:not(:last-child) {
  margin-bottom: 3.125rem;
}
@media print, screen and (min-width: 60em) {
  .highlights__list__element:not(:last-child) {
    margin-bottom: 0;
  }
}
@media print, screen and (min-width: 60em) {
  .highlights__list__element {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(33.3333333333% - 6rem);
    margin-left: 3rem;
    margin-right: 3rem;
  }
}
.highlights__picture {
  aspect-ratio: 1/1;
  background-color: #fefefe;
  border-radius: 50%;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin-bottom: 1rem;
  padding: 0.5rem;
  width: 100px;
}
@supports not (aspect-ratio: 1/1) {
  .highlights__picture {
    height: 100px;
  }
}
.highlights__title {
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
}

.webplanner {
  text-align: center;
}
@media print, screen and (min-width: 60em) {
  .webplanner {
    background-image: url(/assets/img/webplanner.webp);
    background-position: 500px center;
    background-repeat: no-repeat;
    background-size: 742px 394px;
    text-align: left;
  }
}
@media print, screen and (min-width: 75em) {
  .webplanner {
    background-position: right center;
  }
}
@media screen and (min-width: 103.75em) {
  .webplanner {
    background-position: 75% center;
  }
}
@media print, screen and (min-width: 60em) {
  .webplanner__wrapper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
@media print, screen and (min-width: 60em) {
  .webplanner__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(50% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .webplanner__main {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(50% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.webplanner__description {
  font-size: 1.25rem;
}
@media print, screen and (min-width: 60em) {
  .webplanner__image {
    display: none;
  }
}
.webplanner__list {
  margin-bottom: 1rem;
}
.webplanner__list__title {
  margin-bottom: 0.5rem;
}
.webplanner__list__title::before {
  display: block;
}
@media print, screen and (min-width: 60em) {
  .webplanner__list__title::before {
    display: inline;
  }
}

.nativeapp {
  aspect-ratio: 16/9;
  background-image: url(../img/nativeapp.webp);
  background-position: 80% center;
  background-attachment: fixed;
  color: #fefefe;
  position: relative;
}
@media print, screen and (min-width: 75em) {
  .nativeapp {
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    aspect-ratio: 16/9;
    background: none;
    padding: 0;
    position: relative;
  }
}
@media print, screen and (min-width: 75em) and (min-width: 60em) {
  .nativeapp::before {
    background: rgba(7, 17, 25, 0.7);
    background: -webkit-gradient(linear, left bottom, left top, color-stop(30%, rgb(7, 17, 25)), to(rgba(7, 17, 25, 0))), -webkit-gradient(linear, left top, right top, color-stop(15%, rgb(15, 7, 25)), to(rgba(0, 91, 234, 0.7)));
    background: linear-gradient(0deg, rgb(7, 17, 25) 30%, rgba(7, 17, 25, 0) 100%), linear-gradient(90deg, rgb(15, 7, 25) 15%, rgba(0, 91, 234, 0.7) 100%);
    bottom: 0;
    content: "";
    height: 100%;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    z-index: 1;
  }
}
@media print, screen and (min-width: 60em) {
  .nativeapp__wrapper {
    padding: 3.75rem 0;
    position: relative;
    z-index: 999;
  }
}
@media print, screen and (min-width: 60em) {
  .nativeapp__main, .nativeapp__header, .nativeapp__footer {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(75% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.nativeapp__footer {
  margin-top: 3.75rem;
}
.nativeapp__video {
  aspect-ratio: 16/9;
}
@supports not (aspect-ratio: 16/9) {
  .nativeapp__video::before {
    content: "";
    float: left;
    height: 0;
    margin-left: -1px;
    padding-top: 52.4633207373%;
    width: 1px;
  }
  .nativeapp__video::after {
    clear: both;
    content: "";
    display: table;
  }
}
.nativeapp video {
  display: none;
  -webkit-filter: url(#nativeapp__filter);
          filter: url(#nativeapp__filter);
}
@media print, screen and (min-width: 75em) {
  .nativeapp video {
    aspect-ratio: 16/9;
    display: inherit;
    right: 0;
    margin: 0;
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    width: 85vw;
  }
}
.nativeapp li {
  margin-bottom: 1rem;
}

.features {
  background-attachment: fixed;
  background-color: #627387;
  background-image: url(../img/feature_background.webp?v=1.11);
  background-position: center;
  background-size: cover;
  color: #fefefe;
  padding: 0;
}
@media print, screen and (min-width: 60em) {
  .features {
    padding: 3.75rem 0;
  }
}
.features__wrapper {
  background-color: rgba(10, 10, 10, 0.75);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  padding: 3rem 1rem;
}
@media print, screen and (min-width: 60em) {
  .features__wrapper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: transparent;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
    padding: 1rem;
  }
}
@media print, screen and (min-width: 60em) {
  .features__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(50% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .features__main {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(41.6666666667% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.features dt {
  font-size: 1.25rem;
}
.features dd {
  margin-bottom: 2.25rem;
}

.team {
  background-color: #edeff5;
}
@media print, screen and (min-width: 75em) {
  .team__description {
    max-width: 75%;
  }
}
@media print, screen and (min-width: 48em) {
  .team__cards {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
}
.team .card {
  margin-bottom: 2rem;
}
@media print, screen and (min-width: 48em) {
  .team .card {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 50%;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 1rem;
  }
}
@media print, screen and (min-width: 60em) {
  .team .card {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 33.3333333333%;
    margin-left: 0;
    margin-right: 0;
  }
}

.partners__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 48em) {
  .partners__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.partners li {
  line-height: 1.2;
  text-align: center;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
}
@media print, screen and (min-width: 48em) {
  .partners li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(33.3333333333% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .partners li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(20% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.partners img {
  margin-bottom: 0.5rem;
}
.partners small {
  display: block;
}

.contact {
  background-color: #0a0a0a;
  color: #fefefe;
}
.contact__subtitle {
  font-size: 2.5rem;
}
@media print, screen and (min-width: 75em) {
  .contact__wrapper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 50rem;
  }
}
.contact__href {
  color: #fefefe;
}
.contact__href:hover {
  color: #fefefe;
}
.contact__header {
  margin-bottom: 0.5rem;
}
@media print, screen and (min-width: 75em) {
  .contact__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(75% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 75em) {
  .contact__main {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(58.3333333333% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 75em) {
  .contact__footer {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(25% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
    margin-top: 4rem;
  }
}
.contact__newsletter {
  margin-bottom: 2rem;
}
@media print, screen and (min-width: 48em) {
  .contact__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
  .contact__list li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: auto;
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .contact__list {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(100% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
    display: block;
  }
  .contact__list li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    margin-bottom: 3rem;
  }
  .contact__list img {
    margin-right: 1rem;
  }
  .contact__list :is(dl, dt) {
    margin: 0;
  }
}

.footer {
  background-color: #003DF5;
  color: #fefefe;
}
.footer a {
  color: #fefefe;
}
@media print, screen and (min-width: 48em) {
  .footer__wrapper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media print, screen and (min-width: 48em) {
  .footer__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 41.6666666667%;
    margin-left: 0;
    margin-right: 0;
  }
}
@media print, screen and (min-width: 75em) {
  .footer__header {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 33.3333333333%;
    margin-left: 0;
    margin-right: 0;
  }
}
.footer__icons {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 2rem 0;
}
.footer__menu {
  font-size: 1rem;
  font-weight: 500;
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 2rem;
}
@media print, screen and (min-width: 48em) {
  .footer__menu {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }
}
[data-whatinput=mouse] .footer__menu li {
  outline: 0;
}
.footer__menu a,
.footer__menu .button {
  line-height: 1;
  text-decoration: none;
  display: block;
  padding: 1.25rem 1rem;
}
.footer__menu input,
.footer__menu select,
.footer__menu a,
.footer__menu button {
  margin-bottom: 0;
}
.footer__menu input {
  display: inline-block;
}
.footer__menu li {
  border-top: 1px solid #7da5f9;
}
@media print, screen and (min-width: 48em) {
  .footer__menu li {
    border: 0;
  }
}
.footer__menu a {
  font-weight: 700;
}
.footer__menu ul {
  display: none;
}
@media print, screen and (min-width: 48em) {
  .footer__menu ul {
    display: inherit;
    font-size: 0.875rem;
  }
}
.footer__menu ul a {
  font-weight: normal;
  padding: 0 1rem;
}
@media print, screen and (min-width: 48em) {
  .footer__menu {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-bottom: 0;
  }
}
.footer__copyright {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media print, screen and (min-width: 48em) {
  .footer__copyright {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}
.footer__copyright a {
  padding-bottom: 1rem;
}

.hiringdark {
  background-color: #8a8a8a;
}
.hiringdark__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 48em) {
  .hiringdark__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.hiringdark li {
  line-height: 1.2;
  text-align: center;
}
@media print, screen and (min-width: 48em) {
  .hiringdark li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(33.3333333333% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .hiringdark li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(20% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.hiringdark img {
  margin-bottom: 0.5rem;
}
.hiringdark small {
  display: block;
}

.hiringlight {
  background-color: #e6e6e6;
}
.hiringlight__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 48em) {
  .hiringlight__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.hiringlight li {
  line-height: 1.2;
  text-align: center;
}
@media print, screen and (min-width: 48em) {
  .hiringlight li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(33.3333333333% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .hiringlight li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(20% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.hiringlight img {
  margin-bottom: 0.5rem;
}
.hiringlight small {
  display: block;
}

.usecases {
  position: relative;
  background-color: #f7f7f7;
}
.usecases .carousel {
  position: relative;
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .carousel {
    height: 81rem;
  }
}
@media print, screen and (max-width: 59.99875em) {
  .usecases .carousel {
    height: 83.75rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .usecases .carousel {
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
  }
}
.usecases .slide {
  border: none;
  display: none;
  top: 0;
  left: 0;
  z-index: 20;
  height: 56.25rem;
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .slide {
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
  }
}
.usecases .slide.current {
  display: block;
  z-index: 50;
  width: 100%;
}
.usecases .slide.prev {
  left: -100%;
}
.usecases .slide.next {
  left: 100%;
}
.usecases .slidenav {
  position: absolute;
  bottom: 1.875rem;
  left: calc((100vw - 75rem) / 2);
  z-index: 20;
  margin: 0;
  width: 33.9375rem;
  height: 3.25rem;
  background: #fff;
  border: 2px solid #003DF5;
  border-radius: 1.625rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .slidenav {
    left: 0;
    right: 0;
    margin: auto;
    bottom: 3.75rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .usecases .slidenav {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    position: relative;
    height: 100%;
    width: 85vw;
  }
}
.usecases .slidenav li {
  display: inline-block;
  width: 100%;
  height: 100%;
  margin: 0;
}
.usecases .slidenav button {
  background-color: transparent;
  line-height: 1em;
  height: 100%;
  width: 100%;
  font-weight: bold;
  color: #003DF5;
  cursor: pointer;
  text-transform: uppercase;
}
@media print, screen and (max-width: 39.99875em) {
  .usecases .slidenav button {
    padding: 1rem;
  }
  .usecases .slidenav button.zero {
    border-radius: 1.625rem 1.625rem 0 0 !important;
  }
  .usecases .slidenav button.one {
    border-radius: 0 0 0 0 !important;
  }
  .usecases .slidenav button.two {
    border-radius: 0 0 1.625rem 1.625rem !important;
  }
}
.usecases .slidenav button.current {
  -webkit-box-shadow: 0 0 0 2px #003DF5;
          box-shadow: 0 0 0 2px #003DF5;
  background-color: #003DF5;
  color: #fff;
  border-radius: 1.625rem;
}
.usecases .usecase {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
.usecases .usecase .text-content {
  padding-right: calc(52vw - (100vw - 75rem) / 2);
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .usecase .text-content {
    padding-right: 15vw;
    max-width: auto;
  }
}
@media print, screen and (max-width: 59.99875em) {
  .usecases .usecase .text-content {
    padding-right: 0;
  }
}
.usecases .usecase .text-content h6 {
  margin-bottom: 0.25rem;
}
.usecases .usecase .text-content p {
  margin-bottom: 0.5rem;
}
.usecases .usecase dt {
  margin-top: 1.125rem;
}
.usecases .usecase .background {
  height: 56.25rem;
  right: 0;
  top: 0;
  padding-left: 50%;
  position: absolute;
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .usecase .background {
    position: static;
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
    width: 100%;
    padding: 0;
  }
}
.usecases .usecase .background .img-content {
  height: 56.25rem;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 0% 50%;
     object-position: 0% 50%;
}
@media print, screen and (max-width: 89.99875em) {
  .usecases .usecase .background .img-content {
    -o-object-position: 20% 50%;
       object-position: 20% 50%;
  }
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .usecase .background .img-content {
    height: 28.125rem;
    width: 100%;
  }
}
.usecases .usecase .background .quotation-content {
  z-index: 20;
  position: absolute;
  top: 3.75rem;
}
@media print, screen and (max-width: 74.99875em) {
  .usecases .usecase .background .quotation-content {
    top: 21.25rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .usecases .usecase .background .quotation-content {
    top: 22.75rem;
  }
}
.usecases .usecase .background .quotation-content .quotation {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  color: #071119;
  background: #fff;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 2px;
  margin: 0 0 0.5rem 1.5rem;
}
@media print, screen and (max-width: 89.99875em) {
  .usecases .usecase .background .quotation-content .quotation {
    font-size: 2rem;
    line-height: 2.5rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .usecases .usecase .background .quotation-content .quotation {
    font-size: 1.25rem;
    line-height: 1.5625rem;
    margin: 0 0 0.25rem;
  }
}

.playstore .quotation {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem;
}
.playstore .text-content {
  margin: 3.75rem 0;
}
.playstore footer {
  margin-left: 0;
}
.playstore img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
  width: 100vw;
}
@media print, screen and (max-width: 74.99875em) {
  .playstore img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: 30%;
       object-position: 30%;
    min-height: 11.25rem;
  }
}

.download_app .quotation {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem;
}
.download_app .text-content {
  margin: 3.75rem 0;
}
.download_app footer {
  margin-left: 0;
}
.download_app img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
}
@media print, screen and (max-width: 74.99875em) {
  .download_app img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: 30%;
       object-position: 30%;
    min-height: 11.25rem;
  }
}
.download_app .full-width-img {
  width: 100vw;
}

.early-access-sdk h1 {
  margin-bottom: 1.875rem;
}
@media print, screen and (max-width: 39.99875em) {
  .early-access-sdk h1 {
    font-size: 2.25rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .early-access-sdk .section {
    padding: 2rem 0;
  }
}
@media print, screen and (max-width: 89.99875em) {
  .early-access-sdk .section {
    max-height: 75rem;
  }
}
.early-access-sdk img {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: top;
     object-position: top;
  width: 100vw;
}
@media print, screen and (max-width: 74.99875em) {
  .early-access-sdk img {
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: 30%;
       object-position: 30%;
  }
}

.footer-container {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  background-color: #FFF;
  padding: 0;
  background-color: unset;
}

.footer-branding {
  height: 6.25rem;
}

@media print, screen and (max-width: 89.99875em) {
  .footer-container {
    width: unset;
  }
  .footer-branding {
    height: 5rem;
  }
}
@media print, screen and (max-width: 59.99875em) {
  .footer-branding {
    height: 3.75rem;
  }
}
.awards {
  background-color: #0F172E;
  color: #fefefe;
}
.awards__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (min-width: 48em) {
  .awards__list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row wrap;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
.awards li {
  line-height: 1.2;
  text-align: center;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
}
@media print, screen and (min-width: 48em) {
  .awards li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(33.3333333333% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
@media print, screen and (min-width: 60em) {
  .awards li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: calc(20% - 1.875rem);
    margin-left: 0.9375rem;
    margin-right: 0.9375rem;
  }
}
.awards img {
  margin-bottom: 0.5rem;
}
.awards small {
  display: block;
}
.awards__subtitle {
  font-size: 1.25rem;
}

.instructions__first-launch {
  background-color: #f7f7f7;
}
.instructions__using-app {
  background-color: #071119;
  color: #fefefe;
}
.instructions__using-app a {
  color: #6da2ff;
}
.instructions section {
  text-align: left;
}
.instructions figure {
  margin: auto;
  margin-bottom: 2rem;
  max-width: 18.75rem;
}
@media print, screen and (min-width: 60em) {
  .instructions figure {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-right: 2rem;
  }
}
.instructions figcaption {
  font-size: 0.8125rem;
  font-style: italic;
  margin-top: 0.5rem;
}
.instructions :is(h4, h5) {
  padding-top: 1rem;
}
.instructions h5 {
  font-family: "Open Sans", sans-serif;
}

.blog-searchbar {
  background-color: #4e5a6e;
  padding: 3.75rem 0;
}
.blog-searchbar h2 {
  font-family: "Cormorant", serif;
  font-style: italic;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 3rem;
  color: #f7f7f7;
  margin-bottom: 0.75rem;
}
.blog-searchbar input {
  background: #f9fcfe;
  border: 1px solid #071119;
  -webkit-box-shadow: inset 0px 2px 2px -1px #edeff5;
          box-shadow: inset 0px 2px 2px -1px #edeff5;
  border-radius: 1.625rem;
  padding: 0.75rem 1.75rem;
  width: 65%;
  background-image: url("../icons/icon_search.svg");
  background-position: 97% 50%;
  background-repeat: no-repeat;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-searchbar input {
    width: 90%;
  }
}

.blog-main {
  text-align: left;
}
.blog-main .flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-main .flex.highlight {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.blog-main .right-content {
  margin-left: 2rem;
}
.blog-main .right-content.small {
  width: 52%;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-main .right-content.small {
    width: auto;
    margin-left: 2rem;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1;
    -webkit-box-flex: 0;
    -webkit-flex-grow: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
  }
}
.blog-main .section__post {
  padding-bottom: 0;
}
.blog-main .section.hidden-post {
  display: none;
}
.blog-main .img {
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
  border-radius: 50%;
}
.blog-main .img.small {
  width: 9.375rem;
  height: 9.375rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-main .img.small {
    width: 4.5rem;
    height: 4.5rem;
  }
}
.blog-main .img.highlight {
  width: 18.75rem;
  height: 18.75rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-main .img.highlight {
    width: 12.5rem;
    height: 12.5rem;
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 0;
    -webkit-flex-grow: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
    margin-top: 1.125rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .blog-main .img.highlight {
    width: 6.5rem;
    height: 6.5rem;
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 0;
    -webkit-flex-grow: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
    margin-top: 1.125rem;
  }
}
.blog-main .icons-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.blog-main .icons-list.small {
  margin: 0.75rem 0 0;
}
.blog-main .icons-list.highlight {
  margin: 1.125rem 0 0;
}
.blog-main .icon {
  margin-right: 0.625rem;
}
.blog-main .icon.small {
  height: 2.1875rem;
  width: 2.1875rem;
}
.blog-main .icon.highlight {
  height: 2.8125rem;
  width: 2.8125rem;
}
.blog-main h3,
.blog-main h6 {
  margin: 0;
  text-align: start;
}
.blog-main p {
  color: #071119;
  text-align: left;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
}
.blog-main p.small {
  margin: 0.375rem 0 0;
}
.blog-main p.highlight {
  margin: 0.75rem 0 0;
}
.blog-main a {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
  font-weight: bold;
}
.blog-main a.highlight {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.blog-main hr {
  border-color: #071119;
  margin: 4rem 0 1.875rem;
}

.blog-post {
  color: #071119;
}
.blog-post .main-img {
  margin-top: 3.125rem;
}
.blog-post .main-img.tile {
  max-width: 100%;
  width: 100%;
  height: 34.875rem;
  background-repeat: repeat;
  background-size: 33% 75%;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .main-img.tile {
    height: 18.75rem;
    background-size: 65% 75% !important;
  }
}
.blog-post .main-img.tile.a_guideline_to_design_inclusive_app_interfaces {
  background: url("../img/blog/a_guideline_to_design_inclusive_app_interfaces/main.gif");
}
.blog-post .main-img.tile.sound_as_a_tool_to_interact_with_the_world {
  background: url("../img/blog/sound_as_a_tool_to_interact_with_the_world/main.gif");
}
.blog-post h3 {
  margin-bottom: 0;
}
.blog-post h6 {
  font-size: 1.25rem;
}
.blog-post p {
  color: #071119;
  line-height: 1.375rem;
  margin: 0;
}
.blog-post p.h-font--bold {
  margin-top: 1.875rem;
}
.blog-post li {
  margin: 0;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post li {
    text-align: start;
  }
}
.blog-post h6,
.blog-post figure,
.blog-post figure + p,
.blog-post .v-img-container + p {
  margin: 1.875rem 0 0;
}
.blog-post ul {
  margin: 0.625rem 0;
  padding: 0 2rem;
}
.blog-post ul.icons-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  padding: 0;
}
.blog-post .icon {
  margin: 1.875rem 0.625rem 0 0;
  height: 2.8125rem;
  width: 2.8125rem;
}
.blog-post p + p,
.blog-post h6 + p {
  margin-top: 0.625rem;
}
.blog-post figure {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.blog-post figcaption {
  margin-top: 0.5rem;
  text-align: center;
  color: #4e5a6e;
  font-style: normal;
  font-weight: 300;
  font-size: 0.875rem;
  line-height: 1.1875rem;
}
.blog-post a {
  -ms-word-break: break-all;
  word-break: break-all;
  word-break: break-word;
}
.blog-post hr {
  border-color: #071119;
  margin: 1.875rem 0 0;
}
.blog-post .citation {
  font-style: normal;
  font-weight: normal;
  font-size: 1.25rem;
  line-height: 1.6875rem;
  color: #4e5a6e;
  padding: 0 15%;
  margin: 1.875rem 0;
}
.blog-post .citation span {
  font-size: 1rem;
  line-height: 1.375rem;
  display: block;
}
.blog-post .h-img-s,
.blog-post .h-img-m,
.blog-post .h-img-b {
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
}
.blog-post .h-img-s {
  max-height: 6.75rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .h-img-s {
    max-height: 5rem;
  }
}
.blog-post .h-img-m {
  max-height: 16.625rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .h-img-m {
    max-height: 12.5rem;
  }
}
.blog-post .h-img-b {
  max-height: 27.375rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .h-img-b {
    max-height: 21.875rem;
  }
}
.blog-post .v-img-m {
  height: 27.375rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .v-img-m {
    height: 25rem;
  }
}
.blog-post .v-img-b {
  height: 42.6875rem;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .v-img-b {
    height: 25rem;
  }
}
.blog-post .v-img-container {
  text-align: center;
  display: block;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .v-img-container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.blog-post .v-img-container figure {
  width: 50%;
}
@media print, screen and (max-width: 59.99875em) {
  .blog-post .v-img-container figure {
    width: 100%;
  }
}

.impressum-and-policies {
  word-break: break-word;
}
.impressum-and-policies section {
  margin-bottom: 2rem;
  text-align: left;
}
.impressum-and-policies .iub_content {
  padding: 0 !important;
}
.impressum-and-policies #iubenda_policy {
  font-family: "Open Sans", sans-serif;
}
.impressum-and-policies #iubenda_policy p {
  font-size: 1rem !important;
  line-height: 1.6;
}
.impressum-and-policies #iubenda_policy h2 {
  font-size: 1.25rem !important;
}
.impressum-and-policies #iubenda_policy h3,
.impressum-and-policies #iubenda_policy h4,
.impressum-and-policies #iubenda_policy h5,
.impressum-and-policies #iubenda_policy h6 {
  font-size: 1rem !important;
}
.impressum-and-policies #iubenda_policy .one_line_col > h2 {
  font-size: 1.875rem !important;
}

.landing-pages-mvp {
  overflow-x: hidden;
  font-family: "Lexend", sans-serif;
  padding-bottom: 40px;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp {
    margin-bottom: 0;
  }
}
.landing-pages-mvp h5,
.landing-pages-mvp h4,
.landing-pages-mvp h3,
.landing-pages-mvp h2,
.landing-pages-mvp h1,
.landing-pages-mvp p {
  font-family: "Lexend", sans-serif;
}
.landing-pages-mvp .section {
  padding-inline: 1rem;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .section {
    padding: 1rem 0;
  }
}
.landing-pages-mvp .section__wrapper {
  max-width: 96.25rem;
}
@media print, screen and (max-width: 89.99875em) {
  .landing-pages-mvp .section__wrapper {
    padding: 0 5%;
  }
}
.landing-pages-mvp .section__1 {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .section__1 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin: 2.5rem 0 0;
  }
}
.landing-pages-mvp .section__1__left {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
  text-align: start;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.landing-pages-mvp .section__1__left h4 {
  font-size: 2.25rem;
  font-weight: 400;
}
@media print, screen and (max-width: 89.99875em) {
  .landing-pages-mvp .section__1__left h4 {
    font-size: 1.875rem;
  }
}
.landing-pages-mvp .section__1__left p {
  font-size: 1.375rem;
}
@media print, screen and (max-width: 89.99875em) {
  .landing-pages-mvp .section__1__left p {
    font-size: 1.125rem;
  }
}
.landing-pages-mvp .section__1__left p.highlight {
  color: #003DF5;
}
.landing-pages-mvp .section__1__left p.highlight__immersive-tourism {
  color: #EB3333;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .section__1__left {
    width: 70vw;
  }
}
.landing-pages-mvp .section__1__right {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .section__1__right {
    padding: 1.25rem 0 0 0;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center;
  }
}
.landing-pages-mvp .section__1p {
  margin-bottom: 1.5rem;
}
.landing-pages-mvp .section__1 img {
  padding-left: 4rem;
  height: 100%;
  max-width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .section__1 img {
    padding: 0;
    text-align: center;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center;
    margin-bottom: 1.5rem;
  }
}
.landing-pages-mvp .section__1 .logo {
  max-height: 11.25rem;
}
.landing-pages-mvp .button {
  font-size: 1.3vw;
  line-height: 1.5vw;
  border-radius: 5rem;
}
@media screen and (min-width: 103.75em) {
  .landing-pages-mvp .button {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .button {
    margin: 2.5rem 0;
    font-size: 1rem;
    line-height: 1.25rem;
  }
}
@media print, screen and (max-width: 25.87375em) {
  .landing-pages-mvp .button {
    font-size: 0.75rem;
  }
}
.landing-pages-mvp .button__hero_wrapper {
  position: absolute;
  left: 12%;
  top: 71%;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .button__hero_wrapper {
    top: 35%;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.landing-pages-mvp .button__hero_wrapper__bike-delivery {
  position: absolute;
  left: 17%;
  top: 69%;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .button__hero_wrapper__bike-delivery {
    top: 35%;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.landing-pages-mvp .button__hero_wrapper__immersive-tourism {
  position: absolute;
  left: 7%;
  top: 73%;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .button__hero_wrapper__immersive-tourism {
    top: 42%;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.landing-pages-mvp .button__content_wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-top: 2.5rem;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .button__content_wrapper {
    margin-top: 0;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.landing-pages-mvp .button a {
  color: inherit;
}
.landing-pages-mvp .background-gradient-button {
  /* warning: gradient uses a rotation that is not supported by CSS and may not behave as expected */
  background: radial-gradient(118.12% 166.38% at 16.8% 66.89%, #003df5 13.7%, #7291ec 67.71%, #72e5ec 100%);
  border-width: 0;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 90vw;
  height: auto;
}
.landing-pages-mvp .background-gradient-button__immersive-tourism {
  background: linear-gradient(91.5deg, #EB3333 5.29%, #F35E5E 53.95%, #F5597F 95.31%);
  border-width: 0;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 90vw;
  height: auto;
}
.landing-pages-mvp .image__wrapper {
  max-width: 112.5rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
.landing-pages-mvp .image__wrapper .mobile {
  display: none;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp .image__wrapper .mobile {
    display: block;
    width: 100vw;
  }
  .landing-pages-mvp .image__wrapper .desktop {
    display: none;
  }
}
.landing-pages-mvp .image__wrapper img {
  -o-object-fit: contain;
     object-fit: contain;
}
.landing-pages-mvp .horizontal-img {
  padding: 0;
}
.landing-pages-mvp.landing-pages-mvp__contact-form {
  background-color: rgba(160, 151, 217, 0.1);
  height: 100vh;
  padding: 0;
}
@media print, screen and (max-width: 39.99875em) {
  .landing-pages-mvp.landing-pages-mvp__contact-form {
    padding: 5rem 0 0 0;
  }
}
.landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper p {
  font-size: 1.375rem;
}
.landing-pages-mvp.landing-pages-mvp__contact-form .contact_form_wrapper .form-heading {
  margin-top: 3rem;
  text-align: start;
  width: 85vw;
  max-width: 76.875rem;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIl9mb250cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIl9zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCJfZnVuY3Rpb25zLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfdXRpbHMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCJfdHlwb2dyYXBoeS5zY3NzIiwiX2hlbHBlcnMuc2NzcyIsImF0b21zL19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwibW9sZWN1bGVzL19saXN0cy5zY3NzIiwibW9sZWN1bGVzL19jYXJkLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIm1vbGVjdWxlcy9fbmF2YmFyLnNjc3MiLCJtb2xlY3VsZXMvX2luc3RydWN0aW9ucy1uYXZiYXIuc2NzcyIsIm1vbGVjdWxlcy9fdGFicy5zY3NzIiwib3JnYW5pc21zL19oZWFkZXIuc2NzcyIsIm9yZ2FuaXNtcy9faGVyby5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19jZWxsLnNjc3MiLCJvcmdhbmlzbXMvX2hpZ2hsaWdodHMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fcG9zaXRpb24uc2NzcyIsIm9yZ2FuaXNtcy9fd2VicGxhbm5lci5zY3NzIiwib3JnYW5pc21zL19uYXRpdmVhcHAuc2NzcyIsIm9yZ2FuaXNtcy9fZmVhdHVyZXMuc2NzcyIsIm9yZ2FuaXNtcy9fdGVhbS5zY3NzIiwib3JnYW5pc21zL19wYXJ0bmVycy5zY3NzIiwib3JnYW5pc21zL19jb250YWN0LnNjc3MiLCJvcmdhbmlzbXMvX2Zvb3Rlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCJvcmdhbmlzbXMvX2hpcmluZ2Rhcmsuc2NzcyIsIm9yZ2FuaXNtcy9faGlyaW5nbGlnaHQuc2NzcyIsIm9yZ2FuaXNtcy9fdXNlY2FzZXMuc2NzcyIsIm9yZ2FuaXNtcy9fcGxheXN0b3JlLnNjc3MiLCJvcmdhbmlzbXMvX2Rvd25sb2FkX2FwcC5zY3NzIiwib3JnYW5pc21zL19lYXJseV9hY2Nlc3Nfc2RrLnNjc3MiLCJvcmdhbmlzbXMvX2Zvb3Rlcl9icmFuZGluZy5zY3NzIiwib3JnYW5pc21zL19hd2FyZHMuc2NzcyIsInBhZ2VzL19pbnN0cnVjdGlvbnMuc2NzcyIsInBhZ2VzL19ibG9nLnNjc3MiLCJwYWdlcy9fYmxvZy1wb3N0LnNjc3MiLCJwYWdlcy9faW1wcmVzc3VtLWFuZC1wb2xpY2llcy5zY3NzIiwicGFnZXMvX2xhbmRpbmdfcGFnZXNfbXZwLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCOzs7OztFQUFBO0FDRVEsOEZBQUE7QUNDTiwyRUFBQTtBQVFBO0VBQ0UsaUJBQUE7RUFDQSw4QkFBQTtBSERKOztBR1NFO0VBQ0UsU0FBQTtBSE5KOztBR1lFO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0FIVEo7O0FHa0JFO0VBQ0UsK0JBQUE7VUFBQSx1QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtBSGZKOztBR3FCRTtFQUNFLGlDQUFBO0VBQ0EsY0FBQTtBSGxCSjs7QUcwQkU7RUFDRSw2QkFBQTtBSHZCSjs7QUc2QkU7RUFDRSxnQkFBQTtFQUNBLHlDQUFBO1VBQUEsaUNBQUE7QUgxQko7O0FHK0JFOztFQUVFLG1CQUFBO0FINUJKOztBR2tDRTs7O0VBR0UsaUNBQUE7RUFDQSxjQUFBO0FIL0JKOztBR29DRTtFQUNFLGNBQUE7QUhqQ0o7O0FHdUNFOztFQUVFLGNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTtBSHBDSjs7QUd1Q0U7RUFDRSxlQUFBO0FIcENKOztBR3VDRTtFQUNFLFdBQUE7QUhwQ0o7O0FHNENFO0VBQ0Usa0JBQUE7QUh6Q0o7O0FHa0RFOzs7OztFQUtFLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtBSC9DSjs7QUdxREU7O0VBRUUsaUJBQUE7QUhsREo7O0FHd0RFOztFQUVFLG9CQUFBO0FIckRKOztBRzBERTs7OztFQUlFLDBCQUFBO0FIdkRKOztBRzRERTs7OztFQUlFLGtCQUFBO0VBQ0EsVUFBQTtBSHpESjs7QUc4REU7Ozs7RUFJRSw4QkFBQTtBSDNESjs7QUdnRUU7RUFDRSw4QkFBQTtBSDdESjs7QUdxRUU7RUFDRSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0FIbEVKOztBR3VFRTtFQUNFLHdCQUFBO0FIcEVKOztBR3lFRTtFQUNFLGNBQUE7QUh0RUo7O0FHNEVFOztFQUVFLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSxVQUFBO0FIekVKOztBRzhFRTs7RUFFRSxZQUFBO0FIM0VKOztBR2lGRTtFQUNFLDZCQUFBO0VBQ0Esb0JBQUE7QUg5RUo7O0FHbUZFO0VBQ0Usd0JBQUE7QUhoRko7O0FHc0ZFO0VBQ0UsMEJBQUE7RUFDQSxhQUFBO0FIbkZKOztBRzJGRTtFQUNFLGNBQUE7QUh4Rko7O0FHNkZFO0VBQ0Usa0JBQUE7QUgxRko7O0FHa0dFO0VBQ0UsYUFBQTtBSC9GSjs7QUdvR0U7RUFDRSxhQUFBO0FIakdKOztBR3lHSTs7Ozs7OztFQUNFLGFBQUE7QUhoR047O0FHcUdFO0VBQ0UsMkJBQUE7RUFDQSx5QkFBQTtBSGxHSjs7QUl0REU7RUFDRSw4SUFBQTtBSnlESjs7QUl0REU7RUFDRSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsZUNsRmU7QUwySW5COztBSXJERTs7O0VBR0UsMkJBQUE7VUFBQSxtQkFBQTtBSndESjs7QUlwREU7RUFDRSxTQUFBO0VBQ0EsVUFBQTtFQVVBLG1CQ2xGSTtFRG9GSixvQ0NqRmU7RURrRmYsbUJDN0VtQjtFRDhFbkIsZ0JDM0dnQjtFRDRHaEIsY0N6Rkk7RUQ0RkYsbUNBQUE7RUFDQSxrQ0FBQTtBSjJDTjs7QUl2Q0U7RUFFRSxxQkFBQTtFQUNBLHNCQUFBO0VBR0EsZUFBQTtFQUNBLFlBQUE7RUFDQSwrQkFBQTtBSnVDSjs7QUluQ0U7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkNqR1k7QUx1SWhCOztBSWxDRTtFQUNFLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JDeEdZO0FMNkloQjs7QUk5Qkk7Ozs7OztFQUdFLDBCQUFBO0FKb0NOOztBSS9CRTtFQUVFLFVBQUE7RUFDQSx3QkFBQTtLQUFBLHFCQUFBO1VBQUEsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JDNUhZO0VENkhaLHVCQUFBO0VBQ0EsY0FBQTtFQUNBLFlDekhtQjtBTDBKdkI7QU16REU7RUFDRSxVQUFBO0FOMkRKOztBSWhDRTtFQUNFLGNBQUE7RUFDQSxpQ0FBQTtBSm1DSjs7QUkvQkU7Ozs7O0VBS0Usb0JBQUE7QUprQ0o7O0FJOUJFO0VBQ0UseUJBQUE7QUppQ0o7O0FJOUJFO0VBQ0Usd0JBQUE7QUppQ0o7O0FPNURFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFNBQUE7RUFDQSxVQUFBO0FQK0RKOztBTzNERTtFQUNFLG1CRmxFc0I7RUVvRXRCLGtCQUFBO0VBQ0EsZ0JGdEVtQjtFRXVFbkIsa0NGckV1QjtBTGtJM0I7O0FPekRFOztFQUVFLGtCQUFBO0VBQ0Esb0JBQUE7QVA0REo7O0FPeERFOztFQUVFLGdCRnZLaUI7RUV3S2pCLG9CQUFBO0FQMkRKOztBT3ZERTtFQUNFLGNGNUZjO0VFNkZkLG9CQUFBO0FQMERKOztBT3RERTs7Ozs7O0VBTUUsb0NGak1lO0VFa01mLGtCRmhJZ0I7RUVpSWhCLGdCRjFMaUI7RUUyTGpCLGNGaElXO0VFaUlYLGtDRjVHb0I7QUxxS3hCO0FPdkRJOzs7Ozs7RUFDRSxjQUFBO0VBQ0EsY0ZoTlE7QUw4UWQ7O0FPckRRO0VBSUksZUFEaUI7RUFhakIsZ0JBQUE7RUFRQSxhQUFBO0VBT0EscUJBQUE7QVA2Qlo7O0FPNURRO0VBSUksa0JBRGlCO0VBYWpCLGdCQUFBO0VBUUEsYUFBQTtFQU9BLHFCQUFBO0FQb0NaOztBT25FUTtFQUlJLGlCQURpQjtFQWFqQixnQkFBQTtFQVFBLGFBQUE7RUFPQSxxQkFBQTtBUDJDWjs7QU8xRVE7RUFJSSxtQkFEaUI7RUFhakIsZ0JBQUE7RUFRQSxhQUFBO0VBT0EscUJBQUE7QVBrRFo7O0FPakZRO0VBSUksa0JBRGlCO0VBYWpCLGdCQUFBO0VBUUEsYUFBQTtFQU9BLHFCQUFBO0FQeURaOztBT3hGUTtFQUlJLGtCQURpQjtFQWFqQixnQkFBQTtFQVFBLGFBQUE7RUFPQSxxQkFBQTtBUGdFWjs7QVEzTlE7RUQ0SEE7SUFJSSxtQkFEaUI7RVBpRzNCO0VPcEdNO0lBSUksa0JBRGlCO0VQb0czQjtFT3ZHTTtJQUlJLGlCQURpQjtFUHVHM0I7RU8xR007SUFJSSxtQkFEaUI7RVAwRzNCO0VPN0dNO0lBSUksa0JBRGlCO0VQNkczQjtFT2hITTtJQUlJLGtCQURpQjtFUGdIM0I7QUFDRjtBTzdFRTtFQUNFLG9CQUFBO0VBQ0EsY0UxTmdCO0VGMk5oQixxQkYxSnFCO0VFNEpyQixlQUFBO0FQOEVKO0FPNUVJO0VBRUUsMkJGaktlO0FMOE9yQjtBT3ZFSTtFQUNFLFNBQUE7QVB5RU47O0FPcEVFO0VBQ0UsV0FBQTtFQUVBLGdCRjFTVztFRTJTWCxTQUFBO0VBQ0Esb0JGN0tRO0VFK0tSLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZ0NGbExRO0VFbUxSLGNBQUE7QVBxRUo7O0FPakVFOzs7RUFHRSxtQkZsTXNCO0VFbU10Qiw0QkZ0TGtCO0VFdUxsQixnQkZyTW1CO0FMeVF2Qjs7QU9oRUU7RUFDRSxrQkFBQTtBUG1FSjs7QU8vREU7RUFDRSxvQkZoTWU7RUVpTWYscUJGbk1jO0FMcVFsQjs7QU85REU7RUFDRSxvQkZ0TWU7QUx1UW5COztBTzVESTtFQUNFLG9CRjNNb0I7RUU0TXBCLGdCQUFBO0FQK0ROOztBTzFERTtFQUNFLG1CRmpOcUI7QUw4UXpCO0FPM0RJO0VBQ0UscUJGbE53QjtFRW1OeEIsZ0JGelRlO0FMc1hyQjs7QU94REU7RUFDRSxnQkFBQTtFQUNBLHNDRnhOaUI7RUV5TmpCLDhCRnhOZ0I7QUxtUnBCO0FPekRJO0VBQ0UsZ0JGalBpQjtFRWtQakIsY0ZwVk07QUwrWVo7O0FPN0NFO0VBQ0UsaUNGcE9hO0VFcU9iLFlBQUE7RUFDQSxxQkFBQTtBUGdESjs7QU81Q0U7RUFDRSxTQUFBO0FQK0NKOztBT3BDRTtFQUNFLFNBQUE7RUFDQSwyQkYxUGdCO0VFNFBoQix5QkYzWFM7RUU2WFQsK0JGbFRvQjtFRW1UcEIsY0YzWEk7QUxnYVI7O0FVblhFO0VBQ0Usa0JMMEZtQjtFS3pGbkIscUJMMEZzQjtFS3hGdEIsbUJMdkNtQjtFS3dDbkIsZ0JMbUZtQjtFS2xGbkIsY0xwRFE7QUx5YVo7O0FValhFO0VBQ0UsZUwyRWE7RUsxRWIsZ0JMMkVjO0FMeVNsQjs7QVVoWEU7RUFDRSxpQkw0RWE7RUszRWIsY0FBQTtBVm1YSjtBVWpYSTtFQUNFLGlCQUFBO0FWbVhOOztBVTdXSTtFQUNFLGNBQUE7RUFDQSxnQkFBQTtBVmdYTjs7QVU1V0U7RUFqRkEsY0FBQTtFQUNBLGNMNklXO0VLNUlYLG9CTDZJZTtBTG9UakI7QVUvYkU7RUFDRSxhTDJJa0I7QUxzVHRCOztBVTdXRTtFQTdFQSx5Qkx5SVk7RUt4SVoseUJMYlc7RUtlWCwrQkw0RHNCO0VLM0R0QixtQkxIcUI7RUtJckIsY0xkTTtFS29CTixlQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBRUEscUNMMkhhO0FMNFRmOztBVWhYRTtFQXRGQSx5Qkx5SVk7RUt4SVoseUJMYlc7RUtlWCwrQkw0RHNCO0VLM0R0QixtQkxIcUI7RUtJckIsY0xkTTtFSzhCTixjQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBRUEsYUxrSG1CO0VLakhuQixxQkxrSHlCO0FMdVUzQjs7QVczaUJVO0VBQ0UsZ0JBSFU7QVhpakJ0Qjs7QVcvaUJVO0VBQ0UsaUJBSFU7QVhxakJ0Qjs7QVduakJVO0VBQ0Usa0JBSFU7QVh5akJ0Qjs7QVd2akJVO0VBQ0UsbUJBSFU7QVg2akJ0Qjs7QVE1WVE7RUcvS0U7SUFDRSxnQkFIVTtFWGtrQnBCO0VXaGtCUTtJQUNFLGlCQUhVO0VYcWtCcEI7RVdua0JRO0lBQ0Usa0JBSFU7RVh3a0JwQjtFV3RrQlE7SUFDRSxtQkFIVTtFWDJrQnBCO0FBQ0Y7QVEzWlE7RUcv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OztBYzc0Qlk7RUFDSSxzQkFBQTtFQUNBLDRCQUFBO0VBQ0EscUJBQUE7QWRnNUJoQjs7QWNuNUJZO0VBQ0ksc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHFCQUFBO0FkczVCaEI7O0FjejVCWTtFQUNJLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBZDQ1QmhCOztBYy81Qlk7RUFDSSxzQkFBQTtFQUNBLGdDQUFBO0VBQ0EscUJBQUE7QWRrNkJoQjs7QWNyNkJZO0VBQ0ksc0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0FkdzZCaEI7O0FjMzZCWTtFQUNJLHNCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxxQkFBQTtBZDg2QmhCOztBY2o3Qlk7RUFDSSxzQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7QWRvN0JoQjs7QWN2N0JZO0VBQ0ksc0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0FkMDdCaEI7O0FjNzdCWTtFQUNJLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBZGc4QmhCOztBY244Qlk7RUFDSSxzQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7QWRzOEJoQjs7QWN6OEJZO0VBQ0ksc0JBQUE7RUFDQSwrQkFBQTtFQUNBLHFCQUFBO0FkNDhCaEI7O0FjLzhCWTtFQUNJLHNCQUFBO0VBQ0EsaUNBQUE7RUFDQSxxQkFBQTtBZGs5QmhCOztBY3I5Qlk7RUFDSSxzQkFBQTtFQUNBLCtCQUFBO0VBQ0EscUJBQUE7QWR3OUJoQjs7QWMzOUJZO0VBQ0ksc0JBQUE7RUFDQSxpQ0FBQTtFQUNBLHFCQUFBO0FkODlCaEI7O0FjaitCWTtFQUNJLHNCQUFBO0VBQ0EsK0JBQUE7RUFDQSxxQkFBQTtBZG8rQmhCOztBY3YrQlk7RUFDSSxzQkFBQTtFQUNBLCtCQUFBO0VBQ0EscUJBQUE7QWQwK0JoQjs7QWM3K0JZO0VBQ0ksc0JBQUE7RUFDQSwrQkFBQTtFQUNBLHFCQUFBO0FkZy9CaEI7O0Fjbi9CWTtFQUNJLHNCQUFBO0VBQ0EsK0JBQUE7RUFDQSxxQkFBQTtBZHMvQmhCOztBY3ovQlk7RUFDSSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QWQ0L0JoQjs7QWMvL0JZO0VBQ0ksc0JBQUE7RUFDQSwrQkFBQTtFQUNBLHFCQUFBO0Fka2dDaEI7O0FjcmdDWTtFQUNJLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBZHdnQ2hCOztBYzNnQ1k7RUFDSSxzQkFBQTtFQUNBLCtCQUFBO0VBQ0EscUJBQUE7QWQ4Z0NoQjs7QWNqaENZO0VBQ0ksc0JBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0Fkb2hDaEI7O0FjdmhDWTtFQUNJLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBZDBoQ2hCOztBYzdoQ1k7RUFDSSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QWRnaUNoQjs7QWNuaUNZO0VBQ0ksc0JBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0Fkc2lDaEI7O0FjemlDWTtFQUNJLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxxQkFBQTtBZDRpQ2hCOztBYy9pQ1k7RUFDSSxzQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7QWRrakNoQjs7QWNyakNZO0VBQ0ksc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHFCQUFBO0Fkd2pDaEI7O0FjM2pDWTtFQUNJLHNCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtBZDhqQ2hCOztBY2prQ1k7RUFDSSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EscUJBQUE7QWRva0NoQjs7QWN2a0NZO0VBQ0ksc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHFCQUFBO0FkMGtDaEI7O0FjN2tDWTtFQUNJLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxxQkFBQTtBZGdsQ2hCOztBY25sQ1k7RUFDSSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EscUJBQUE7QWRzbENoQjs7QWN6bENZO0VBQ0ksc0JBQUE7RUFDQSwyQkFBQTtFQUNBLHFCQUFBO0FkNGxDaEI7O0FjL2xDWTtFQUNJLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBZGttQ2hCOztBY3JtQ1k7RUFDSSxzQkFBQTtFQUNBLDJCQUFBO0VBQ0EscUJBQUE7QWR3bUNoQjs7QWMzbUNZO0VBQ0ksc0JBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0FkOG1DaEI7O0Fjam5DWTtFQUNJLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtBZG9uQ2hCOztBY3ZuQ1k7RUFDSSxzQkFBQTtFQUNBLDJCQUFBO0VBQ0EscUJBQUE7QWQwbkNoQjs7QWM3bkNZO0VBQ0ksc0JBQUE7RUFDQSwyQkFBQTtFQUNBLHFCQUFBO0FkZ29DaEI7O0Fjbm9DWTtFQUNJLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSxxQkFBQTtBZHNvQ2hCOztBY3pvQ1k7RUFDSSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QWQ0b0NoQjs7QWMvb0NZO0VBQ0ksc0JBQUE7RUFDQSwrQkFBQTtFQUNBLHFCQUFBO0Fka3BDaEI7O0FjcnBDWTtFQUNJLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBZHdwQ2hCOztBYzNwQ1k7RUFDSSxzQkFBQTtFQUNBLCtCQUFBO0VBQ0EscUJBQUE7QWQ4cENoQjs7QWNqcUNZO0VBQ0ksc0JBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0Fkb3FDaEI7O0FjdnFDWTtFQUNJLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSxxQkFBQTtBZDBxQ2hCOztBYzdxQ1k7RUFDSSxzQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QWRnckNoQjs7QWNuckNZO0VBQ0ksc0JBQUE7RUFDQSw2QkFBQTtFQUNBLHFCQUFBO0Fkc3JDaEI7O0FjenJDWTtFQUNJLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBZDRyQ2hCOztBYy9yQ1k7RUFDSSxzQkFBQTtFQUNBLGdDQUFBO0VBQ0EscUJBQUE7QWRrc0NoQjs7QWNyc0NZO0VBQ0ksc0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0Fkd3NDaEI7O0FjM3NDWTtFQUNJLHNCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxxQkFBQTtBZDhzQ2hCOztBY2p0Q1k7RUFDSSxzQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7QWRvdENoQjs7QWN2dENZO0VBQ0ksc0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0FkMHRDaEI7O0FjN3RDWTtFQUNJLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBZGd1Q2hCOztBY251Q1k7RUFDSSxzQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7QWRzdUNoQjs7QWN6dUNZO0VBQ0ksc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHFCQUFBO0FkNHVDaEI7O0FjL3VDWTtFQUNJLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxxQkFBQTtBZGt2Q2hCOztBY3J2Q1k7RUFDSSxzQkFBQTtFQUNBLDRCQUFBO0VBQ0EscUJBQUE7QWR3dkNoQjs7QWMzdkNZO0VBQ0ksc0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0FkOHZDaEI7O0FjandDWTtFQUNJLHNCQUFBO0VBQ0EsNEJBQUE7RUFDQSxxQkFBQTtBZG93Q2hCOztBY3Z3Q1k7RUFDSSxzQkFBQTtFQUNBLDRCQUFBO0VBQ0EscUJBQUE7QWQwd0NoQjs7QWM3d0NZO0VBQ0ksc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHFCQUFBO0FkZ3hDaEI7O0FjbnhDWTtFQUNJLHNCQUFBO0VBQ0EsNEJBQUE7RUFDQSxxQkFBQTtBZHN4Q2hCOztBb0J0ekNBO0VDaUdFLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxTaEJ1TmM7RWdCdE5kLDZCaEI2TmM7RWdCNU5kLHVCaEIyTmM7RWdCMU5kLHlFaEJ1T2tCO0VnQnZPbEIsaUVoQnVPa0I7RWdCdE9sQixvQmhCZ05tQjtFZ0IvTW5CLGtCQUFBO0VBQ0EsZ0JoQkhtQjtFZ0JJbkIsd0JBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBVUUsbUJoQmtNYTtFZ0J4TGIsY0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFRGpJQSx5QkFBQTtBcEJ5MENKO0FNOW5DRTtFQUNFLFVBQUE7QU5nb0NKO0FxQjFvQ0U7RUFJRSx5QlozRWdCO0VZNEVoQixjaEJoSEk7QUx5dkNSO0FxQnRvQ0U7RUFDRSxtQ0FibUI7RUFjbkIsY2hCckhJO0FMNnZDUjtBTXpvQ0U7RUFDRSxVQUFBO0FOMm9DSjtBb0JyMUNJO0VBQ0kscUJBQUE7QXBCdTFDUjtBb0JwMUNJO0VBQ0ksYWZnRkE7QUxzd0NSO0FvQm4xQ0k7RUNvRkYscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFNoQnVOYztFZ0J0TmQsNkJoQjZOYztFZ0I1TmQsdUJoQjJOYztFZ0IxTmQseUVoQnVPa0I7RWdCdk9sQixpRWhCdU9rQjtFZ0J0T2xCLG9CaEJnTm1CO0VnQi9NbkIsa0JBQUE7RUFDQSxnQmhCSG1CO0VnQkluQix3QkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFVRSxtQmhCa01hO0VnQnhMYixjQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VEckhJLGdCZnNGaUI7RWVyRmpCLHlCQUFBO0FwQnMyQ1I7QU14cUNFO0VBQ0UsVUFBQTtBTjBxQ0o7QXFCbHFDSTtFQUNFLDZCQUFBO0FyQm9xQ047QXFCbnBDRTtFQUlFLHlCQUFBO0VBQ0EsY1poSGdCO0FUa3dDcEI7QXFCL29DRTtFQUNFLGlDQVpZO0VBYVosMEJBYlk7QXJCOHBDaEI7QW9CbDNDUTtFQUNJLGFYMkdRO0FUeXdDcEI7QW9CaDNDSTtFQzBFRixxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsU2hCdU5jO0VnQnROZCw2QmhCNk5jO0VnQjVOZCx1QmhCMk5jO0VnQjFOZCx5RWhCdU9rQjtFZ0J2T2xCLGlFaEJ1T2tCO0VnQnRPbEIsb0JoQmdObUI7RWdCL01uQixrQkFBQTtFQUNBLGdCaEJIbUI7RWdCSW5CLHdCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQVVFLG1CaEJrTWE7RWdCeExiLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QXJCdXhDSjtBTTdzQ0U7RUFDRSxVQUFBO0FOK3NDSjtBcUJ6dENFO0VBSUUseUJoQi9HSTtFZ0JnSEosY2hCbEhJO0FMMDBDUjtBcUJydENFO0VBQ0UsMENBYm1CO0VBY25CLGNoQnZISTtBTDgwQ1I7QW9CMzRDSTtFQ3NFRixxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsU2hCdU5jO0VnQnROZCw2QmhCNk5jO0VnQjVOZCx1QmhCMk5jO0VnQjFOZCx5RWhCdU9rQjtFZ0J2T2xCLGlFaEJ1T2tCO0VnQnRPbEIsb0JoQmdObUI7RWdCL01uQixrQkFBQTtFQUNBLGdCaEJIbUI7RWdCSW5CLHdCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQVVFLG1CaEJrTWE7RWdCeExiLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7QXJCc3pDSjtBTTV1Q0U7RUFDRSxVQUFBO0FOOHVDSjtBcUJ4dkNFO0VBSUUseUJEN0swQjtFQzhLMUIsY2hCbEhJO0FMeTJDUjtBcUJwdkNFO0VBQ0Usb0VBYm1CO0VBY25CLGNoQnZISTtBTDYyQ1I7QW9CdDZDSTtFQ3dHQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxTaEJpTFk7QUxncENoQjtBb0J2NkNJO0VDMFBGLGFoQjZDd0I7RWdCNUN4QixtQkFBQTtBckJnckNGO0FvQnY2Q0k7RUFDSSxnQmY2RGlCO0FMNDJDekI7QW9CdjZDUTtFQUNJLGFmK0NKO0FMMDNDUjtBb0JyNkNJO0VBQ0ksb0JBQUE7QXBCdTZDUjs7QW9CbjZDQTtFQUNJLG9CQUFBO0FwQnM2Q0o7O0FzQjM5Q0E7RUFDSSx3QkFBQTtBdEI4OUNKO0FzQjM5Q1E7RUFDSSxnQ0FBQTtFQUNBLDRCQUFBO0F0QjY5Q1o7QXNCejlDSTtFQUNJLHlCQUFBO0F0QjI5Q1I7QXNCeDlDSTtFQUNJLDRCQUFBO0F0QjA5Q1I7QXNCdDlDUTtFQUNJLHdEQUFBO0VBQ0EsNkJBQUE7QXRCdzlDWjtBc0JuOUNRO0VBQ0ksbUZBQUE7RUFDQSxnQ0FBQTtBdEJxOUNaOztBdUJqL0NBO0VDNkJFLG9CQUFBO0VBQUEscUJBQUE7RUFBQSxvQkFBQTtFQUFBLGFBQUE7RUEyREEsNEJEdEYwQjtFQ3NGMUIsNkJEdEYwQjtFQ3NGMUIsOEJEdEYwQjtNQ3NGMUIsMEJEdEYwQjtVQ3NGMUIsc0JEdEYwQjtBdkJvL0M1QjtBdUJsL0NJO0VD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QSxlQUFBO0VBQ0EsWUFBQTtBckRtOEdaO0FxRDk3R1E7RUFDSSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtBckRnOEdaO0FxRDk3R1k7RUFDSSxhQUFBO0FyRGc4R2hCO0FRNTlHUTtFNkNnQ1E7SUFDSSxjQUFBO0lBQ0EsWUFBQTtFckQrN0dsQjtFcUQ1N0djO0lBQ0ksYUFBQTtFckQ4N0dsQjtBQUNGO0FxRDM3R1k7RUFDSSxzQkFBQTtLQUFBLG1CQUFBO0FyRDY3R2hCO0FxRHg3R0k7RUFDSSxVQUFBO0FyRDA3R1I7QXFEdjdHSTtFQUNJLDBDQUFBO0VBQ0EsYUFBQTtFQUNBLFVBQUE7QXJEeTdHUjtBUWgvR1E7RTZDb0RKO0lBTVEsbUJBQUE7RXJEMDdHVjtBQUNGO0FxRHg3R1E7RUFDSSxvQkFBQTtFQUFBLHFCQUFBO0VBQUEsb0JBQUE7RUFBQSxhQUFBO0VBQ0EsNEJBQUE7RUFBQSw2QkFBQTtFQUFBLDhCQUFBO01BQUEsMEJBQUE7VUFBQSxzQkFBQTtFQUNBLHlCQUFBO0VBQUEsMkJBQUE7TUFBQSxzQkFBQTtVQUFBLG1CQUFBO0FyRDA3R1o7QXFEeDdHWTtFQUNJLG1CQUFBO0FyRDA3R2hCO0FxRHY3R1k7RUFDSSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLG9CQUFBO0FyRHk3R2hCIiwiZmlsZSI6ImFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuOS4wXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNvcm1vcmFudDppdGFsLHdnaHRAMSw2MDAmZGlzcGxheT1zd2FwXCIpO1xuLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1zdWJtaXRdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9c3VibWl0XTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuW3R5cGU9Y2hlY2tib3hdLFxuW3R5cGU9cmFkaW9dIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPXNlYXJjaF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cblt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2RhdGEtd2hhdGludGVudD1tb3VzZV0gKiwgW2RhdGEtd2hhdGludGVudD1tb3VzZV0gKjpmb2N1cyxcbltkYXRhLXdoYXRpbnRlbnQ9dG91Y2hdICosXG5bZGF0YS13aGF0aW50ZW50PXRvdWNoXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAqLFxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PXRvdWNoXSAqLFxuW2RhdGEtd2hhdGlucHV0PXRvdWNoXSAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuW2RyYWdnYWJsZT1mYWxzZV0ge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1vYmlsZT0yNS44NzVlbSZtZWRpdW09NDBlbSZtb2JpbGUteGw9NDBlbSZwaGFibGV0PTQ4ZW0mdGFibGV0PTYwZW0mZGVza3RvcD03NWVtJmRlc2t0b3AteGw9OTBlbSZkZXNrdG9wLXh4bD0xMDMuNzVlbVwiO1xufVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogYXV0bztcbn1cbltkYXRhLXdoYXRpbnB1dD1tb3VzZV0gYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5oMSBzbWFsbCwgLmgxIHNtYWxsLFxuaDIgc21hbGwsIC5oMiBzbWFsbCxcbmgzIHNtYWxsLCAuaDMgc21hbGwsXG5oNCBzbWFsbCwgLmg0IHNtYWxsLFxuaDUgc21hbGwsIC5oNSBzbWFsbCxcbmg2IHNtYWxsLCAuaDYgc21hbGwge1xuICBsaW5lLWhlaWdodDogMDtcbiAgY29sb3I6ICNjYWNhY2E7XG59XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMi43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMy4xMjVyZW07XG4gIH1cbiAgaDIsIC5oMiB7XG4gICAgZm9udC1zaXplOiAyLjc1cmVtO1xuICB9XG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICB9XG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIH1cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxufVxuYSB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzAwM0RGNTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6IHJnYigwLCA1Mi40NiwgMjEwLjcpO1xufVxuYSBpbWcge1xuICBib3JkZXI6IDA7XG59XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG51bCxcbm9sLFxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xufVxuXG51bCB1bCwgdWwgb2wsIG9sIHVsLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5kbCBkdCB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7XG59XG5ibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICBsaW5lLWhlaWdodDogMS42O1xuICBjb2xvcjogIzhhOGE4YTtcbn1cblxuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhO1xufVxuXG4ubGVhZCB7XG4gIGZvbnQtc2l6ZTogMTI1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5wICsgLnN0YXQge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbn1cblxudWwubm8tYnVsbGV0LCBvbC5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNpdGUtYmxvY2ssIGNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xufVxuLmNpdGUtYmxvY2s6YmVmb3JlLCBjaXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCUIFwiO1xufVxuXG4uY29kZS1pbmxpbmUsIGNvZGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xufVxuXG4uY29kZS1ibG9jayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBcIkNvcm1vcmFudFwiLCBzZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4ubW9iaWxlIHRhYmxldCBkZXNrdG9wLXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5tb2JpbGUgdGFibGV0IGRlc2t0b3AtdGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubW9iaWxlIHRhYmxldCBkZXNrdG9wLXRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubW9iaWxlIHRhYmxldCBkZXNrdG9wLXRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLmRlc2t0b3AteGwtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5kZXNrdG9wLXhsLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5kZXNrdG9wLXhsLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmRlc2t0b3AteGwtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDMuNzVlbSkge1xuICAuZGVza3RvcC14eGwtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5kZXNrdG9wLXh4bC10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAuZGVza3RvcC14eGwtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZGVza3RvcC14eGwtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICoge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgcHJpbnQtY29sb3ItYWRqdXN0OiBlY29ub215O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICBhW2hyZWZePVwiI1wiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gIH1cbn1cbi8qKlxuICogVGV4dCBjb2xvciBiYXNlZCBvbiBpdHMgYmFja2dyb3VuZC5cbiAqIEBwYXJhbSAge051bWJlcn0gJGNvbG9yIENvbG9yLlxuICogQHJldHVybiB7TnVtYmVyfSBDb2xvci5cbiAqL1xuLyoqXG4gKiBWZXJ0aWNhbCBhbGlnbiBhbnl0aGluZ1xuICogQHBhcmFtIHt2YWx1ZX0gJHBvc2l0aW9uXG4gKiByZXR1cm4gbm9uZVxuICovXG5odG1sIHtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIGh0bWwge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgfVxufVxuXG4uc2VjdGlvbl9fd3JhcHBlciB7XG4gIG1heC13aWR0aDogODV2dztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLnNlY3Rpb25fX3dyYXBwZXIge1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2VjdGlvbl9fd3JhcHBlciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZzogMy43NXJlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuc2VjdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLnNlY3Rpb25fX2hlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5zZWN0aW9uX19oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gIH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi53ZWJwbGFubmVyX19kZXNjcmlwdGlvbiwgLmgtZm9udC1hbHQsIDppcyhoMiwgaDUpIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xufVxuXG46aXMoaDUpIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uaC12aXNpYmxlLWhpZGRlbiB7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDFweDtcbn1cbi5oLXZpc2libGUtaGlkZGVuOmZvY3VzIHtcbiAgY2xpcDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmgtbGlzdC0tY2xlYW4ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uaC1saXN0LS1jb3VudGVyIHtcbiAgY291bnRlci1yZXNldDogc2VjdGlvbjtcbn1cbi5oLWxpc3QtLWNvdW50ZXIgW2NsYXNzKj10aXRsZV06OmJlZm9yZSB7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzZWN0aW9uO1xuICBjb250ZW50OiBjb3VudGVyKHNlY3Rpb24pIFwiLiBcIjtcbn1cblxuLmgtdGV4dC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjMDAzREY1O1xufVxuLmgtdGV4dC0taXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLmgtdGV4dC0tdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5oLXRleHQtLXVuZGVybGluZWQge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5oLXRleHQtLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uaC1mb250LS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uaC1mb250LS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5oLWZvbnQtLXNlbWlib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5oLWZvbnQtLWJvbGQge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uaC1mb250LXh4cyB7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG59XG5cbi5oLWZvbnQteHMge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5oLWZvbnQtcyB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5oLWZvbnQtbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmgtZm9udC1tbCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG5cbi5oLWZvbnQtbCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmgtZm9udC14bCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4uaC1mb250LXh4bCB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG59XG5cbi5oLXAtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmc6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZzogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcC00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZzogMnJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXAtNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmc6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcC0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmc6IDVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wdC0wIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy10b3A6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wdC0xIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXB0LTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXB0LTMge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHQtNCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHQtNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHQtOCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctdG9wOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHQtMTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXRvcDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXByLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAwcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHItMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXByLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHItMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXByLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLXJpZ2h0OiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcHItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wci04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1yaWdodDogNHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXByLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1yaWdodDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXBiLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXBiLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcGItMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcGItMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wYi00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wYi02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wYi04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1ib3R0b206IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wYi0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctYm90dG9tOiA1cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcGwtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXBsLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXBsLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wbC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wbC00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgcGFkZGluZy1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtcGwtNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLXBsLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBwYWRkaW5nLWxlZnQ6IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1wbC0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIHBhZGRpbmctbGVmdDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW0tMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbjogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW0tMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbjogMC41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbS0yIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbS0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDJyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tLTYge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW46IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luOiA1cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXQtMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tdC0xIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXQtMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tdC0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXQtNCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi10b3A6IDJyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tdC02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW10LTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tdG9wOiA0cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXQtMTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tdG9wOiA1cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXItMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1yLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1yLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tci0zIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tci00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLXJpZ2h0OiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbXItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1yLTgge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tcmlnaHQ6IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tci0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1yaWdodDogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1iLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiAwcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbWItMSB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1iLTIge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbWItMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1iLTQge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbWItNiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tYi04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWJvdHRvbTogNHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1iLTEwIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWJvdHRvbTogNXJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1sLTAge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tbGVmdDogMHJlbSAhaW1wb3J0YW50O1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG59XG5cbi5oLW1sLTEge1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbWwtMiB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmgtbWwtMyB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tbC00IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWxlZnQ6IDJyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tbC02IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tbC04IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgbWFyZ2luLWxlZnQ6IDRyZW0gIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4uaC1tbC0xMCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIG1hcmdpbi1sZWZ0OiA1cmVtICFpbXBvcnRhbnQ7XG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNzAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC44NWVtIDJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAuYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cbi5idXR0b24sIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzREY1O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgNDguOCwgMTk2KTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5bZGF0YS13aGF0aW5wdXQ9bW91c2VdIC5idXR0b24ge1xuICBvdXRsaW5lOiAwO1xufVxuLmJ1dHRvbjpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5idXR0b24gLnN2Zy1pY29uIHtcbiAgZmlsbDogI2ZlZmVmZTtcbn1cbi5idXR0b24tLWhvbGxvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNzAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC44NWVtIDJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAuYnV0dG9uLS1ob2xsb3cge1xuICBvdXRsaW5lOiAwO1xufVxuLmJ1dHRvbi0taG9sbG93LCAuYnV0dG9uLS1ob2xsb3c6aG92ZXIsIC5idXR0b24tLWhvbGxvdzpmb2N1cywgLmJ1dHRvbi0taG9sbG93LmRpc2FibGVkLCAuYnV0dG9uLS1ob2xsb3cuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tLWhvbGxvdy5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbi0taG9sbG93W2Rpc2FibGVkXSwgLmJ1dHRvbi0taG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi0taG9sbG93W2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ1dHRvbi0taG9sbG93LCAuYnV0dG9uLS1ob2xsb3cuZGlzYWJsZWQsIC5idXR0b24tLWhvbGxvd1tkaXNhYmxlZF0sIC5idXR0b24tLWhvbGxvdy5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi0taG9sbG93W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi0taG9sbG93LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLS1ob2xsb3dbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwM0RGNTtcbiAgY29sb3I6ICMwMDNERjU7XG59XG4uYnV0dG9uLS1ob2xsb3c6aG92ZXIsIC5idXR0b24tLWhvbGxvdzpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDAsIDMwLjUsIDEyMi41KTtcbiAgY29sb3I6IHJnYigwLCAzMC41LCAxMjIuNSk7XG59XG4uYnV0dG9uLS1ob2xsb3cgLnN2Zy1pY29uIHtcbiAgZmlsbDogIzAwM0RGNTtcbn1cbi5idXR0b24tLXNlY29uZGFyeSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNzAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC44NWVtIDJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuW2RhdGEtd2hhdGlucHV0PW1vdXNlXSAuYnV0dG9uLS1zZWNvbmRhcnkge1xuICBvdXRsaW5lOiAwO1xufVxuLmJ1dHRvbi0tc2Vjb25kYXJ5LCAuYnV0dG9uLS1zZWNvbmRhcnkuZGlzYWJsZWQsIC5idXR0b24tLXNlY29uZGFyeVtkaXNhYmxlZF0sIC5idXR0b24tLXNlY29uZGFyeS5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi0tc2Vjb25kYXJ5W2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbi0tc2Vjb25kYXJ5LmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLS1zZWNvbmRhcnlbZGlzYWJsZWRdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24tLXNlY29uZGFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDMuMiwgMjAzLjIsIDIwMy4yKTtcbiAgY29sb3I6ICMwYTBhMGE7XG59XG4uYnV0dG9uLS1zcGVjaWFsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjg1ZW0gMmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5bZGF0YS13aGF0aW5wdXQ9bW91c2VdIC5idXR0b24tLXNwZWNpYWwge1xuICBvdXRsaW5lOiAwO1xufVxuLmJ1dHRvbi0tc3BlY2lhbCwgLmJ1dHRvbi0tc3BlY2lhbC5kaXNhYmxlZCwgLmJ1dHRvbi0tc3BlY2lhbFtkaXNhYmxlZF0sIC5idXR0b24tLXNwZWNpYWwuZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24tLXNwZWNpYWxbZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uLS1zcGVjaWFsLmRpc2FibGVkOmZvY3VzLCAuYnV0dG9uLS1zcGVjaWFsW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0M2NmOWY7XG4gIGNvbG9yOiAjMGEwYTBhO1xufVxuLmJ1dHRvbi0tc3BlY2lhbDpob3ZlciwgLmJ1dHRvbi0tc3BlY2lhbDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0NC41ODMwNTA4NDc1LCAxNzQuNjE2OTQ5MTUyNSwgMTMwLjAzMzg5ODMwNTEpO1xuICBjb2xvcjogIzBhMGEwYTtcbn1cbi5idXR0b24tLXNocmluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMDtcbn1cbi5idXR0b24tLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5idXR0b24tLXNvY2lhbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uYnV0dG9uLS1zb2NpYWwgLnN2Zy1pY29uIHtcbiAgZmlsbDogI2ZlZmVmZTtcbn1cbi5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbn1cblxuYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XG59XG5cbi5saXN0X19jb3VudGVyIHtcbiAgY291bnRlci1yZXNldDogbXljb3VudGVyO1xufVxuLmxpc3RfX2NvdW50ZXIgZHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXIobXljb3VudGVyKSBcIi4gXCI7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBteWNvdW50ZXI7XG59XG4ubGlzdF9fY291bnRlciBkZCB7XG4gIGNvdW50ZXItcmVzZXQ6IHN1YmNvdW50ZXI7XG59XG4ubGlzdF9fY291bnRlciBkaXYge1xuICBjb3VudGVyLXJlc2V0OiBzdWJzdWJjb3VudGVyO1xufVxuLmxpc3RfX2NvdW50ZXIgLnN1YnRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuXCIgY291bnRlcihzdWJjb3VudGVyKSBcIi4gXCI7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzdWJjb3VudGVyO1xufVxuLmxpc3RfX2NvdW50ZXIgLnN1YnN1YnRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuXCIgY291bnRlcihzdWJjb3VudGVyKSBcIi5cIiBjb3VudGVyKHN1YnN1YmNvdW50ZXIpIFwiLiBcIjtcbiAgY291bnRlci1pbmNyZW1lbnQ6IHN1YnN1YmNvdW50ZXI7XG59XG5cbi5jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jYXJkX190ZXh0IHtcbiAgb3JkZXI6IDE7XG59XG4uY2FyZF9fbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uY2FyZF9fZGVzY3JpcHRpb24ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jYXJkX19kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICB9XG59XG4uY2FyZF9faW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubmF2YmFyLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm5hdmJhciBpbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubmF2YmFyIGlucHV0OmNoZWNrZWQgKyAubmF2YmFyX19sYWJlbCBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG4ubmF2YmFyIGlucHV0OmNoZWNrZWQgKyAubmF2YmFyX19sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDdweCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoNDVkZWcpO1xufVxuLm5hdmJhciBpbnB1dDpjaGVja2VkICsgLm5hdmJhcl9fbGFiZWwgc3BhbjpsYXN0LWNoaWxkIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKC00NWRlZyk7XG59XG4ubmF2YmFyIGlucHV0OmNoZWNrZWQgfiAubmF2YmFyX19saXN0IHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLm5hdmJhciBpbnB1dDpjaGVja2VkIH4gLm5hdmJhcl9fbGlzdCB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICB9XG59XG4ubmF2YmFyIGlucHV0ICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDA7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF2YmFyIGlucHV0ICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXJfX2xhYmVsIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuOHJlbSAwLjY2NjY2NjY2NjdyZW07XG4gIHdpZHRoOiAyLjc1cmVtO1xufVxuLm5hdmJhcl9fbGFiZWw6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkICNmZWZlZmU7XG59XG4ubmF2YmFyX19sYWJlbCBzcGFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjJzO1xuICB3aWR0aDogMTAwJTtcbn1cbi5uYXZiYXJfX2xpc3Qge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC40cyBlYXNlO1xuICB6LWluZGV4OiAxMjA7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAubmF2YmFyX19saXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwLCAzOCwgMC45NSk7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogODhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLm5hdmJhcl9fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDRyZW07XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuLm5hdmJhcl9fbGlzdF9faXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xuICB3aWR0aDogNzV2dztcbn1cbi5uYXZiYXJfX2xpc3RfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzZkYTJmZjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5uYXZiYXJfX2xpc3RfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuLm5hdmJhcl9fbGlzdF9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM2ZGEyZmY7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF2YmFyX19saXN0X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLm5hdmJhcl9fbGlzdF9faXRlbSB7XG4gICAgbWFyZ2luOiBpbmhlcml0O1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5uYXZiYXIgbGkgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5uYXZiYXIgbGk6aG92ZXIgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgIHdpZHRoOiAyNHB4O1xuICB9XG59XG4ubmF2YmFyIGxpOmhvdmVyIHVsIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbn1cbi5uYXZiYXIgbGkgbGkge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF2YmFyIGxpIGxpIHtcbiAgICBtYXJnaW4tdG9wOiBpbmhlcml0O1xuICB9XG59XG4ubmF2YmFyIGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF2YmFyIGEgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjRweDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLm5hdmJhciBhLnJvdW5kZWQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmN2Y3Zjc7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiAxLjg3NXJlbTtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIH1cbn1cblxuLmluc3RydWN0aW9ucy1uYXZiYXIge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTV2aDtcbiAgei1pbmRleDogOTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhcl9faW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFyZW0pO1xufVxuLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0OmNoZWNrZWQgKyBsYWJlbCBzcGFuOm50aC1jaGlsZCgyKSB7XG4gIG9wYWNpdHk6IDA7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhcl9faW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoN3B4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDQ1ZGVnKTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19pbnB1dDpjaGVja2VkICsgbGFiZWwgc3BhbjpsYXN0LWNoaWxkIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC05cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19pbnB1dDpjaGVja2VkIH4gLmluc3RydWN0aW9ucy1uYXZiYXJfX3dyYXBwZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhcl9faW5wdXQ6Y2hlY2tlZCB+IC5pbnN0cnVjdGlvbnMtbmF2YmFyX19tYXNrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xufVxuLmluc3RydWN0aW9ucy1uYXZiYXJfX2lucHV0ICsgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDA7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fbGFiZWwge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmRhMmZmO1xuICBib3JkZXItcmFkaXVzOiAwIDEuODc1cmVtIDEuODc1cmVtIDA7XG4gIGNvbG9yOiAjMDcxMTE5O1xuICBoZWlnaHQ6IDMuNzVyZW07XG4gIGxlZnQ6IC0xcmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNDY4NzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgd2lkdGg6IDQuMzc1cmVtO1xuICB6LWluZGV4OiAxMDtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcmVtKTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbDpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgIzZkYTJmZjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbCB7XG4gICAgd2lkdGg6IDYuMjVyZW07XG4gIH1cbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX19sYWJlbF9fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MTExOTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBoZWlnaHQ6IDIuNzVyZW07XG4gIHBhZGRpbmc6IDAuOHJlbSAwLjY2NjY2NjY2NjdyZW07XG4gIHdpZHRoOiAyLjc1cmVtO1xufVxuLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsIHNwYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmRhMmZmO1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDJweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIC13ZWJraXQtdHJhbnNmb3JtIDAuMnM7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmluc3RydWN0aW9ucy1uYXZiYXJfX2xhYmVsIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyX193cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZkYTJmZjtcbiAgYm9yZGVyLXJhZGl1czogMCAxLjg3NXJlbSAxLjg3NXJlbSAwO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDgwdmggLSAzMnB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MDBweCk7XG4gIHRvcDogLTJyZW07XG4gIHotaW5kZXg6IDk7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fbWFzazo6YmVmb3JlIHtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC4zNSk7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmluc3RydWN0aW9ucy1uYXZiYXJfX2xpc3Qge1xuICBwYWRkaW5nOiAycmVtIDFyZW07XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhciBsaSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyIGxpOmxhc3QtY2hpbGTCoCB7XG4gIG1hcmdpbjogMDtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyIGxpID4gdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhciBsaSBsaSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uaW5zdHJ1Y3Rpb25zLW5hdmJhciBhIHtcbiAgY29sb3I6ICMwNzExMTk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi5pbnN0cnVjdGlvbnMtbmF2YmFyIGE6aG92ZXIge1xuICBjb2xvcjogI2Y3ZjdmNztcbn1cblxuLnRhYnMge1xuICAvKiogdGFiIHN0eWxpbmcgKiovXG4gIC8qIFN0eWxlIHRoZSBidXR0b25zIGluc2lkZSB0aGUgdGFiICovXG4gIC8qIENoYW5nZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGJ1dHRvbnMgb24gaG92ZXIgKi9cbiAgLyogQ3JlYXRlIGFuIGFjdGl2ZS9jdXJyZW50IHRhYmxpbmsgY2xhc3MgKi9cbiAgLyogU3R5bGUgdGhlIHRhYiBjb250ZW50ICovXG59XG4udGFicyAudGFiIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgYm9yZGVyOiAycHggc29saWQgIzAwM0RGNTtcbiAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gIGZsb2F0OiByaWdodDtcbn1cbi50YWJzIC50YWIuYWN0aXZlIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAudGFicyAudGFiIHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cbi50YWJzIC50YWIgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDNERjU7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjc1cmVtIDEuODc1cmVtO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4udGFicyAudGFiIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG59XG4udGFicyAudGFiIGJ1dHRvbi5hY3RpdmUge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggIzAwM0RGNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwM0RGNTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDEuNjI1cmVtO1xufVxuLnRhYnMgLnRhYmNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgLnRhYmNvbnRlbnQuYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2JrZ19oZXJvLndlYnApO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMDtcbn1cbi5oZWFkZXItLWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDcxMTE5O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmhlYWRlcl9fd3JhcHBlciB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuLmhlYWRlcl9fbmF2YmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEwLCAzOCwgMC45NSk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDI1cHggcmdiYSgxMCwgMTAsIDEwLCAwLjEpO1xuICBoZWlnaHQ6IDg4cHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xufVxuLmhlYWRlcl9fbmF2YmFyLmhpZGUge1xuICB0b3A6IC04OHB4O1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhlYWRlcl9fbmF2YmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgfVxufVxuLmhlYWRlcl9fbmF2YmFyX193cmFwcGVyIHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oZWFkZXJfX25hdmJhcl9fd3JhcHBlciB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuLmhlYWRlcl9fbG9nb19faW1hZ2Uge1xuICB3aWR0aDogY2xhbXAoMjAwcHgsIDM1dncsIDMwMHB4KTtcbn1cbi5oZWFkZXItcGxhY2Vob2xkZXIge1xuICBoZWlnaHQ6IDg4cHg7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuaGVhZGVyLXBsYWNlaG9sZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5oZXJvIHtcbiAgcGFkZGluZzogMDtcbiAgcGFkZGluZy10b3A6IDNyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuaGVybyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9oZXJvX3NtYXJ0cGhvbmVzLWFwcC53ZWJwP3Y9MS4xMSk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzMDBweCBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuICAuaGVyby0tbm8taW1hZ2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5oZXJvIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQyNXB4IGF1dG87XG4gIH1cbn1cbi5oZXJvX193cmFwcGVyIHtcbiAgbWluLWhlaWdodDogNDc1cHg7XG4gIHBhZGRpbmc6IDMuNzVyZW0gMDtcbn1cbi5oZXJvX193cmFwcGVyX19lbXB0eV9fdG9wIHtcbiAgbWluLWhlaWdodDogNDc1cHg7XG4gIHBhZGRpbmc6IDkuMzc1cmVtIDFyZW0gMy43NXJlbTtcbn1cbi5oZXJvX19oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhlcm9fX2hlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuaGVyb19faGVhZGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYyg2MCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmhlcm9fX2hlYWRlci5mdWxsLXdpZHRoIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oZXJvX19ib2R5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYyg2MCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5oZXJvX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cbn1cbi5oZXJvX19waWN0dXJlIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuaGVyb19fcGljdHVyZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgb3JkZXI6IDM7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhlcm9fX3BpY3R1cmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5oZXJvX19jdGEge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhlcm9fX2N0YSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5oZXJvX19jdGEge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmhlcm9fX2N0YV9faW1hZ2Uge1xuICAgIG1heC13aWR0aDogNDB2dztcbiAgICBoZWlnaHQ6IDMuNzVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuaGVyb19fY29weSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbi5oZXJvX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMi4xODc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhlcm9fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhlcm9fX3RpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uaGVyb19fc3VidGl0bGUge1xuICBmb250LXNpemU6IGNsYW1wKDEuODc1cmVtLCAyLjM3NXJlbSwgMTB2aCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oZXJvX19zdWJ0aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhlcm9fX3N1YnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uaGVyb19fY2l0YXRpb24ge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oZXJvX19jaXRhdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogaW5oZXJpdDtcbiAgfVxufVxuLmhlcm9fX2ltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cbi5oZXJvX19pbWFnZV9fNTAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAzLjc1cmVtO1xuICBoZWlnaHQ6IDMuMTI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhlcm9fX2Rlc2NyaXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG4uaGVyb19fZ3JlZW5fX2J1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0M0NGOUY7XG4gIGNvbG9yOiAjMDcxMTE5O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi5oZXJvX19ncmVlbl9fYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCQTc3Nztcbn1cbi5oZXJvX19ncmVlbl9fYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQzQ0Y5Rjtcbn1cblxuLmhpZ2hsaWdodHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzREY1O1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5oaWdobGlnaHRzX19saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmhpZ2hsaWdodHNfX2xpc3RfX2VsZW1lbnQge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGNhbGMoODMuMzMzMzMzMzMzMyUgLSAxLjI1cmVtKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzMzMzMzMlICsgMS4yNXJlbSAvIDIpO1xufVxuLmhpZ2hsaWdodHNfX2xpc3RfX2VsZW1lbnQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDMuMTI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhpZ2hsaWdodHNfX2xpc3RfX2VsZW1lbnQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhpZ2hsaWdodHNfX2xpc3RfX2VsZW1lbnQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gNnJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xuICB9XG59XG4uaGlnaGxpZ2h0c19fcGljdHVyZSB7XG4gIGFzcGVjdC1yYXRpbzogMS8xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHdpZHRoOiAxMDBweDtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gIC5oaWdobGlnaHRzX19waWN0dXJlIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICB9XG59XG4uaGlnaGxpZ2h0c19fdGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi53ZWJwbGFubmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLndlYnBsYW5uZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy93ZWJwbGFubmVyLndlYnApO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwMHB4IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNzQycHggMzk0cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLndlYnBsYW5uZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAzLjc1ZW0pIHtcbiAgLndlYnBsYW5uZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDc1JSBjZW50ZXI7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC53ZWJwbGFubmVyX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLndlYnBsYW5uZXJfX2hlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC53ZWJwbGFubmVyX19tYWluIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLndlYnBsYW5uZXJfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLndlYnBsYW5uZXJfX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ud2VicGxhbm5lcl9fbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ud2VicGxhbm5lcl9fbGlzdF9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4ud2VicGxhbm5lcl9fbGlzdF9fdGl0bGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLndlYnBsYW5uZXJfX2xpc3RfX3RpdGxlOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxuXG4ubmF0aXZlYXBwIHtcbiAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL25hdGl2ZWFwcC53ZWJwKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogODAlIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5uYXRpdmVhcHAge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF0aXZlYXBwOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNywgMTcsIDI1LCAwLjcpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoNywgMTcsIDI1KSAzMCUsIHJnYmEoNywgMTcsIDI1LCAwKSAxMDAlKSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2IoMTUsIDcsIDI1KSAxNSUsIHJnYmEoMCwgOTEsIDIzNCwgMC43KSAxMDAlKTtcbiAgICBib3R0b206IDA7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5uYXRpdmVhcHBfX3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDMuNzVyZW0gMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTk5O1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubmF0aXZlYXBwX19tYWluLCAubmF0aXZlYXBwX19oZWFkZXIsIC5uYXRpdmVhcHBfX2Zvb3RlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbi5uYXRpdmVhcHBfX2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IDMuNzVyZW07XG59XG4ubmF0aXZlYXBwX192aWRlbyB7XG4gIGFzcGVjdC1yYXRpbzogMTYvOTtcbn1cbkBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYvOSkge1xuICAubmF0aXZlYXBwX192aWRlbzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBwYWRkaW5nLXRvcDogNTIuNDYzMzIwNzM3MyU7XG4gICAgd2lkdGg6IDFweDtcbiAgfVxuICAubmF0aXZlYXBwX192aWRlbzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbi5uYXRpdmVhcHAgdmlkZW8ge1xuICBkaXNwbGF5OiBub25lO1xuICBmaWx0ZXI6IHVybCgjbmF0aXZlYXBwX19maWx0ZXIpO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLm5hdGl2ZWFwcCB2aWRlbyB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogODV2dztcbiAgfVxufVxuLm5hdGl2ZWFwcCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5mZWF0dXJlcyB7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MjczODc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvZmVhdHVyZV9iYWNrZ3JvdW5kLndlYnA/dj0xLjExKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5mZWF0dXJlcyB7XG4gICAgcGFkZGluZzogMy43NXJlbSAwO1xuICB9XG59XG4uZmVhdHVyZXNfX3dyYXBwZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNzUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgcGFkZGluZzogM3JlbSAxcmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmZlYXR1cmVzX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmZlYXR1cmVzX19oZWFkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuZmVhdHVyZXNfX21haW4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY2NjY2NjclIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbi5mZWF0dXJlcyBkdCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cbi5mZWF0dXJlcyBkZCB7XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG59XG5cbi50ZWFtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWZmNTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC50ZWFtX19kZXNjcmlwdGlvbiB7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC50ZWFtX19jYXJkcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG59XG4udGVhbSAuY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAudGVhbSAuY2FyZCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLnRlYW0gLmNhcmQge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLnBhcnRuZXJzX19saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXJ0bmVyc19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG59XG4ucGFydG5lcnMgbGkge1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXJ0bmVycyBsaSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLnBhcnRuZXJzIGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLnBhcnRuZXJzIGltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5wYXJ0bmVycyBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY29udGFjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTBhMGE7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmNvbnRhY3RfX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuY29udGFjdF9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LWhlaWdodDogNTByZW07XG4gIH1cbn1cbi5jb250YWN0X19ocmVmIHtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG4uY29udGFjdF9faHJlZjpob3ZlciB7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmNvbnRhY3RfX2hlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5jb250YWN0X19oZWFkZXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDc1JSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuY29udGFjdF9fbWFpbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmNvbnRhY3RfX2Zvb3RlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgfVxufVxuLmNvbnRhY3RfX25ld3NsZXR0ZXIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNvbnRhY3RfX2xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgfVxuICAuY29udGFjdF9fbGlzdCBsaSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmNvbnRhY3RfX2xpc3Qge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuY29udGFjdF9fbGlzdCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIH1cbiAgLmNvbnRhY3RfX2xpc3QgaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIH1cbiAgLmNvbnRhY3RfX2xpc3QgOmlzKGRsLCBkdCkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwM0RGNTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG4uZm9vdGVyIGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX2hlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmZvb3Rlcl9faGVhZGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4uZm9vdGVyX19pY29ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luOiAycmVtIDA7XG59XG4uZm9vdGVyX19tZW51IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX21lbnUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG59XG5bZGF0YS13aGF0aW5wdXQ9bW91c2VdIC5mb290ZXJfX21lbnUgbGkge1xuICBvdXRsaW5lOiAwO1xufVxuLmZvb3Rlcl9fbWVudSBhLFxuLmZvb3Rlcl9fbWVudSAuYnV0dG9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbn1cbi5mb290ZXJfX21lbnUgaW5wdXQsXG4uZm9vdGVyX19tZW51IHNlbGVjdCxcbi5mb290ZXJfX21lbnUgYSxcbi5mb290ZXJfX21lbnUgYnV0dG9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5mb290ZXJfX21lbnUgaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZm9vdGVyX19tZW51IGxpIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3ZGE1Zjk7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZm9vdGVyX19tZW51IGxpIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cbi5mb290ZXJfX21lbnUgYSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uZm9vdGVyX19tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX21lbnUgdWwge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxufVxuLmZvb3Rlcl9fbWVudSB1bCBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMCAxcmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmZvb3Rlcl9fbWVudSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLmZvb3Rlcl9fY29weXJpZ2h0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mb290ZXJfX2NvcHlyaWdodCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4uZm9vdGVyX19jb3B5cmlnaHQgYSB7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uaGlyaW5nZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7XG59XG4uaGlyaW5nZGFya19fbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuaGlyaW5nZGFya19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG59XG4uaGlyaW5nZGFyayBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5oaXJpbmdkYXJrIGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuaGlyaW5nZGFyayBsaSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS44NzVyZW0pO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cbi5oaXJpbmdkYXJrIGltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5oaXJpbmdkYXJrIHNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5oaXJpbmdsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG59XG4uaGlyaW5nbGlnaHRfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhpcmluZ2xpZ2h0X19saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cbi5oaXJpbmdsaWdodCBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5oaXJpbmdsaWdodCBsaSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmhpcmluZ2xpZ2h0IGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLmhpcmluZ2xpZ2h0IGltZyB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5oaXJpbmdsaWdodCBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udXNlY2FzZXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG59XG4udXNlY2FzZXMgLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC5jYXJvdXNlbCB7XG4gICAgaGVpZ2h0OiA4MXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC5jYXJvdXNlbCB7XG4gICAgaGVpZ2h0OiA4My43NXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC5jYXJvdXNlbCB7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgfVxufVxuLnVzZWNhc2VzIC5zbGlkZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyMDtcbiAgaGVpZ2h0OiA1Ni4yNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC51c2VjYXNlcyAuc2xpZGUge1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gIH1cbn1cbi51c2VjYXNlcyAuc2xpZGUuY3VycmVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiA1MDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udXNlY2FzZXMgLnNsaWRlLnByZXYge1xuICBsZWZ0OiAtMTAwJTtcbn1cbi51c2VjYXNlcyAuc2xpZGUubmV4dCB7XG4gIGxlZnQ6IDEwMCU7XG59XG4udXNlY2FzZXMgLnNsaWRlbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEuODc1cmVtO1xuICBsZWZ0OiBjYWxjKCgxMDB2dyAtIDc1cmVtKSAvIDIpO1xuICB6LWluZGV4OiAyMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMzMuOTM3NXJlbTtcbiAgaGVpZ2h0OiAzLjI1cmVtO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDAzREY1O1xuICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnNsaWRlbmF2IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3R0b206IDMuNzVyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC51c2VjYXNlcyAuc2xpZGVuYXYge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogODV2dztcbiAgfVxufVxuLnVzZWNhc2VzIC5zbGlkZW5hdiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuLnVzZWNhc2VzIC5zbGlkZW5hdiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMDAzREY1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi56ZXJvIHtcbiAgICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbSAxLjYyNXJlbSAwIDAgIWltcG9ydGFudDtcbiAgfVxuICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi5vbmUge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDAgIWltcG9ydGFudDtcbiAgfVxuICAudXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi50d28ge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxLjYyNXJlbSAxLjYyNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4udXNlY2FzZXMgLnNsaWRlbmF2IGJ1dHRvbi5jdXJyZW50IHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMwMDNERjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDNERjU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbTtcbn1cbi51c2VjYXNlcyAudXNlY2FzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4udXNlY2FzZXMgLnVzZWNhc2UgLnRleHQtY29udGVudCB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoNTJ2dyAtICgxMDB2dyAtIDc1cmVtKSAvIDIpO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC51c2VjYXNlIC50ZXh0LWNvbnRlbnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1dnc7XG4gICAgbWF4LXdpZHRoOiBhdXRvO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnVzZWNhc2UgLnRleHQtY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuLnVzZWNhc2VzIC51c2VjYXNlIC50ZXh0LWNvbnRlbnQgaDYge1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuLnVzZWNhc2VzIC51c2VjYXNlIC50ZXh0LWNvbnRlbnQgcCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi51c2VjYXNlcyAudXNlY2FzZSBkdCB7XG4gIG1hcmdpbi10b3A6IDEuMTI1cmVtO1xufVxuLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIHtcbiAgaGVpZ2h0OiA1Ni4yNXJlbTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZy1sZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC51c2VjYXNlcyAudXNlY2FzZSAuYmFja2dyb3VuZCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbi51c2VjYXNlcyAudXNlY2FzZSAuYmFja2dyb3VuZCAuaW1nLWNvbnRlbnQge1xuICBoZWlnaHQ6IDU2LjI1cmVtO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiAwJSA1MCU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLmltZy1jb250ZW50IHtcbiAgICBvYmplY3QtcG9zaXRpb246IDIwJSA1MCU7XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC51c2VjYXNlcyAudXNlY2FzZSAuYmFja2dyb3VuZCAuaW1nLWNvbnRlbnQge1xuICAgIGhlaWdodDogMjguMTI1cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4udXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IHtcbiAgei1pbmRleDogMjA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzLjc1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIC5xdW90YXRpb24tY29udGVudCB7XG4gICAgdG9wOiAyMS4yNXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIC5xdW90YXRpb24tY29udGVudCB7XG4gICAgdG9wOiAyMi43NXJlbTtcbiAgfVxufVxuLnVzZWNhc2VzIC51c2VjYXNlIC5iYWNrZ3JvdW5kIC5xdW90YXRpb24tY29udGVudCAucXVvdGF0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogM3JlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICMwNzExMTk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogMCAycHg7XG4gIG1hcmdpbjogMCAwIDAuNXJlbSAxLjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IC5xdW90YXRpb24ge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAudXNlY2FzZXMgLnVzZWNhc2UgLmJhY2tncm91bmQgLnF1b3RhdGlvbi1jb250ZW50IC5xdW90YXRpb24ge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDAuMjVyZW07XG4gIH1cbn1cblxuLnBsYXlzdG9yZSAucXVvdGF0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogM3JlbTtcbn1cbi5wbGF5c3RvcmUgLnRleHQtY29udGVudCB7XG4gIG1hcmdpbjogMy43NXJlbSAwO1xufVxuLnBsYXlzdG9yZSBmb290ZXIge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5wbGF5c3RvcmUgaW1nIHtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiB0b3A7XG4gIHdpZHRoOiAxMDB2dztcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5wbGF5c3RvcmUgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IDMwJTtcbiAgICBtaW4taGVpZ2h0OiAxMS4yNXJlbTtcbiAgfVxufVxuXG4uZG93bmxvYWRfYXBwIC5xdW90YXRpb24ge1xuICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAzcmVtO1xufVxuLmRvd25sb2FkX2FwcCAudGV4dC1jb250ZW50IHtcbiAgbWFyZ2luOiAzLjc1cmVtIDA7XG59XG4uZG93bmxvYWRfYXBwIGZvb3RlciB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmRvd25sb2FkX2FwcCBpbWcge1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBvYmplY3QtcG9zaXRpb246IHRvcDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC5kb3dubG9hZF9hcHAgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IDMwJTtcbiAgICBtaW4taGVpZ2h0OiAxMS4yNXJlbTtcbiAgfVxufVxuLmRvd25sb2FkX2FwcCAuZnVsbC13aWR0aC1pbWcge1xuICB3aWR0aDogMTAwdnc7XG59XG5cbi5lYXJseS1hY2Nlc3Mtc2RrIGgxIHtcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuZWFybHktYWNjZXNzLXNkayBoMSB7XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAuZWFybHktYWNjZXNzLXNkayAuc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAuZWFybHktYWNjZXNzLXNkayAuc2VjdGlvbiB7XG4gICAgbWF4LWhlaWdodDogNzVyZW07XG4gIH1cbn1cbi5lYXJseS1hY2Nlc3Mtc2RrIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9iamVjdC1wb3NpdGlvbjogdG9wO1xuICB3aWR0aDogMTAwdnc7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAuZWFybHktYWNjZXNzLXNkayBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogMzAlO1xuICB9XG59XG5cbi5mb290ZXItY29udGFpbmVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG59XG5cbi5mb290ZXItYnJhbmRpbmcge1xuICBoZWlnaHQ6IDYuMjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5mb290ZXItY29udGFpbmVyIHtcbiAgICB3aWR0aDogdW5zZXQ7XG4gIH1cbiAgLmZvb3Rlci1icmFuZGluZyB7XG4gICAgaGVpZ2h0OiA1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuZm9vdGVyLWJyYW5kaW5nIHtcbiAgICBoZWlnaHQ6IDMuNzVyZW07XG4gIH1cbn1cbi5hd2FyZHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMEYxNzJFO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cbi5hd2FyZHNfX2xpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmF3YXJkc19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG59XG4uYXdhcmRzIGxpIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuYXdhcmRzIGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMzMzMzMzJSAtIDEuODc1cmVtKTtcbiAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC45Mzc1cmVtO1xuICB9XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuYXdhcmRzIGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuLmF3YXJkcyBpbWcge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4uYXdhcmRzIHNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYXdhcmRzX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLmluc3RydWN0aW9uc19fZmlyc3QtbGF1bmNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cbi5pbnN0cnVjdGlvbnNfX3VzaW5nLWFwcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNzExMTk7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuLmluc3RydWN0aW9uc19fdXNpbmctYXBwIGEge1xuICBjb2xvcjogIzZkYTJmZjtcbn1cbi5pbnN0cnVjdGlvbnMgc2VjdGlvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uaW5zdHJ1Y3Rpb25zIGZpZ3VyZSB7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbWF4LXdpZHRoOiAxOC43NXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5pbnN0cnVjdGlvbnMgZmlndXJlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgfVxufVxuLmluc3RydWN0aW9ucyBmaWdjYXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuLmluc3RydWN0aW9ucyA6aXMoaDQsIGg1KSB7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xufVxuLmluc3RydWN0aW9ucyBoNSB7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmO1xufVxuXG4uYmxvZy1zZWFyY2hiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGU1YTZlO1xuICBwYWRkaW5nOiAzLjc1cmVtIDA7XG59XG4uYmxvZy1zZWFyY2hiYXIgaDIge1xuICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAzcmVtO1xuICBjb2xvcjogI2Y3ZjdmNztcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi5ibG9nLXNlYXJjaGJhciBpbnB1dCB7XG4gIGJhY2tncm91bmQ6ICNmOWZjZmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwNzExMTk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAycHggMnB4IC0xcHggI2VkZWZmNTtcbiAgYm9yZGVyLXJhZGl1czogMS42MjVyZW07XG4gIHBhZGRpbmc6IDAuNzVyZW0gMS43NXJlbTtcbiAgd2lkdGg6IDY1JTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaWNvbnMvaWNvbl9zZWFyY2guc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NyUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctc2VhcmNoYmFyIGlucHV0IHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5cbi5ibG9nLW1haW4ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmJsb2ctbWFpbiAuZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuYmxvZy1tYWluIC5mbGV4LmhpZ2hsaWdodCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmJsb2ctbWFpbiAucmlnaHQtY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiAycmVtO1xufVxuLmJsb2ctbWFpbiAucmlnaHQtY29udGVudC5zbWFsbCB7XG4gIHdpZHRoOiA1MiU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuYmxvZy1tYWluIC5yaWdodC1jb250ZW50LnNtYWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICBvcmRlcjogMTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gIH1cbn1cbi5ibG9nLW1haW4gLnNlY3Rpb25fX3Bvc3Qge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbi5ibG9nLW1haW4gLnNlY3Rpb24uaGlkZGVuLXBvc3Qge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJsb2ctbWFpbiAuaW1nIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJsb2ctbWFpbiAuaW1nLnNtYWxsIHtcbiAgd2lkdGg6IDkuMzc1cmVtO1xuICBoZWlnaHQ6IDkuMzc1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctbWFpbiAuaW1nLnNtYWxsIHtcbiAgICB3aWR0aDogNC41cmVtO1xuICAgIGhlaWdodDogNC41cmVtO1xuICB9XG59XG4uYmxvZy1tYWluIC5pbWcuaGlnaGxpZ2h0IHtcbiAgd2lkdGg6IDE4Ljc1cmVtO1xuICBoZWlnaHQ6IDE4Ljc1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctbWFpbiAuaW1nLmhpZ2hsaWdodCB7XG4gICAgd2lkdGg6IDEyLjVyZW07XG4gICAgaGVpZ2h0OiAxMi41cmVtO1xuICAgIG9yZGVyOiAyO1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXJnaW4tdG9wOiAxLjEyNXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctbWFpbiAuaW1nLmhpZ2hsaWdodCB7XG4gICAgd2lkdGg6IDYuNXJlbTtcbiAgICBoZWlnaHQ6IDYuNXJlbTtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWFyZ2luLXRvcDogMS4xMjVyZW07XG4gIH1cbn1cbi5ibG9nLW1haW4gLmljb25zLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmJsb2ctbWFpbiAuaWNvbnMtbGlzdC5zbWFsbCB7XG4gIG1hcmdpbjogMC43NXJlbSAwIDA7XG59XG4uYmxvZy1tYWluIC5pY29ucy1saXN0LmhpZ2hsaWdodCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMCAwO1xufVxuLmJsb2ctbWFpbiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG59XG4uYmxvZy1tYWluIC5pY29uLnNtYWxsIHtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gIHdpZHRoOiAyLjE4NzVyZW07XG59XG4uYmxvZy1tYWluIC5pY29uLmhpZ2hsaWdodCB7XG4gIGhlaWdodDogMi44MTI1cmVtO1xuICB3aWR0aDogMi44MTI1cmVtO1xufVxuLmJsb2ctbWFpbiBoMyxcbi5ibG9nLW1haW4gaDYge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuLmJsb2ctbWFpbiBwIHtcbiAgY29sb3I6ICMwNzExMTk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmJsb2ctbWFpbiBwLnNtYWxsIHtcbiAgbWFyZ2luOiAwLjM3NXJlbSAwIDA7XG59XG4uYmxvZy1tYWluIHAuaGlnaGxpZ2h0IHtcbiAgbWFyZ2luOiAwLjc1cmVtIDAgMDtcbn1cbi5ibG9nLW1haW4gYSB7XG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmJsb2ctbWFpbiBhLmhpZ2hsaWdodCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG59XG4uYmxvZy1tYWluIGhyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDcxMTE5O1xuICBtYXJnaW46IDRyZW0gMCAxLjg3NXJlbTtcbn1cblxuLmJsb2ctcG9zdCB7XG4gIGNvbG9yOiAjMDcxMTE5O1xufVxuLmJsb2ctcG9zdCAubWFpbi1pbWcge1xuICBtYXJnaW4tdG9wOiAzLjEyNXJlbTtcbn1cbi5ibG9nLXBvc3QgLm1haW4taW1nLnRpbGUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM0Ljg3NXJlbTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAzMyUgNzUlO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctcG9zdCAubWFpbi1pbWcudGlsZSB7XG4gICAgaGVpZ2h0OiAxOC43NXJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDY1JSA3NSUgIWltcG9ydGFudDtcbiAgfVxufVxuLmJsb2ctcG9zdCAubWFpbi1pbWcudGlsZS5hX2d1aWRlbGluZV90b19kZXNpZ25faW5jbHVzaXZlX2FwcF9pbnRlcmZhY2VzIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Jsb2cvYV9ndWlkZWxpbmVfdG9fZGVzaWduX2luY2x1c2l2ZV9hcHBfaW50ZXJmYWNlcy9tYWluLmdpZlwiKTtcbn1cbi5ibG9nLXBvc3QgLm1haW4taW1nLnRpbGUuc291bmRfYXNfYV90b29sX3RvX2ludGVyYWN0X3dpdGhfdGhlX3dvcmxkIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2Jsb2cvc291bmRfYXNfYV90b29sX3RvX2ludGVyYWN0X3dpdGhfdGhlX3dvcmxkL21haW4uZ2lmXCIpO1xufVxuLmJsb2ctcG9zdCBoMyB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uYmxvZy1wb3N0IGg2IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuLmJsb2ctcG9zdCBwIHtcbiAgY29sb3I6ICMwNzExMTk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM3NXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuLmJsb2ctcG9zdCBwLmgtZm9udC0tYm9sZCB7XG4gIG1hcmdpbi10b3A6IDEuODc1cmVtO1xufVxuLmJsb2ctcG9zdCBsaSB7XG4gIG1hcmdpbjogMDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5ibG9nLXBvc3QgbGkge1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICB9XG59XG4uYmxvZy1wb3N0IGg2LFxuLmJsb2ctcG9zdCBmaWd1cmUsXG4uYmxvZy1wb3N0IGZpZ3VyZSArIHAsXG4uYmxvZy1wb3N0IC52LWltZy1jb250YWluZXIgKyBwIHtcbiAgbWFyZ2luOiAxLjg3NXJlbSAwIDA7XG59XG4uYmxvZy1wb3N0IHVsIHtcbiAgbWFyZ2luOiAwLjYyNXJlbSAwO1xuICBwYWRkaW5nOiAwIDJyZW07XG59XG4uYmxvZy1wb3N0IHVsLmljb25zLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwO1xufVxuLmJsb2ctcG9zdCAuaWNvbiB7XG4gIG1hcmdpbjogMS44NzVyZW0gMC42MjVyZW0gMCAwO1xuICBoZWlnaHQ6IDIuODEyNXJlbTtcbiAgd2lkdGg6IDIuODEyNXJlbTtcbn1cbi5ibG9nLXBvc3QgcCArIHAsXG4uYmxvZy1wb3N0IGg2ICsgcCB7XG4gIG1hcmdpbi10b3A6IDAuNjI1cmVtO1xufVxuLmJsb2ctcG9zdCBmaWd1cmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmJsb2ctcG9zdCBmaWdjYXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNGU1YTZlO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE4NzVyZW07XG59XG4uYmxvZy1wb3N0IGEge1xuICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYmxvZy1wb3N0IGhyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDcxMTE5O1xuICBtYXJnaW46IDEuODc1cmVtIDAgMDtcbn1cbi5ibG9nLXBvc3QgLmNpdGF0aW9uIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY4NzVyZW07XG4gIGNvbG9yOiAjNGU1YTZlO1xuICBwYWRkaW5nOiAwIDE1JTtcbiAgbWFyZ2luOiAxLjg3NXJlbSAwO1xufVxuLmJsb2ctcG9zdCAuY2l0YXRpb24gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzc1cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5ibG9nLXBvc3QgLmgtaW1nLXMsXG4uYmxvZy1wb3N0IC5oLWltZy1tLFxuLmJsb2ctcG9zdCAuaC1pbWctYiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi5ibG9nLXBvc3QgLmgtaW1nLXMge1xuICBtYXgtaGVpZ2h0OiA2Ljc1cmVtO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5Ljk5ODc1ZW0pIHtcbiAgLmJsb2ctcG9zdCAuaC1pbWctcyB7XG4gICAgbWF4LWhlaWdodDogNXJlbTtcbiAgfVxufVxuLmJsb2ctcG9zdCAuaC1pbWctbSB7XG4gIG1heC1oZWlnaHQ6IDE2LjYyNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5ibG9nLXBvc3QgLmgtaW1nLW0ge1xuICAgIG1heC1oZWlnaHQ6IDEyLjVyZW07XG4gIH1cbn1cbi5ibG9nLXBvc3QgLmgtaW1nLWIge1xuICBtYXgtaGVpZ2h0OiAyNy4zNzVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuYmxvZy1wb3N0IC5oLWltZy1iIHtcbiAgICBtYXgtaGVpZ2h0OiAyMS44NzVyZW07XG4gIH1cbn1cbi5ibG9nLXBvc3QgLnYtaW1nLW0ge1xuICBoZWlnaHQ6IDI3LjM3NXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5ibG9nLXBvc3QgLnYtaW1nLW0ge1xuICAgIGhlaWdodDogMjVyZW07XG4gIH1cbn1cbi5ibG9nLXBvc3QgLnYtaW1nLWIge1xuICBoZWlnaHQ6IDQyLjY4NzVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTk4NzVlbSkge1xuICAuYmxvZy1wb3N0IC52LWltZy1iIHtcbiAgICBoZWlnaHQ6IDI1cmVtO1xuICB9XG59XG4uYmxvZy1wb3N0IC52LWltZy1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5ibG9nLXBvc3QgLnYtaW1nLWNvbnRhaW5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4uYmxvZy1wb3N0IC52LWltZy1jb250YWluZXIgZmlndXJlIHtcbiAgd2lkdGg6IDUwJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45OTg3NWVtKSB7XG4gIC5ibG9nLXBvc3QgLnYtaW1nLWNvbnRhaW5lciBmaWd1cmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5pbXByZXNzdW0tYW5kLXBvbGljaWVzIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi5pbXByZXNzdW0tYW5kLXBvbGljaWVzIHNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgLml1Yl9jb250ZW50IHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgI2l1YmVuZGFfcG9saWN5IHtcbiAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG59XG4uaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgcCB7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuLmltcHJlc3N1bS1hbmQtcG9saWNpZXMgI2l1YmVuZGFfcG9saWN5IGgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG59XG4uaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgaDMsXG4uaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgaDQsXG4uaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgaDUsXG4uaW1wcmVzc3VtLWFuZC1wb2xpY2llcyAjaXViZW5kYV9wb2xpY3kgaDYge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi5pbXByZXNzdW0tYW5kLXBvbGljaWVzICNpdWJlbmRhX3BvbGljeSAub25lX2xpbmVfY29sID4gaDIge1xuICBmb250LXNpemU6IDEuODc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5sYW5kaW5nLXBhZ2VzLW12cCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZm9udC1mYW1pbHk6IFwiTGV4ZW5kXCIsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmxhbmRpbmctcGFnZXMtbXZwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgaDUsXG4ubGFuZGluZy1wYWdlcy1tdnAgaDQsXG4ubGFuZGluZy1wYWdlcy1tdnAgaDMsXG4ubGFuZGluZy1wYWdlcy1tdnAgaDIsXG4ubGFuZGluZy1wYWdlcy1tdnAgaDEsXG4ubGFuZGluZy1wYWdlcy1tdnAgcCB7XG4gIGZvbnQtZmFtaWx5OiBcIkxleGVuZFwiLCBzYW5zLXNlcmlmO1xufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uIHtcbiAgcGFkZGluZy1pbmxpbmU6IDFyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX193cmFwcGVyIHtcbiAgbWF4LXdpZHRoOiA5Ni4yNXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fd3JhcHBlciB7XG4gICAgcGFkZGluZzogMCA1JTtcbiAgfVxufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXJnaW46IDIuNXJlbSAwIDA7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCB7XG4gIGZsZXg6IDE7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgaDQge1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgaDQge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCBwIHtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCBwIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzFfX2xlZnQgcC5oaWdobGlnaHQge1xuICBjb2xvcjogIzAwM0RGNTtcbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCBwLmhpZ2hsaWdodF9faW1tZXJzaXZlLXRvdXJpc20ge1xuICBjb2xvcjogI0VCMzMzMztcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fbGVmdCB7XG4gICAgd2lkdGg6IDcwdnc7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMV9fcmlnaHQge1xuICBmbGV4OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmxhbmRpbmctcGFnZXMtbXZwIC5zZWN0aW9uX18xX19yaWdodCB7XG4gICAgcGFkZGluZzogMS4yNXJlbSAwIDAgMDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMXAge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLnNlY3Rpb25fXzEgaW1nIHtcbiAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSBpbWcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuc2VjdGlvbl9fMSAubG9nbyB7XG4gIG1heC1oZWlnaHQ6IDExLjI1cmVtO1xufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b24ge1xuICBmb250LXNpemU6IDEuM3Z3O1xuICBsaW5lLWhlaWdodDogMS41dnc7XG4gIGJvcmRlci1yYWRpdXM6IDVyZW07XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDMuNzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIH1cbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDIuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgfVxufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI1Ljg3Mzc1ZW0pIHtcbiAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgfVxufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b25fX2hlcm9fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTIlO1xuICB0b3A6IDcxJTtcbn1cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXIge1xuICAgIHRvcDogMzUlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19oZXJvX3dyYXBwZXJfX2Jpa2UtZGVsaXZlcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE3JTtcbiAgdG9wOiA2OSU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbl9faGVyb193cmFwcGVyX19iaWtlLWRlbGl2ZXJ5IHtcbiAgICB0b3A6IDM1JTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbl9faGVyb193cmFwcGVyX19pbW1lcnNpdmUtdG91cmlzbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNyU7XG4gIHRvcDogNzMlO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmxhbmRpbmctcGFnZXMtbXZwIC5idXR0b25fX2hlcm9fd3JhcHBlcl9faW1tZXJzaXZlLXRvdXJpc20ge1xuICAgIHRvcDogNDIlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuYnV0dG9uX19jb250ZW50X3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tdG9wOiAyLjVyZW07XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbl9fY29udGVudF93cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLmJ1dHRvbiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLmJhY2tncm91bmQtZ3JhZGllbnQtYnV0dG9uIHtcbiAgLyogd2FybmluZzogZ3JhZGllbnQgdXNlcyBhIHJvdGF0aW9uIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBDU1MgYW5kIG1heSBub3QgYmVoYXZlIGFzIGV4cGVjdGVkICovXG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudCgxMTguMTIlIDE2Ni4zOCUgYXQgMTYuOCUgNjYuODklLCAjMDAzZGY1IDEzLjclLCAjNzI5MWVjIDY3LjcxJSwgIzcyZTVlYyAxMDAlKTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogOTB2dztcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5iYWNrZ3JvdW5kLWdyYWRpZW50LWJ1dHRvbl9faW1tZXJzaXZlLXRvdXJpc20ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTEuNWRlZywgI0VCMzMzMyA1LjI5JSwgI0YzNUU1RSA1My45NSUsICNGNTU5N0YgOTUuMzElKTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogOTB2dztcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmxhbmRpbmctcGFnZXMtbXZwIC5pbWFnZV9fd3JhcHBlciB7XG4gIG1heC13aWR0aDogMTEyLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5sYW5kaW5nLXBhZ2VzLW12cCAuaW1hZ2VfX3dyYXBwZXIgLm1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAubGFuZGluZy1wYWdlcy1tdnAgLmltYWdlX193cmFwcGVyIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuICAubGFuZGluZy1wYWdlcy1tdnAgLmltYWdlX193cmFwcGVyIC5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLmltYWdlX193cmFwcGVyIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4ubGFuZGluZy1wYWdlcy1tdnAgLmhvcml6b250YWwtaW1nIHtcbiAgcGFkZGluZzogMDtcbn1cbi5sYW5kaW5nLXBhZ2VzLW12cC5sYW5kaW5nLXBhZ2VzLW12cF9fY29udGFjdC1mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNjAsIDE1MSwgMjE3LCAwLjEpO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAwO1xufVxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLmxhbmRpbmctcGFnZXMtbXZwLmxhbmRpbmctcGFnZXMtbXZwX19jb250YWN0LWZvcm0ge1xuICAgIHBhZGRpbmc6IDVyZW0gMCAwIDA7XG4gIH1cbn1cbi5sYW5kaW5nLXBhZ2VzLW12cC5sYW5kaW5nLXBhZ2VzLW12cF9fY29udGFjdC1mb3JtIC5jb250YWN0X2Zvcm1fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubGFuZGluZy1wYWdlcy1tdnAubGFuZGluZy1wYWdlcy1tdnBfX2NvbnRhY3QtZm9ybSAuY29udGFjdF9mb3JtX3dyYXBwZXIgcCB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG59XG4ubGFuZGluZy1wYWdlcy1tdnAubGFuZGluZy1wYWdlcy1tdnBfX2NvbnRhY3QtZm9ybSAuY29udGFjdF9mb3JtX3dyYXBwZXIgLmZvcm0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB3aWR0aDogODV2dztcbiAgbWF4LXdpZHRoOiA3Ni44NzVyZW07XG59IiwiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjkuMFxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuLy8gLS0tIERlcGVuZGVuY2llcyAtLS1cbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlLFxuICAkeHktZ3JpZDogJHh5LWdyaWRcbikge1xuICBAaWYgJGZsZXgge1xuICAgICRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmICR4eS1ncmlkIHtcbiAgICAkeHktZ3JpZDogdHJ1ZSAhZ2xvYmFsO1xuICB9XG5cbiAgLy8gR2xvYmFsIHN0eWxlc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblxuICAvLyBHcmlkc1xuICBAaWYgbm90ICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkeHktZ3JpZCB7XG4gICAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG4gIC8vIEJhc2ljIGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNhcmQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuXG4gIC8vIENvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG4gIC8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudS1pY29uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG5cbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJldmVhbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG5cbiAgLy8gSGVscGVyc1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG4gIEBpZiAkZmxleCB7IEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzOyB9XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaWYgJHByb3RvdHlwZSB7IEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvdG90eXBlLWNsYXNzZXM7IH1cbn1cbiIsIiRmb250LXBhdGg6ICcvYXNzZXRzL2ZvbnRzLycgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNvcm1vcmFudDppdGFsLHdnaHRAMSw2MDAmZGlzcGxheT1zd2FwJyk7XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICBmb250LWRpc3BsYXk6IG9wdGlvbmFsO1xuLy8gICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIjtcbi8vICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuLy8gICBzcmM6IGxvY2FsKFwiT3BlbiBTYW5zXCIpLFxuLy8gICAgIHVybCgkZm9udF9wYXRoICsgJ29wZW5zYW5zLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4vLyAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbi8vIH1cblxuLy8gQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZGlzcGxheTogb3B0aW9uYWw7XG4vLyAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiO1xuLy8gICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1saWdodDtcbi8vICAgc3JjOiBsb2NhbChcIk9wZW4gU2FucyBMaWdodFwiKSxcbi8vICAgICB1cmwoJGZvbnRfcGF0aCArICdvcGVuc2Fucy1saWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbi8vICAgdW5pY29kZS1yYW5nZTogVSswMDAtNUZGO1xuLy8gfVxuXG4vLyBAZm9udC1mYWNlIHtcbi8vICAgZm9udC1kaXNwbGF5OiBvcHRpb25hbDtcbi8vICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCI7XG4vLyAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LXNlbWlib2xkO1xuLy8gICBzcmM6IGxvY2FsKFwiT3BlbiBTYW5zIEJsYWNrXCIpLFxuLy8gICAgIHVybCgkZm9udF9wYXRoICsgJ29wZW5zYW5zLXNlbWlib2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuLy8gICB1bmljb2RlLXJhbmdlOiBVKzAwMC01RkY7XG4vLyB9XG5cbi8vIEBmb250LWZhY2Uge1xuLy8gICBmb250LWRpc3BsYXk6IG9wdGlvbmFsO1xuLy8gICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIjtcbi8vICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbi8vICAgc3JjOiBsb2NhbChcIk9wZW4gU2FucyBCb2xkXCIpLFxuLy8gICAgIHVybCgkZm9udF9wYXRoICsgJ29wZW5zYW5zLWJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4vLyAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwLTVGRjtcbi8vIH1cbiIsIi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLXZlbmRvci1wcmVmaXhlc1xuXG5AbWl4aW4gZm91bmRhdGlvbi1ub3JtYWxpemUoKSB7XG4gIC8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuICAvLyBEb2N1bWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG5cbiAgaHRtbCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDFcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgfVxuXG4gIC8vIFNlY3Rpb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgLy8gYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cblxuICBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgfVxuXG4gIC8vIEdyb3VwaW5nIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAvLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDFcbiAgICBoZWlnaHQ6IDA7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLy8gMlxuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHByZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuXG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgLy8gMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cblxuICBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDsgLy8gMVxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cblxuICBiLFxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgY29kZSxcbiAga2JkLFxuICBzYW1wIHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8vIDFcbiAgICBmb250LXNpemU6IDFlbTsgLy8gMlxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gIC8vIGFsbCBicm93c2Vycy5cblxuICBzdWIsXG4gIHN1cCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIHN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xuICB9XG5cbiAgc3VwIHtcbiAgICB0b3A6IC0wLjVlbTtcbiAgfVxuXG4gIC8vIEVtYmVkZGVkIGNvbnRlbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuXG4gIGltZyB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB9XG5cbiAgLy8gRm9ybXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMTAwJTsgLy8gMVxuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgbWFyZ2luOiAwOyAvLyAyXG4gIH1cblxuICAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgLy8gMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cblxuICBidXR0b24sXG4gIGlucHV0IHsgLy8gMVxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gIC8vIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cblxuICBidXR0b24sXG4gIHNlbGVjdCB7IC8vIDFcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5cbiAgYnV0dG9uLFxuICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgW3R5cGU9XCJyZXNldFwiXSxcbiAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG5cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cblxuICBmaWVsZHNldCB7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAvLyAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gIC8vICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGxlZ2VuZCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDFcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgICBwYWRkaW5nOiAwOyAvLyAzXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLy8gMVxuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cblxuICBwcm9ncmVzcyB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG5cbiAgdGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cblxuICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gMlxuICB9XG5cbiAgLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuXG4gIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG5cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gIC8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cblxuICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMVxuICAgIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgfVxuXG4gIC8vIEludGVyYWN0aXZlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cblxuICBkZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cblxuICBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIH1cblxuICAvLyBNaXNjXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuXG4gIHRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG5cbiAgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBEaXNhYmxlIG91dGxpbmUgd2hlbiBpbnRlbnQgaXMgY2xlYXJseSBtb3VzZSBhbmQgdG91Y2hcbiAgW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0sXG4gIFtkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSB7XG4gICAgKiwgKjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgaU9TIGNhbGxvdXRzIHdoZW4gZHJhZ2dhYmxlIGlzIGZhbHNlXG4gIFtkcmFnZ2FibGU9ZmFsc2VdIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby1jb2xvci1saXRlcmFscywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIGdsb2JhbFxuLy8vL1xuXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLy8gRm9udCBzaXplIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIGA8aHRtbD5gIGFuZCBgPGJvZHk+YC4gV2UgdXNlIDEwMCUgYnkgZGVmYXVsdCBzbyB0aGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHVzZXIncyBicm93c2VyIHNldHRpbmdzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGFsbCB0eXBlLiBgJGdsb2JhbC1saW5laGVpZ2h0YCBpcyAyNHB4IHdoaWxlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgaXMgMTZweFxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcnMgdXNlZCBmb3IgYnV0dG9ucywgY2FsbG91dHMsIGxpbmtzLCBldGMuIFRoZXJlIG11c3QgYWx3YXlzIGJlIGEgY29sb3IgY2FsbGVkIGBwcmltYXJ5YC5cbi8vLyBAdHlwZSBNYXBcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcbiAgXCJwcmltYXJ5XCI6ICMxNzc5YmEsXG4gIFwic2Vjb25kYXJ5XCI6ICM3Njc2NzYsXG4gIFwic3VjY2Vzc1wiOiAjM2FkYjc2LFxuICBcIndhcm5pbmdcIjogI2ZmYWUwMCxcbiAgXCJhbGVydFwiOiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgc2FmZSBwYWRkaW5nIG9uIHRoZSBib2R5IGZvciBub24tcmVjdGFuZ3VsYXIgZGV2aWNlcyAoaS5lLiBwaG9uZXMgd2l0aCBub3RjaGVzKVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LXNhZmUtcGFkZGluZzogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBvc2l0aW9uaW5nIG9uIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLXBvc2l0aW9uOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBDYW4gYmUgb3ZlcndyaXR0ZW4gYXQgaW5kaXZpZHVhbCBtZW51IGNvbXBvbmVudCBsZXZlbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWVudS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgbWVudSBzdHlsZXMuIE5lc3RlZCBtYXJnaW4gZm9yIHN1Ym1lbnUuXG4kZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRleHQgZGlyZWN0aW9uIG9mIHRoZSBDU1MuIENhbiBiZSBlaXRoZXIgYGx0cmAgb3IgYHJ0bGAuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLWZsZXhib3g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVkIHJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIHByb3RvdHlwZXMgaWYgYXBwbGljYWJsZVxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIEJ1dHRvbiBjdXJzb3IncyB2YWx1ZSwgYGF1dG9gIGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG8gIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICBAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlIHRoYXQgY29udGFpbnMgdGhlIGZsZXgganVzdGlmeWluZyBvcHRpb25zXG4kLXpmLWZsZXgtanVzdGlmeTogLXpmLWZsZXgtanVzdGlmeSgkZ2xvYmFsLXRleHQtZGlyZWN0aW9uKTtcblxuLy8vIEdsb2JhbCB0b2xlcmFuY2UgZm9yIGNvbG9yIHBpY2sgY29udHJhc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW5vcm1hbGl6ZTtcblxuICAvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcbiAgLmZvdW5kYXRpb24tbXEge1xuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcbiAgfVxuXG4gIGh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICosXG4gICo6OmJlZm9yZSxcbiAgKjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGlmICgkYm9keS1zYWZlLXBhZGRpbmcpIHtcbiAgICAgIC8vIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhY2NvdW50IGZvciBub24tcmVjdGFuZ3VsYXIgZGlzcGxheXMgZS5nLiBwaG9uZXMgd2l0aCBub3RjaGVzXG4gICAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xuICAgICAgcGFkZGluZy1yaWdodDogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xuICAgICAgcGFkZGluZy1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gIC8vIE1ha2UgcmVzZXQgaW5oZXJpdCBmb250LWZhbWlseSBpbnN0ZWFkIG9mIHNldHRpbmdzIHNhbnMtc2VyaWZcbiAgYnV0dG9uLFxuICBpbnB1dCxcbiAgb3B0Z3JvdXAsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuICAuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAgMjAuIEZvcm1zXG4vLyAgMjEuIExhYmVsXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxuLy8gIDIzLiBNZW51XG4vLyAgMjQuIE1ldGVyXG4vLyAgMjUuIE9mZi1jYW52YXNcbi8vICAyNi4gT3JiaXRcbi8vICAyNy4gUGFnaW5hdGlvblxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDQ3LiBSZXZlYWxcbi8vICA0OC4gU2xpZGVyXG4vLyAgNDkuIFN3aXRjaFxuLy8gIDUwLiBUYWJsZVxuLy8gIDUxLiBUYWJzXG4vLyAgNTIuIFRodW1ibmFpbFxuLy8gIDUzLiBUaXRsZSBCYXJcbi8vICA1NC4gVG9vbHRpcFxuLy8gIDU1LiBUb3AgQmFyXG4vLyAgNTYuIFh5IEdyaWRcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMDAzREY1LFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuICBsaW1lOiAjNDNjZjlmLFxuICBsaWdodC1ibHVlOiAjNmRhMmZmLFxuICBkYXJrLWJsdWU6ICMwMDBhMjYsXG4gIGdyYXktMDE6ICMwNzExMTksXG4gIGdyYXktMDI6ICM0ZTVhNmUsXG4gIGdyYXktMDM6ICNmN2Y3ZjcsXG4gIGFjY2VudC0wNC1kYjogIzQzQ0Y5RixcbiAgYWNjZW50LTA0LWxiOiAjMUJBNzc3XG4pO1xuJGxpZ2h0LWdyYXk6ICNlNmU2ZTY7XG4kbWVkaXVtLWdyYXk6ICNjYWNhY2E7XG4kZGFyay1ncmF5OiAjOGE4YThhO1xuJGJsYWNrOiAjMGEwYTBhO1xuJG94Zm9yZC1ibHVlOiAjMEYxNzJFO1xuJHdoaXRlOiAjZmVmZWZlO1xuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlO1xuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrO1xuJGJvZHktZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtcG9zaXRpb246IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbDtcbiRnbG9iYWwtd2VpZ2h0LWxpZ2h0ZXN0OiAyMDA7XG4kZ2xvYmFsLXdlaWdodC1saWdodDogMzAwO1xuJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ6IDUwMDtcbiRnbG9iYWwtd2VpZ2h0LWJvbGQ6IDcwMDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiB0cnVlO1xuJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM6IGZhbHNlO1xuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvO1xuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMDtcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZTtcbiRwcmludC1ocmVmczogdHJ1ZTtcbiRhbGljZS1ibHVlOiAjZWRlZmY1O1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1vYmlsZTogNDE0cHgsXG4gIG1lZGl1bTogNjQwcHgsXG4gIG1vYmlsZS14bDogNjQwcHgsXG4gIHBoYWJsZXQ6IDc2OHB4LFxuICB0YWJsZXQ6IDk2MHB4LFxuICBkZXNrdG9wOiAxMjAwcHgsXG4gIGRlc2t0b3AteGw6IDE0NDBweCxcbiAgZGVza3RvcC14eGw6IDE2NjBweFxuKTtcbiRicmVha3BvaW50cy1oaWRwaTogKFxuICBoaWRwaS0xOiAxLFxuICBoaWRwaS0xLTU6IDEuNSxcbiAgaGlkcGktMjogMixcbiAgcmV0aW5hOiAyLFxuICBoaWRwaS0zOiAzXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGRlc2t0b3A7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAobW9iaWxlIHRhYmxldCBkZXNrdG9wLCBkZXNrdG9wLXhsLCBkZXNrdG9wLXh4bCk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogJ0Nvcm1vcmFudCcsIHNlcmlmO1xuJGhlYWRlci1jb2xvcjogaW5oZXJpdDtcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW07XG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDQpLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMzApLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMjApLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDUwKSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQ0KSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDMwKSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgKSxcbik7XG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kc21hbGwtZm9udC1zaXplOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZTtcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2s7XG5cbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xuJGxlYWQtbGluZWhlaWdodDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQ7XG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtO1xuJGNpdGUtY29sb3I6IGluaGVyaXQ7XG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCc7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kY29kZS1ibG9jay1wYWRkaW5nOiAxcmVtO1xuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0czogdHJ1ZTtcbiRhYmlkZS1sYWJlbHM6IHRydWU7XG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KTtcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gNy4gQWNjb3JkaW9uXG4vLyAtLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbi1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcbiRhY2NvcmRpb24tcGx1cy1jb250ZW50OiAnXFwwMDJCJztcbiRhY2NvcmRpb24tbWludXMtY29udGVudDogJ1xcMjAxMyc7XG4kYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDguIEFjY29yZGlvbiBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9ubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS1wYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1wYWRkaW5nO1xuJGFjY29yZGlvbm1lbnUtYXJyb3dzOiB0cnVlO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtYm9yZGVyOiBudWxsO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHg7XG5cbi8vIDkuIEJhZGdlXG4vLyAtLS0tLS0tLVxuXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYmFkZ2UtY29sb3I6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQ6ICRibGFjaztcbiRiYWRnZS1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGJhZGdlLXBhZGRpbmc6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcbiRiYWRnZS1mb250LXNpemU6IDAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IDAuNzVyZW07XG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3I6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItaXRlbTogJy8nO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW0tcnRsOiAnXFxcXCc7XG4kYnJlYWRjcnVtYnMtaXRlbS1zZXBhcmF0b3ItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMTEuIEJ1dHRvblxuLy8gLS0tLS0tLS0tLVxuXG4kYnV0dG9uLWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDJlbTtcbiRidXR0b24tbWFyZ2luOiAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJ1dHRvbi1yYWRpdXM6IDEuNjI1cmVtO1xuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiBpbmhlcml0LFxuICBsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlO1xuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2U7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHg7XG4kYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3I6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlO1xuXG4vLyAxMy4gQ2FsbG91dFxuLy8gLS0tLS0tLS0tLS1cblxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XG4kY2FsbG91dC1ib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRibGFjaywgMC4yNSk7XG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1zaXplczogKFxuICBzbWFsbDogMC41cmVtLFxuICBkZWZhdWx0OiAxcmVtLFxuICBsYXJnZTogM3JlbSxcbik7XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi16LWluZGV4OiAxMDtcbiRjbG9zZWJ1dHRvbi1kZWZhdWx0LXNpemU6IG1lZGl1bTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6IG51bGw7XG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtbmVzdGVkLW1hcmdpbjogMDtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1wYWRkaW5nOiAkZHJvcGRvd25tZW51LXBhZGRpbmc7XG4kZHJvcGRvd25tZW51LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tY29sb3ItYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudDtcblxuLy8gMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50OiA2O1xuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZTtcblxuLy8gMjAuIEZvcm1zXG4vLyAtLS0tLS0tLS1cblxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKTtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KTtcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrO1xuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYztcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbTtcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5O1xuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGlucHV0LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiRpbnB1dC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1wYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQ7XG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlO1xuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjEuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IDAuOHJlbTtcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMi4gTWVkaWEgT2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkOiAxMDAlO1xuXG4vLyAyMy4gTWVudVxuLy8gLS0tLS0tLS1cblxuJG1lbnUtbWFyZ2luOiAwO1xuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW47XG4kbWVudS1pdGVtcy1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRtZW51LXNpbXBsZS1tYXJnaW46IDFyZW07XG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlOiAkYmxhY2s7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlO1xuJG1lbnUtaWNvbnMtYmFjay1jb21wYXQ6IHRydWU7XG5cbi8vIDI0LiBNZXRlclxuLy8gLS0tLS0tLS0tXG5cbiRtZXRlci1oZWlnaHQ6IDFyZW07XG4kbWV0ZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRtZXRlci1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcbiRtZXRlci1maWxsLW1lZGl1bTogJHdhcm5pbmctY29sb3I7XG4kbWV0ZXItZmlsbC1iYWQ6ICRhbGVydC1jb2xvcjtcblxuLy8gMjUuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZXM6IChcbiAgc21hbGw6IDI1MHB4LFxuKTtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplOiAyMHB4O1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3I6IHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExO1xuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMztcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTI7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZTtcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCc7XG5cbi8vIDI2LiBPcmJpdFxuLy8gLS0tLS0tLS0tXG5cbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjcuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGU7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zOiBmYWxzZTtcbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuJHBhZ2luYXRpb24tYXJyb3ctcHJldmlvdXM6ICdcXDAwQUInO1xuJHBhZ2luYXRpb24tYXJyb3ctbmV4dDogJ1xcMDBCQic7XG5cbi8vIDI4LiBQcm9ncmVzcyBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjkuIFByb3RvdHlwZSBBcnJvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWFycm93LWRpcmVjdGlvbnM6IChcbiAgZG93bixcbiAgdXAsXG4gIHJpZ2h0LFxuICBsZWZ0XG4pO1xuJHByb3RvdHlwZS1hcnJvdy1zaXplOiAwLjQzNzVyZW07XG4kcHJvdG90eXBlLWFycm93LWNvbG9yOiAkYmxhY2s7XG5cbi8vIDMwLiBQcm90b3R5cGUgQm9yZGVyLUJveFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYm9yZGVyLWJveC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMxLiBQcm90b3R5cGUgQm9yZGVyLU5vbmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItbm9uZS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG5cbi8vIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXJlZC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWJvcmRlci13aWR0aDogcmVtLWNhbGMoMSk7XG4kcHJvdG90eXBlLWJvcmRlci10eXBlOiBzb2xpZDtcbiRwcm90b3R5cGUtYm9yZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDMzLiBQcm90b3R5cGUgRGlzcGxheVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZGlzcGxheS1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLWRpc3BsYXk6IChcbiAgaW5saW5lLFxuICBpbmxpbmUtYmxvY2ssXG4gIGJsb2NrLFxuICB0YWJsZSxcbiAgdGFibGUtY2VsbFxuKTtcblxuLy8gMzQuIFByb3RvdHlwZSBGb250LVN0eWxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtZm9udC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXdpZGUtbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpO1xuJHByb3RvdHlwZS1mb250LW5vcm1hbDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHByb3RvdHlwZS1mb250LWJvbGQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWxpc3QtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLXVub3JkZXJlZDogKFxuICBkaXNjLFxuICBjaXJjbGUsXG4gIHNxdWFyZVxuKTtcbiRwcm90b3R5cGUtc3R5bGUtdHlwZS1vcmRlcmVkOiAoXG4gIGRlY2ltYWwsXG4gIGxvd2VyLWFscGhhLFxuICBsb3dlci1sYXRpbixcbiAgbG93ZXItcm9tYW4sXG4gIHVwcGVyLWFscGhhLFxuICB1cHBlci1sYXRpbixcbiAgdXBwZXItcm9tYW5cbik7XG5cbi8vIDM2LiBQcm90b3R5cGUgT3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1vdmVyZmxvdy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLW92ZXJmbG93OiAoXG4gIHZpc2libGUsXG4gIGhpZGRlbixcbiAgc2Nyb2xsXG4pO1xuXG4vLyAzNy4gUHJvdG90eXBlIFBvc2l0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtcG9zaXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1wb3NpdGlvbjogKFxuICBzdGF0aWMsXG4gIHJlbGF0aXZlLFxuICBhYnNvbHV0ZSxcbiAgZml4ZWRcbik7XG4kcHJvdG90eXBlLXBvc2l0aW9uLXotaW5kZXg6IDk3NTtcblxuLy8gMzguIFByb3RvdHlwZSBSb3VuZGVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1yb3VuZGVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMyk7XG5cbi8vIDM5LiBQcm90b3R5cGUgU2VwYXJhdG9yXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNlcGFyYXRvci1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1hbGlnbjogY2VudGVyO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItaGVpZ2h0OiByZW0tY2FsYygyKTtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLXdpZHRoOiAzcmVtO1xuJHByb3RvdHlwZS1zZXBhcmF0b3ItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gNDAuIFByb3RvdHlwZSBTaGFkb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2hhZG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLDAsMCwuMTYpLFxuICAgICAgICAgICAgICAgICAgICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuXG4vLyA0MS4gUHJvdG90eXBlIFNpemluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaXppbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zaXppbmc6IChcbiAgd2lkdGgsXG4gIGhlaWdodFxuKTtcbiRwcm90b3R5cGUtc2l6ZXM6IChcbiAgMjU6IDI1JSxcbiAgNTA6IDUwJSxcbiAgNzU6IDc1JSxcbiAgMTAwOiAxMDAlXG4pO1xuXG4vLyA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNwYWNpbmctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1zcGFjZXJzLWNvdW50OiAzO1xuXG4vLyA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kZWNvcmF0aW9uLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1kZWNvcmF0aW9uOiAoXG4gIG92ZXJsaW5lLFxuICB1bmRlcmxpbmUsXG4gIGxpbmUtdGhyb3VnaCxcbik7XG5cbi8vIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdHJhbnNmb3JtYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LXRyYW5zZm9ybWF0aW9uOiAoXG4gIGxvd2VyY2FzZSxcbiAgdXBwZXJjYXNlLFxuICBjYXBpdGFsaXplXG4pO1xuXG4vLyA0NS4gUHJvdG90eXBlIFRleHQtVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtdXRpbGl0aWVzLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbi8vIDQ2LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKTtcblxuLy8gNDcuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRyZXZlYWwtd2lkdGg6IDYwMHB4O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiRyZXZlYWwtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXg6IDEwMDU7XG4kcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNDUpO1xuXG4vLyA0OC4gU2xpZGVyXG4vLyAtLS0tLS0tLS0tXG5cbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4kc2xpZGVyLWhlaWdodDogMC41cmVtO1xuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gNDkuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW07XG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuJHN3aXRjaC1vcGFjaXR5LWRpc2FibGVkOiAuNTtcbiRzd2l0Y2gtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcblxuLy8gNTAuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlO1xuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtc3RyaXBlOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcbiR0YWJsZS1zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDUxLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheTtcbiR0YWItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiR0YWItaXRlbS1mb250LXdlaWdodDogNzAwO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiByZW0tY2FsYygxMikgcmVtLWNhbGMoMzApO1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IDRweCBzb2xpZCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuQHVzZSBcInNhc3M6Y29sb3JcIjtcblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1icC12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJlZCAgIDogcm91bmQoY29sb3IuY2hhbm5lbCgkY29sb3IsIFwicmVkXCIsICRzcGFjZTogcmdiKSk7XG4gICRncmVlbiA6IHJvdW5kKGNvbG9yLmNoYW5uZWwoJGNvbG9yLCBcImdyZWVuXCIsICRzcGFjZTogcmdiKSk7XG4gICRibHVlICA6IHJvdW5kKGNvbG9yLmNoYW5uZWwoJGNvbG9yLCBcImJsdWVcIiwgJHNwYWNlOiByZ2IpKTtcbiAgJHJnYiAgIDogJ3JnYiUyOCN7JHJlZH0sICN7JGdyZWVufSwgI3skYmx1ZX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGNvbG9yLmNoYW5uZWwoJGNvbG9yLCBcImxpZ2h0bmVzc1wiLCAkc3BhY2U6IGhzbCkgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZSBvciAoJG1lZGlhLXF1ZXJpZXMgPT0gJ2Zvci1saXN0cycgYW5kICQtYnJlYWtwb2ludHMtaXMtYS1saXN0KSkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJGJwLXZhbHVlOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgICBAaWYgJGJwLXZhbHVlICE9IG51bGwge1xuICAgICAgICAkbmFtZTogJGJwLXZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZC1mcm9tLWhlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgJWNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLXNpemU6IG51bGw7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgXCJzbWFsbFwiOiAwLFxuICBcIm1lZGl1bVwiOiA2NDBweCxcbiAgXCJsYXJnZVwiOiAxMDI0cHgsXG4gIFwieGxhcmdlXCI6IDEyMDBweCxcbiAgXCJ4eGxhcmdlXCI6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIFwiaGlkcGktMVwiOiAxLFxuICBcImhpZHBpLTEtNVwiOiAxLjUsXG4gIFwiaGlkcGktMlwiOiAyLFxuICBcInJldGluYVwiOiAyLFxuICBcImhpZHBpLTNcIjogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSBkaXZpZGUoMSwgJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHQtbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0LW51bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHQtbnVtYmVyKSB7XG4gICAgICAkbmV4dC1udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHQtbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kLWtleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZC1rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kLWtleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AdXNlIFwic2Fzczpjb2xvclwiO1xuQGltcG9ydCAnbWF0aCc7XG5cbiRjb250cmFzdC13YXJuaW5nczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiRwcmltYXJ5LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yOiBudWxsICFkZWZhdWx0O1xuJHN1Y2Nlc3MtY29sb3I6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZWQgICA6IHJvdW5kKGNvbG9yLmNoYW5uZWwoJGNvbG9yLCBcInJlZFwiLCAkc3BhY2U6IHJnYikpO1xuICAkZ3JlZW4gOiByb3VuZChjb2xvci5jaGFubmVsKCRjb2xvciwgXCJncmVlblwiLCAkc3BhY2U6IHJnYikpO1xuICAkYmx1ZSAgOiByb3VuZChjb2xvci5jaGFubmVsKCRjb2xvciwgXCJibHVlXCIsICRzcGFjZTogcmdiKSk7XG5cbiAgJHJnYmE6ICRyZWQsICRncmVlbiwgJGJsdWU7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiBkaXZpZGUoJHJnYiwgMjU1KTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCBkaXZpZGUoJHJnYiwgMTIuOTIpLCBwb3coZGl2aWRlKCRyZ2IgKyAwLjA1NSwgMS4wNTUpLCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiBkaXZpZGUoJGx1bWluYW5jZTEsICRsdW1pbmFuY2UyKTtcblxuICBAaWYgJGx1bWluYW5jZTIgPiAkbHVtaW5hbmNlMSB7XG4gICAgJHJhdGlvOiBkaXZpZGUoMSwgJHJhdGlvKTtcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApICogMC4xO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFzZSAtIENvbG9yIHRvIGNoZWNrIGx1bWluYW5jZS5cbi8vLyBAcGFyYW0ge0xpc3R9ICRjb2xvcnMgWygkd2hpdGUsICRibGFjayldIC0gQ29sb3JzIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0b2xlcmFuY2UgWyRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2VdIC0gQ29udHJhc3QgdG9sZXJhbmNlLlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAkZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3Qtd2FybmluZ3MgYW5kICRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiAnQ29udHJhc3QgcmF0aW8gb2YgI3skYmVzdH0gb24gI3skYmFzZX0gaXMgcHJldHR5IGJhZCwganVzdCAjeyRjb250cmFzdH0nO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgY29sb3IuY2hhbm5lbCgkY29sb3IsIFwibGlnaHRuZXNzXCIsICRzcGFjZTogaHNsKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiB1bmRlciB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY29kZS1ibG9jay1tYXJnaW4tYm90dG9tOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBjaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICB9XG59XG5cbi8vLyBBZGQgYmFzaWMgc3R5bGVzIGZvciBhIGNvZGUgaGVscGVyLlxuLy8vIFNlZSBgY29kZS1pbmxpbmVgIGFuZCBgY29kZS1ibG9ja2AgbWl4aW5zLlxuQG1peGluIGNvZGUtc3R5bGUge1xuICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gaW5saW5lLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWlubGluZWBcbkBtaXhpbiBjb2RlLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGEgYmxvY2suXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtYmxvY2tgXG5AbWl4aW4gY29kZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcblxuICBwYWRkaW5nOiAkY29kZS1ibG9jay1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkY29kZS1ibG9jay1tYXJnaW4tYm90dG9tO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAlY2l0ZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY2l0ZS1ibG9jaztcbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICB9XG5cbiAgJWNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtYmxvY2s7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIC8vIEVuc3VyZSBhIFwiYmxhY2stb24td2hpdGVcIiBwcmludCBieSByZW1vdmluZyBiYWNrZ3JvdW5kcyxcbiAgICAgIC8vIHVzaW5nIGJsYWNrIHRleHQgZXZlcnl3aGVyZSBhbmQgZm9yY2luZyB0aGUgYnJvd3NlciB0byBlY29ub21pemUgaW5rLlxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgcHJldmVudCBhbnkgZWNvbm9teSBieSB0aGUgYnJvd3Nlci5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiQGZ1bmN0aW9uIHJlbSgkc2l6ZSkge1xuICAgICRyZW1TaXplOiAkc2l6ZSAvIDE2cHg7XG4gICAgLy9EZWZhdWx0IGZvbnQgc2l6ZSBvbiBodG1sIGVsZW1lbnQgaXMgMTAwJSwgZXF1aXZhbGVudCB0byAxNnB4O1xuICAgIEByZXR1cm4gI3skcmVtU2l6ZX1yZW07XG59XG5cbi8qKlxuICogVGV4dCBjb2xvciBiYXNlZCBvbiBpdHMgYmFja2dyb3VuZC5cbiAqIEBwYXJhbSAge051bWJlcn0gJGNvbG9yIENvbG9yLlxuICogQHJldHVybiB7TnVtYmVyfSBDb2xvci5cbiAqL1xuIEBmdW5jdGlvbiBzZXQtYnV0dG9uLXRleHQtY29sb3IoJGNvbG9yKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gNTUge1xuICAgICAgICBAcmV0dXJuICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiBnZXQtY29sb3IobGlnaHQtYmx1ZSk7XG4gICAgfVxufVxuIiwiLy8gbWFyZ2luIGFuZCBwYWRkaW5nIHZhbHVlcyBhcnJheVxuJHNwYWNlLXZhbHVlczogKDAsXG4gICAgMSxcbiAgICAyLFxuICAgIDMsXG4gICAgNCxcbiAgICA2LFxuICAgIDgsXG4gICAgMTApICFkZWZhdWx0O1xuXG4vLyBtYXJnaW4gYW5kIHBhZGRpbmcgc2hvcnRoYW5kc1xuJHNwYWNlLXByZWZpeGVzOiAoXG4gICAgaC1wOiAgcGFkZGluZyxcbiAgICBoLXB0OiBwYWRkaW5nLXRvcCxcbiAgICBoLXByOiBwYWRkaW5nLXJpZ2h0LFxuICAgIGgtcGI6IHBhZGRpbmctYm90dG9tLFxuICAgIGgtcGw6IHBhZGRpbmctbGVmdCxcbiAgICBoLW06ICBtYXJnaW4sXG4gICAgaC1tdDogbWFyZ2luLXRvcCxcbiAgICBoLW1yOiBtYXJnaW4tcmlnaHQsXG4gICAgaC1tYjogbWFyZ2luLWJvdHRvbSxcbiAgICBoLW1sOiBtYXJnaW4tbGVmdCxcbikgIWRlZmF1bHQ7XG5cbkBtaXhpbiBtYWtlLXNwYWNlcygpIHtcblxuICAgIEBlYWNoICRhdHRyLXNob3J0LFxuICAgICRhdHRyLWxvbmcgaW4gJHNwYWNlLXByZWZpeGVzIHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRzcGFjZS12YWx1ZXMge1xuICAgICAgICAgICAgLiN7JGF0dHItc2hvcnR9LSN7JHZhbHVlfSB7XG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICAgICAgICAgICAgICAjeyRhdHRyLWxvbmd9OiAjeyR2YWx1ZSAvIDJ9I3tcInJlbVwifSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gbWFyZ2luIGFuZCBwYWRkaW5nIHZhbHVlcyBhcnJheVxuJGZvbnQtc2l6ZXM6IChcbiAgICBoLWZvbnQteHhzOiAxLFxuICAgIGgtZm9udC14czogIDEuMixcbiAgICBoLWZvbnQtczogICAxLjQsXG4gICAgaC1mb250LW06ICAgMS42LFxuICAgIGgtZm9udC1tbDogIDEuOCxcbiAgICBoLWZvbnQtbDogICAyLFxuICAgIGgtZm9udC14bDogIDIuNCxcbiAgICBoLWZvbnQteHhsOiAzXG4pICFkZWZhdWx0O1xuXG4kZm9udC1wcmVmaXhlczogKGgtZm9udHNpemUgOiBmb250LXNpemUpICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9udC1zaXplcygpIHtcblxuICAgIEBlYWNoICRmb250LXNob3J0LFxuICAgICRmb250LXNpemUgaW4gJGZvbnQtc2l6ZXMge1xuICAgICAgICAuI3skZm9udC1zaG9ydH0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAjeyRmb250LXNpemUgKiAuNjI1fSN7XCJyZW1cIn07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVmVydGljYWwgYWxpZ24gYW55dGhpbmdcbiAqIEBwYXJhbSB7dmFsdWV9ICRwb3NpdGlvblxuICogcmV0dXJuIG5vbmVcbiAqL1xuXG5AbWl4aW4gdmVydGljYWwtYWxpZ24oJHBvc2l0aW9uOiByZWxhdGl2ZSkge1xuICAgIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gQW5pbWF0aW9uXG4vLy8gQHBhcmFtIHsqfSAkc3RyIC0gbmFtZSBkdXJhdGlvbiB0aW1pbmctZnVuY3Rpb24gZGVsYXkgaXRlcmF0aW9uLWNvdW50IGRpcmVjdGlvbiBmaWxsLW1vZGUgcGxheS1zdGF0ZVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgICAjeydhbmltYXRpb24nfTogI3skc3RyfTtcbn1cblxuLy8gRm9udCBTaXplIE1peGluXG5AbWl4aW4gZm9udC1zaXplKCRyZW0tYmFzZTogMS41KSB7XG4gICAgZm9udC1zaXplOiAkcmVtLWJhc2UgKiAuNjI1ICsgcmVtO1xufVxuXG4vLyBDb3VudGluZyBudW1iZXIgb2YgY2hpbGQgZWxlbWVudHNcbkBtaXhpbiB3aXRoLWNvdW50KCRuKSB7XG4gICAgQGlmICRuPT0xIHtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbn0pLFxuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JG59KX4mIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiaHRtbCB7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvO1xuICAgIH1cbn1cblxuJXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCR3aWR0aDogODV2dywgJHBhZGRpbmc6IDApO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXI7XG4gICAgfVxufVxuXG4uc2VjdGlvbiB7XG4gICAgcGFkZGluZzogcmVtKDYwcHgpIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgQGV4dGVuZCAld3JhcHBlcjtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAxLjUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAzLjc1KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlIGd1dHRlcnMgZm9yIGEgY2VsbC9jb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGVpdGhlciBtYXJnaW4gb3IgcGFkZGluZy5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW3JpZ2h0IGxlZnRdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJG5lZ2F0aXZlIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBndXR0ZXIgYXMgYSBuZWdhdGl2ZSB2YWx1ZS4gQ29tbW9ubHkgdXNlZCBmb3IgbmVzdGVkIGdyaWRzLlxuQG1peGluIHh5LWd1dHRlcnMoXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRuZWdhdGl2ZTogZmFsc2Vcbikge1xuICAkb3BlcmF0b3I6IGlmKCRuZWdhdGl2ZSwgJy0nLCAnJyk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBkZWNsYXJlZCBuZWdhdGl2ZSBndXR0ZXJzLCBmb3JjZSB0eXBlIHRvIGBtYXJnaW4uXG4gICRndXR0ZXItdHlwZTogaWYoJG5lZ2F0aXZlLCAnbWFyZ2luJywgJGd1dHRlci10eXBlKTtcblxuICAvLyBPdXRwdXQgb3VyIG1hcmdpbiBndXR0ZXJzLlxuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdtYXAnKSB7XG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoYXV0bywgJGd1dHRlcnMpIHtcbiAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogMC41O1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAqIDAuNTtcblxuICAgIC8vIExvb3AgdGhyb3VnaCBlYWNoIGd1dHRlciBwb3NpdGlvblxuICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICN7JGd1dHRlci10eXBlfS0jeyR2YWx1ZX06IHVucXVvdGUoXCIjeyRvcGVyYXRvcn0jeyRndXR0ZXJ9XCIpO1xuICAgIH1cbiAgfVxufVxuIiwiJWZvbnQtYWx0IHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbn1cblxuOmlzKGgyLCBoNSkge1xuICAgIEBleHRlbmQgJWZvbnQtYWx0O1xufVxuXG46aXMoaDUpIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuIiwiLmgtdmlzaWJsZS1oaWRkZW4ge1xuICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbi8vIGxpc3RzXG4uaC1saXN0IHtcbiAgICAmLS1jbGVhbiB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLS1jb3VudGVyIHtcbiAgICAgICAgY291bnRlci1yZXNldDogc2VjdGlvbjtcblxuICAgICAgICBbY2xhc3MqPVwidGl0bGVcIl0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogc2VjdGlvbjtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHNlY3Rpb24pIFwiLiBcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gdHlwb2dyYXBoeVxuLmgtdGV4dCB7XG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLS1pdGFsaWMge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAmLS11bmRlcmxpbmVkIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJi0tbGVmdCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuXG4uaC1mb250IHtcbiAgICAmLS1saWdodCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1saWdodDtcbiAgICB9XG5cbiAgICAmLS1yZWd1bGFyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICB9XG5cbiAgICAmLS1zZW1pYm9sZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1zZW1pYm9sZDtcbiAgICB9XG5cbiAgICAmLS1ib2xkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgfVxufVxuXG4uaC1mb250LWFsdCB7XG4gICAgQGV4dGVuZCAlZm9udC1hbHQgIW9wdGlvbmFsO1xufVxuXG5AaW5jbHVkZSBmb250LXNpemVzKCk7XG4vLyBoLWZvbnQteHhzIDogMTBweCAvIC42cmVtLFxuLy8gaC1mb250LXhzICA6IDEycHggLyAuNzVyZW0sXG4vLyBoLWZvbnQtcyAgIDogMTRweCAvIC44NzVyZW0sXG4vLyBoLWZvbnQtbSAgIDogMTZweCAvIDFyZW0sXG4vLyBoLWZvbnQtbWwgIDogMThweCAvIDEuMTI1cmVtLFxuLy8gaC1mb250LWwgICA6IDIwcHggLyAxLjI1cmVtLFxuLy8gaC1mb250LXhsICA6IDI0cHggLyAxLjVyZW0sXG4vLyBoLWZvbnQteHhsIDogMzBweCAvIDEuODc1cmVtXG5cbi8vIFBhZGRpbmcgJiBNYXJnaW5cbkBpbmNsdWRlIG1ha2Utc3BhY2VzKCk7XG5cbi8vIGJhY2tncm91bmRzXG4iLCIuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24odHJ1ZSwgJHByaW1hcnktY29sb3IsIGF1dG8sICR3aGl0ZSwgc29saWQpO1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAuc3ZnLWljb24ge1xuICAgICAgICBmaWxsOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi0taG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKHRydWUsICRwcmltYXJ5LWNvbG9yLCB0cmFuc3BhcmVudCwgJHByaW1hcnktY29sb3IsIGhvbGxvdyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1zZW1pYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAuc3ZnLWljb24ge1xuICAgICAgICAgICAgZmlsbDogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24odHJ1ZSwgJHdoaXRlLCBhdXRvLCAkYmxhY2ssIHNvbGlkKTtcbiAgICB9XG5cbiAgICAmLS1zcGVjaWFsIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKHRydWUsIGdldC1jb2xvcihsaW1lKSwgYXV0bywgJGJsYWNrLCBzb2xpZCk7XG4gICAgfVxuXG4gICAgJi0tc2hyaW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZChmYWxzZSk7XG4gICAgfVxuXG4gICAgJi0tZGlzYWJsZWQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAmLS1zb2NpYWwge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG5cbiAgICAgICAgLnN2Zy1pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgICB9XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBGb250IGZhbWlseSBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEZvbnRcbiRidXR0b24tZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYnV0dG9uIGVsZW1lbnRzLlxuLy8vIElnbm9yZWQgaWYgbnVsbCAoZGVmYXVsdClcbi8vLyBAdHlwZSBGb250LVdlaWdodFxuJGJ1dHRvbi1mb250LXdlaWdodDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBidXR0b25zLCB0cmFuc3BhcmVudCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciB3aWR0aCBmb3IgaG9sbG93IG91dGxpbmUgYnV0dG9uc1xuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tc2l6ZXM6IChcbiAgdGlueTogMC42cmVtLFxuICBzbWFsbDogMC43NXJlbSxcbiAgZGVmYXVsdDogMC45cmVtLFxuICBsYXJnZTogMS4yNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvcmluZyBjbGFzc2VzLiBBIG1hcCBvZiBjbGFzc2VzIHRvIG91dHB1dCBpbiB5b3VyIENTUywgbGlrZSBgLnNlY29uZGFyeWAsIGAuc3VjY2Vzc2AsIGFuZCBzbyBvbi5cbi8vLyBAdHlwZSBNYXBcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogLTIwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgaG9sbG93IGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLy8gdHJhbnNpdGlvbnMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIEFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBjbGFzc2VzIGZvciAuZXhwYW5kZWRcbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIGJvcmRlcjogJGJ1dHRvbi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG4gIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBvciBjbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1maWxsLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZpbGwgWyRidXR0b24tZmlsbF0gLSBUeXBlIG9mIGZpbGxpbmcgYmV0d2VlbiBgaG9sbG93YCBhbmQgYGNsZWFyYC4gYHNvbGlkYCBoYXMgbm8gZWZmZWN0cy5cbkBtaXhpbiBidXR0b24tZmlsbChcbiAgJGZpbGw6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhcjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlcyBvZiBhIHNvbGlkL2hvbGxvdy9jbGVhciBidXR0b24gZmlsbGluZyBhY2NvcmRpbmcgdG8gYCRmaWxsYC5cbi8vLyBTZWUgbWl4aW5zIGBidXR0b24tc3R5bGVgLCBgYnV0dG9uLWhvbGxvdy1zdHlsZWAgYW5kIGBidXR0b24tY2xlYXItc3R5bGVgIGZvciBlZmZlY3RzIG9mIHZpc3VhbCBzdHlsaW5nIHBhcmFtZXRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gLVxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSAtXG5AbWl4aW4gYnV0dG9uLWZpbGwtc3R5bGUoXG4gICRmaWxsOiAkYnV0dG9uLWZpbGwsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkZmlsbCA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGNsZWFyIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY2xlYXItc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gU2VlIG1peGluIGBidXR0b24taG9sbG93LXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1ob2xsb3cge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGhvbGxvdyBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBhbmQgYm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYm9yZGVyLXdpZHRoIFskYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhdIC0gQm9yZGVyIHdpZHRoIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uLWhvbGxvdy1zdHlsZShcbiAgJGNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzcyxcbiAgJGJvcmRlci13aWR0aDogJGJ1dHRvbi1ob2xsb3ctYm9yZGVyLXdpZHRoXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGNvbG9yO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBiYXNlIHN0eWxlcyBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIHRoZSBmaWxsaW5nIHN0eWxlcy5cbkBtaXhpbiBidXR0b24tY2xlYXIge1xuICAmLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBjbGVhciBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWJhY2tncm91bmRdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRob3Zlci1saWdodG5lc3MgWyRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc10gLSBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIuXG5AbWl4aW4gYnV0dG9uLWNsZWFyLXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgJGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRob3Zlci1saWdodG5lc3MpO1xuXG4gIC8vIERlZmF1bHQgYW5kIGRpc2FibGVkIHN0YXRlc1xuICAmLFxuICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSxcbiAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMsICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50IGFuZCByZXNldGluZyB0aGUgY3Vyc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eSBbJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkXSAtIE9wYWNpdHkgb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRcbikge1xuICBvcGFjaXR5OiAkYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJHN0eWxlKTtcbiAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJHN0eWxlLCAkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCRzdHlsZTogbm9uZSk7XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIEBpZiAkYnV0dG9uLXJlc3BvbnNpdmUtZXhwYW5kZWQge1xuICAgICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gb25seSkge1xuICAgICAgICAgICYuI3skc2l6ZX0tb25seS1leHBhbmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0gZG93bikge1xuICAgICAgICAgICAgJi4jeyRzaXplfS1kb3duLWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCN7JHNpemV9KSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb2xpZCwgaG9sbG93ICYgY2xlYXIgc3R5bGVzXG4gICAgQGVhY2ggJGZpbGxpbmcgaW4gKHNvbGlkIGhvbGxvdyBjbGVhcikge1xuICAgICAgJHNlbGVjdG9yOiBpZigkYnV0dG9uLWZpbGwgPT0gJGZpbGxpbmcsIG51bGwsICcuI3skZmlsbGluZ30nKTtcblxuICAgICAgJiN7JHNlbGVjdG9yfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1maWxsKCRmaWxsaW5nKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcpO1xuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7XCJcIiArICRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZywgJGNvbG9yLCBhdXRvLCBhdXRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5ob2xsb3csICYuY2xlYXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3tcIlwiICsgJG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5saXN0X19jb3VudGVyIHtcbiAgICBjb3VudGVyLXJlc2V0OiBteWNvdW50ZXI7XG5cbiAgICBkdCB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuIFwiO1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG15Y291bnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgY291bnRlci1yZXNldDogc3ViY291bnRlcjtcbiAgICB9XG5cbiAgICBkaXYge1xuICAgICAgICBjb3VudGVyLXJlc2V0OiBzdWJzdWJjb3VudGVyO1xuICAgIH1cblxuICAgIC5zdWJ0aXRsZSB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuXCIgY291bnRlcihzdWJjb3VudGVyKSBcIi4gXCI7XG4gICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogc3ViY291bnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJzdWJ0aXRsZSB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKG15Y291bnRlcikgXCIuXCIgY291bnRlcihzdWJjb3VudGVyKSBcIi5cIiBjb3VudGVyKHN1YnN1YmNvdW50ZXIpIFwiLiBcIjtcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBzdWJzdWJjb3VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmNhcmQge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgICZfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKDEpO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMCAkZ2xvYmFsLXBhZGRpbmc7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGdsb2JhbC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICB9XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pIHtcbiAgJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgICAnbGVmdCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtZW5kLCBmbGV4LXN0YXJ0KSxcbiAgICAncmlnaHQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCksXG4gICAgJ2NlbnRlcic6IGNlbnRlcixcbiAgICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbiAgKTtcblxuICBAcmV0dXJuICQtemYtZmxleC1qdXN0aWZ5O1xufVxuXG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLm5hdmJhciB7XG4gICAgJi1vcGVuIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICsgLm5hdmJhcl9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoN3B4KSB0cmFuc2xhdGVYKDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH4gLm5hdmJhcl9fbGlzdCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICsgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBqdXN0aWZ5KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiByZW0oNDRweCk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAvIDEuMjUpICgkZ2xvYmFsLXBhZGRpbmcgLyAxLjUpO1xuICAgICAgICB3aWR0aDogcmVtKDQ0cHgpO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgLXdlYmtpdC10cmFuc2Zvcm0gMC4ycztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjRzIGVhc2U7XG4gICAgICAgIHotaW5kZXg6IDEyMDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShnZXQtY29sb3IoZGFyay1ibHVlKSwgMC45NSk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogODhweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg2NHB4KTtcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICAgICAgICB3aWR0aDogNzV2dztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGdldC1jb2xvcihsaWdodC1ibHVlKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdldC1jb2xvcihsaWdodC1ibHVlKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxNik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgICAgICAgc3Bhbjo6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyNHB4KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucm91bmRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmN2Y3Zjc7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMzBweCk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4cHgpIHJlbSgxNnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5pbnN0cnVjdGlvbnMtbmF2YmFyIHtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDE1dmg7XG4gICAgei1pbmRleDogOTtcblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFyZW0pO1xuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg3cHgpIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOXB4KSB0cmFuc2xhdGVYKDFweCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH4gLmluc3RydWN0aW9ucy1uYXZiYXJfX3dyYXBwZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfiAuaW5zdHJ1Y3Rpb25zLW5hdmJhcl9fbWFzazo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICsgbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbihyaWdodCwgbWlkZGxlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIHJlbSgzMHB4KSByZW0oMzBweCkgMDtcbiAgICAgICAgY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAgICAgaGVpZ2h0OiByZW0oNjBweCk7XG4gICAgICAgIGxlZnQ6IC0xcmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSg3LjVweCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC40cyBlYXNlO1xuICAgICAgICB3aWR0aDogcmVtKDcwcHgpO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgZ2V0LWNvbG9yKGxpZ2h0LWJsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTAwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDoganVzdGlmeSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDRweCk7XG4gICAgICAgICAgICBwYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMS4yNSkgKCRnbG9iYWwtcGFkZGluZyAvIDEuNSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDQ0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IobGlnaHQtYmx1ZSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycywtd2Via2l0LXRyYW5zZm9ybSAuMnM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihsaWdodC1ibHVlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCByZW0oMzBweCkgcmVtKDMwcHgpIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoODB2aCAtIDMycHgpO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgLyAyKSAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjRzIGVhc2U7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAwcHgpO1xuICAgICAgICB0b3A6IC0ycmVtO1xuICAgICAgICB6LWluZGV4OiA5O1xuICAgIH1cblxuICAgICZfX21hc2s6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjM1KTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgKiAyKSAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luIC8gMik7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkwqB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuXG4gICAgICAgPiB1bCB7XG4gICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICB9XG5cbiAgICAgICBsaSB7XG4gICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIudGFicyB7XG4gICAgLyoqIHRhYiBzdHlsaW5nICoqL1xuICAgIC50YWIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdGFiLWNvbnRlbnQtYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHRhYi1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDI2cHgpO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBTdHlsZSB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIHRhYiAqL1xuICAgIC50YWIgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR0YWItY29sb3I7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZztcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICAgICAgZm9udC1zaXplOiAkdGFiLWl0ZW0tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYi1pdGVtLWZvbnQtd2VpZ2h0O1xuICAgIH1cbiAgICAvKiBDaGFuZ2UgYmFja2dyb3VuZCBjb2xvciBvZiBidXR0b25zIG9uIGhvdmVyICovXG4gICAgLnRhYiBidXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gICAgLyogQ3JlYXRlIGFuIGFjdGl2ZS9jdXJyZW50IHRhYmxpbmsgY2xhc3MgKi9cbiAgICAudGFiIGJ1dHRvbi5hY3RpdmUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHRhYi1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYi1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjZweCk7XG4gICAgfVxuICAgIC8qIFN0eWxlIHRoZSB0YWIgY29udGVudCAqL1xuICAgIC50YWJjb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9ia2dfaGVyby53ZWJwKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJi0tZ3JheSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9fbmF2YmFyIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDoganVzdGlmeSwgJHk6IG1pZGRsZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoZ2V0LWNvbG9yKGRhcmstYmx1ZSksIC45NSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDI1cHggcmdiYSgkYmxhY2ssIC4xKTtcbiAgICAgICAgaGVpZ2h0OiA4OHB4O1xuICAgICAgICBwYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgJi5oaWRlIHtcbiAgICAgICAgICAgIHRvcDogLTg4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyKCRwYWRkaW5nOiAwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBqdXN0aWZ5LCAkeTogdG9wKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogY2xhbXAoMjAwcHgsIDM1dncsIDMwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtcGxhY2Vob2xkZXIge1xuICAgICAgICBoZWlnaHQ6IDg4cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuaGVybyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLXRvcDogKCRnbG9iYWwtbWFyZ2luICogMyk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2hlcm9fc21hcnRwaG9uZXMtYXBwLndlYnA/dj0xLjExKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6ICgkZ2xvYmFsLW1hcmdpbiAqIDEuNSk7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICYtLW5vLWltYWdlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0MjVweCBhdXRvO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA0NzVweDtcbiAgICAgICAgcGFkZGluZzogcmVtKDYwcHgpIDA7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlcl9fZW1wdHlfX3RvcCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ3NXB4O1xuICAgICAgICBwYWRkaW5nOiByZW0oMTUwcHgpIHJlbSgxNnB4KSByZW0oNjBweCk7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMyk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTAwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNjAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZnVsbC13aWR0aCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDEwMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDYwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BpY3R1cmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAzKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgb25seSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2KTtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMyk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IG9ubHkpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTAwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSAge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQwdnc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3B5IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IG9ubHkpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDM1cHgpO1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAocmVtKDMwcHgpLCByZW0oMzhweCksIDEwdmgpO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1zZW1pYm9sZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jaXRhdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpOy8vY2xhbXAocmVtKDMwcHgpLCByZW0oMzhweCksIDEwdmgpO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1zZW1pYm9sZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgIH1cblxuICAgICZfX2ltYWdlX181MCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNjBweCk7XG4gICAgICAgIGhlaWdodDogcmVtKDUwcHgpO1xuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ3JlZW5fX2J1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihhY2NlbnQtMDQtZGIpO1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihhY2NlbnQtMDQtbGIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IoYWNjZW50LTA0LWRiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgZmxleCB2YWx1ZSBmb3IgYSBjZWxsIGJhc2UuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQWNjZXB0cyBgZnVsbGAsIGBhdXRvYCwgYHNocmlua2AsIGBncm93YCwgb3IgYW55IG90aGVyIHZhbHVlIHJlcHJlc2VudGluZyBhIGNlbGwgc2l6ZSAoaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGBzaHJpbmtgKS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBUaGUgY2VsbCBmbGV4IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICBAaWYgKCRzaXplID09ICdhdXRvJykge1xuICAgIEByZXR1cm4gMSAxIDA7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdncm93Jykge1xuICAgIEByZXR1cm4gMSAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnIG9yICRzaXplID09ICdmdWxsJyBvciB6Zi1pcy1mcmFjdGlvbigkc2l6ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiB0cnVlKSkge1xuICAgIEByZXR1cm4gMCAwIGF1dG87XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gQ2FsY3VsYXRlIHRoZSBzaXplIG9mIGEgY2VsbCBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAgYCRndXR0ZXJzYC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxNYXB9IFRoZSBjZWxsIGd1dHRlciBzaXplIG9yIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwLlxuQGZ1bmN0aW9uIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gIC8vIEZvciBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgbWFwIGAkZ3V0dGVyc2AuXG4gIEBpZiAoJGJyZWFrcG9pbnQgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAkZ3V0dGVycztcbiAgfVxuXG4gIC8vIFVzZSB0aGUgY29udGV4dHVhbCBicmVha3BvaW50IGJ5IGRlZmF1bHQuXG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICBAaWYgKCRicmVha3BvaW50KSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXplcm8tYnJlYWtwb2ludCkgb3IgMDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFNpemUgb2YgdGhlIGNlbGwgKGluIHBlcmNlbnQpLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICBAcmV0dXJuIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoJHNpemUsICRkZW5vbWluYXRvcjogJGdyaWQtY29sdW1ucyk7XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgZm9yIGEgY2VsbCBzaXplLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGFueSBmcmFjdGlvbiBsaWtlIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIGEgbWFwIG9mIHNpemVzIGFkYXB0ZWQgdG8gcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ3xNYXB9IFRoZSBjZWxsIHNpemluZyBwcm9wZXJ0eSB2YWx1ZSwgb3IgYSByZXNwb25zaXZlIG1hcCBvZiB0aGVtLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZS1jc3MoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRtYXJnaW4tZ3V0dGVyOiAwO1xuXG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nIG9yICRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgQHJldHVybiBhdXRvO1xuICB9XG5cbiAgLy8gRm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMsIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRtYXJnaW4tZ3V0dGVyOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgICBAaWYgKCRtYXJnaW4tZ3V0dGVyID09IG51bGwpIHtcbiAgICAgIEBlcnJvciAneHktY2VsbC1zaXplOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIHNpemUgKG51bWJlcilcbiAgJHNpemUtcmF3OiBpZigkc2l6ZSA9PSAnZnVsbCcsIDEwMCUsIHh5LWNlbGwtc2l6ZSgkc2l6ZSkpO1xuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBDU1Mgc2l6ZSBpbmNsdWRpbmcgZ3V0dGVycyAoc3RyaW5nKVxuICAvLyBJZiB0aGUgY2VsbCBoYXMgcmVzcG9uc2l2ZSBtYXJnaW4gZ3V0dGVycywgcmV0dXJuIGEgcmVzcG9uc2l2ZSBtYXAgb2Ygc2l6ZXMuXG4gIEBpZiB0eXBlLW9mKCRtYXJnaW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiAoKTtcblxuICAgIEBlYWNoICRicCwgJG1nIGluICRtYXJnaW4tZ3V0dGVyIHtcbiAgICAgICRtZ2M6IHJlbS1jYWxjKCRtZyk7XG4gICAgICBAaWYgJG1nYyA9PSAwIHtcbiAgICAgICAgLy8gc2Fzcy1saW50OmRpc2FibGUgemVyby11bml0XG4gICAgICAgICRtZ2M6IDByZW07XG4gICAgICB9XG4gICAgICAkc2l6ZS1jc3M6IGlmKCRtZyA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3skbWd9KSk7XG4gICAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6IG1hcC1tZXJnZSgkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXMsICgkYnA6ICRzaXplLWNzcykpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtY3NzLXNpemVzO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIENTUyBzaXplLlxuICBAZWxzZSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoYXQgMCBpcyB0cmFuc2xhdGVkIGluIDByZW0gZm9yIGNhbGMoKVxuICAgICRtZ2M6IHJlbS1jYWxjKCRtYXJnaW4tZ3V0dGVyKTtcbiAgICBAaWYgJG1nYyA9PSAwIHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIHplcm8tdW5pdFxuICAgICAgJG1nYzogMHJlbTtcbiAgICB9XG4gICAgJGNzcy1zaXplOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3skbWdjfSkpO1xuICAgIEByZXR1cm4gJGNzcy1zaXplO1xuICB9XG59XG5cbi8vLyBTZXRzIGJhc2UgZmxleCBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBBY2NlcHRzIGBmdWxsYCwgYGF1dG9gLCBgc2hyaW5rYCwgYGdyb3dgLCBvciBhbnkgb3RoZXIgdmFsdWUgcmVwcmVzZW50aW5nIGEgY2VsbCBzaXplIChpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYHNocmlua2ApLlxuQG1peGluIHh5LWNlbGwtYmFzZSgkc2l6ZTogZnVsbCkge1xuICAkYmFzZTogeHktY2VsbC1iYXNlKCRzaXplKTtcblxuICBmbGV4OiAjeyRiYXNlfTtcblxuICAvLyBTZXQgYmFzZSBzdHlsZXMgZm9yIFwiZnVsbFwiIG9ubHlcbiAgQGlmKCRzaXplID09ICdmdWxsJykge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG59XG5cbi8vLyBSZXNldHMgYSBjZWxscyB3aWR0aCAob3IgaGVpZ2h0IGlmIHZlcnRpY2FsIGlzIHRydWUpIGFzIHdlbGwgYXMgc3RyaXBzIGl0cyBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtcmVzZXQoJHZlcnRpY2FsOiB0cnVlKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgbWF4LSN7JGRpcmVjdGlvbn06IG5vbmU7XG59XG5cbi8vLyBTZXRzIHNpemluZyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHNpemVzIGFkYXB0ZWQgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplczogeHktY2VsbC1zaXplLWNzcygkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzaXplcykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkc2l6ZXMpIHtcbiAgICAgICN7JGRpcmVjdGlvbn06ICQtemYtYnAtdmFsdWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRkaXJlY3Rpb259OiAkc2l6ZXM7XG4gIH1cbn1cblxuLy8vIFNldHMgZ3V0dGVycyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIERpcmVjdGlvbiBvZiB0aGUgZ3V0dGVycyB0byBvdXRwdXQuIFNlZSBgJGd1dHRlci1wb3NpdGlvbmAuXG5AbWl4aW4geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIC8vIEdldCB0aGUgZGVmYXVsdCBndXR0ZXIgcG9zaXRpb24gYWNjb3JkaW5nIHRvIGNlbGwgZGlyZWN0aW9uXG4gIEBpZigkZ3V0dGVyLXBvc2l0aW9uID09IG51bGwpIHtcbiAgICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciB3aWR0aCBmb3IgdGhpcyBicmVha3BvaW50XG4gICRndXR0ZXItd2lkdGg6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICBAaWYgKCRndXR0ZXItd2lkdGggPT0gbnVsbCkge1xuICAgIEBlcnJvciAneHktY2VsbC1ndXR0ZXJzOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gIH1cblxuICBAaWYgKCRndXR0ZXItdHlwZSBhbmQgJGd1dHRlci10eXBlICE9IG5vbmUpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXItd2lkdGgsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAvLyBEZWZhdWx0IGZvciAkZ3V0dGVyLW91dHB1dFxuICBAaWYgKCRndXR0ZXItb3V0cHV0ICE9IG51bGwpIHtcbiAgICBAd2FybiAneHktY2VsbDogJGd1dHRlci1vdXRwdXQgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuICAgIEBpZiAoJGd1dHRlci1vdXRwdXQgPT0gZmFsc2UpIHtcbiAgICAgICRvdXRwdXQ6IHNsLXJlbW92ZSgkb3V0cHV0LCBndXR0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGJhc2UpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIHNpemUpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGd1dHRlcnMpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gYHh5LWNlbGwtc3RhdGljKClgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC5cbi8vLyBVc2UgYHh5LWNlbGwoKWAgaW5zdGVhZCB3aXRoIGAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKWAgdG8gbm90IGdlbmVyYXRlIHRoZSBjZWxsIGJhc2UuXG4vLy8gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCB2Ni42LjBcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLiBBbHdheXMgYHRydWVgIGZvciBtYXJnaW4gZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIEB3YXJuICd4eS1jZWxsLXN0YXRpYygpIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIFwieHktY2VsbCgpXCIgaW5zdGVhZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgJC1ndXR0ZXItb3V0cHV0OiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIHRydWUsICRndXR0ZXItb3V0cHV0KTtcbiAgJC1ndXR0ZXItbWFyZ2luOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsICRndXR0ZXIsIDApO1xuXG4gIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICQtZ3V0dGVyLW1hcmdpbiwgJHZlcnRpY2FsKTtcbiAgQGlmICgkLWd1dHRlci1vdXRwdXQpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi5oaWdobGlnaHRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19lbGVtZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTApO1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoMSk7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtcGFkZGluZyAqIDMuMTI1KTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCwgJGd1dHRlcnM6IDZyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGljdHVyZSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgLyAyKTtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuXG4gICAgICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMSAvIDEpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIHRvIG9mZnNldCBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ30gVGhlIGNlbGwgb2Zmc2V0IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJHNpemU6IHh5LWNlbGwtc2l6ZSgkbik7XG5cbiAgJG9mZnNldDogJHNpemU7XG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoYXQgMCBpcyB0cmFuc2xhdGVkIGluIDByZW0gZm9yIGNhbGMoKVxuICAgICRndXR0ZXI6IHJlbS1jYWxjKHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpKTtcbiAgICBAaWYgJGd1dHRlciA9PSAwIHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlIHplcm8tdW5pdFxuICAgICAgJGd1dHRlcjogMHJlbTtcbiAgICB9XG4gICAgJG9mZnNldDogaWYoJGd1dHRlciA9PSAwLCAkc2l6ZSwgY2FsYygjeyRzaXplfSArICN7JGd1dHRlcn0gLyAyKSk7XG4gIH1cbiAgQHJldHVybiAkb2Zmc2V0O1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQvYm90dG9tIGJ5IGAkbmAgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gU2l6ZSB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGB4eS1jZWxsKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSBNYXAgb2YgZ3V0dGVycyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIGZvciByZXNwb25zaXZlIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gVGhlIHR5cGUgb2YgZ3V0dGVyIHRvIHVzZS4gQ2FuIGJlIGBtYXJnaW5gIG9yIGBwYWRkaW5nYFxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRicmVha3BvaW50IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGZvciBgJGd1dHRlcnNgLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuIElmIGEgbGlzdCBpcyBnaXZlbiwgbWVkaWEtcXVlcmllcyB3aWxsIGJlIGdlbmVyYXRlZC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBvZmZzZXQuIElmIHNldCB0byB0cnVlIHdpbGwgYXBwbHkgbWFyZ2luLXRvcCBpbnN0ZWFkLlxuQG1peGluIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2Vcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJGRpcmVjdGlvbjogaWYoJHZlcnRpY2FsLCAndG9wJywgJGdsb2JhbC1sZWZ0KTtcblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKCRicmVha3BvaW50LCAkbWVkaWEtcXVlcmllczogJ2Zvci1saXN0cycpIHtcbiAgICAkb2Zmc2V0OiB4eS1jZWxsLW9mZnNldCgkbiwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSk7XG4gICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06ICN7JG9mZnNldH07XG4gIH1cbn1cbiIsIi53ZWJwbGFubmVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoL2Fzc2V0cy9pbWcvd2VicGxhbm5lci53ZWJwKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAwcHggY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDc0MnB4IDM5NHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXh4bCkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA3NSUgY2VudGVyO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGV4dGVuZCAlZm9udC1hbHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luIC8gMik7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm5hdGl2ZWFwcCB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9uYXRpdmVhcHAud2VicCk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogODAlIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYShnZXQtY29sb3IoZ3JheS0wMSksIC43KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSg3LCAxNywgMjUsIDEpIDMwJSwgcmdiYSg3LCAxNywgMjUsIDApIDEwMCUpLFxuICAgICAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTUsIDcsIDI1LCAxKSAxNSUsIHJnYmEoMCwgOTEsIDIzNCwgLjcpIDEwMCUpO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgcGFkZGluZzogKCRnbG9iYWwtcGFkZGluZyAqIDMuNzUpIDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluLFxuICAgICZfX2hlYWRlcixcbiAgICAmX19mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSg2MHB4KTtcbiAgICB9XG5cbiAgICAmX192aWRlbyB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuXG4gICAgICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMTYgLyA5KSB7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDU5MS40NHB4IC8gMTEyNy4zNHB4ICogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZpZGVvIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmlsdGVyOiB1cmwoI25hdGl2ZWFwcF9fZmlsdGVyKTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogODV2dztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4gICAgfVxufVxuIiwiLmZlYXR1cmVzIHtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjczODc7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9mZWF0dXJlX2JhY2tncm91bmQud2VicD92PTEuMTEpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgKiAzLjc1KSAwO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjc1KTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7XG4gICAgICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXBhZGRpbmcgKiAzKSAkZ2xvYmFsLXBhZGRpbmc7O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMi4yNSk7XG4gICAgfVxufVxuIiwiLnRlYW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGljZS1ibHVlO1xuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhcmRzIHtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FyZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg2LCAkZ3V0dGVyczogMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDQsICRndXR0ZXJzOiAwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5wYXJ0bmVycyB7XG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogdG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMjAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAvIDIpO1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuIiwiLmNvbnRhY3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSg0MHB4KTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSg4MDBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ocmVme1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgICZfX2hyZWY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oOHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoOSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDMpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDY0cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmV3c2xldHRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKGF1dG8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTIpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLW1hcmdpbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgOmlzKGRsLCBkdCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBqdXN0aWZ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg1LCAkZ3V0dGVyczogMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCwgJGd1dHRlcnM6IDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbnMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKGp1c3RpZnkpO1xuICAgICAgICBtYXJnaW46ICgkZ2xvYmFsLW1hcmdpbiAqIDIpIDA7XG4gICAgfVxuXG4gICAgJl9fbWVudSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtc2VtaWJvbGQ7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzdkYTVmOTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3B5cmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMTIsICRndXR0ZXJzOiAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE2cHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgcGlsbCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbXMtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgc2ltcGxlIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1zaW1wbGUtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgdGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLi5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hbHQtYWN0aXZlOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgbWVudSBzdGF0ZS4gSWYgdHJ1ZSwgdGhpcyBkdXBsaWNhdGUgYGFjdGl2ZWAgd2l0aCBgaXMtYWN0aXZlYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgYWN0aXZlYCB3aWxsIGJlIHJlbW92ZWQgaW4gdXBjb21pbmcgdmVyc2lvbnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBtZW51IGNlbnRlcmVkLiBJZiB0cnVlLCB0aGlzIGR1cGxpY2F0ZSBgLm1lbnUtY2VudGVyZWQgPiAubWVudWAgd2l0aCBgLm1lbnUuYWxpZ24tY2VudGVyYC5cbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiB0b3AvYm90dG9tIGljb25zIHdpdGhpbiBhIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYWxpZ25tZW50IFtjZW50ZXJdIC0gQWxpZ25tZW50IG9mIHRoZSBpY29uXG5AbWl4aW4gbWVudS1pY29uLWFsaWdubWVudCgkYWxpZ25tZW50OiBjZW50ZXIpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgJi5pY29uLXRvcCxcbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIGxpIGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgQGlmICRhbGlnbm1lbnQgPT0gbGVmdCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBwb3NpdGlvbiBjbGFzc2VzIGZvciBpY29ucyB3aXRoaW4gYSBtZW51LlxuQG1peGluIG1lbnUtaWNvbi1wb3NpdGlvbigkcG9zaXRpb246IGxlZnQsICRzcGFjaW5nOiAkbWVudS1pY29uLXNwYWNpbmcpIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmcgYXV0byAwO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIG1lbnUtc3RhdGUtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZSwgKCRtZW51LWl0ZW0tY29sb3ItYWN0aXZlLCAkbWVudS1pdGVtLWNvbG9yLWFsdC1hY3RpdmUpKTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLWFsaWdubWVudChsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSBpY29uIHBvc2l0aW9uXG4gICAgLy8gSW5jbHVkZXMgc3BlY2lmaWNpdHkgdG8gbmVzdGVkIGljb25zIHdpdGggYSBkaWZmZXJlbnQgcG9zaXRpb25cbiAgICAmLFxuICAgICYubmVzdGVkIHtcbiAgICAgIC8vIEljb24gTGVmdFxuICAgICAgJi5pY29uLWxlZnQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWljb24tcG9zaXRpb24obGVmdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gUmlnaHRcbiAgICAgICYuaWNvbi1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihyaWdodCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gVG9wXG4gICAgICAmLmljb24tdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEljb24gQm90dG9tXG4gICAgICAmLmljb24tYm90dG9tIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSBmb3IgYWN0aXZlIHN0YXRlXG4gICAgQGlmICRtZW51LXN0YXRlLWJhY2stY29tcGF0IHtcbiAgICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1zdGF0ZS1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gbGVmdFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLWxlZnR9IHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtYWxpZ24obGVmdCk7XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihyaWdodCk7XG4gICAgICBAaW5jbHVkZSBtZW51LWljb24tYWxpZ25tZW50KHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIuaGlyaW5nZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstZ3JheTtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiBtaWRkbGUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IHRvcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoNCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCgyMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luIC8gMik7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG4iLCIuaGlyaW5nbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogdG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgeHktY2VsbCg0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDIwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1tYXJnaW4gLyAyKTtcbiAgICB9XG5cbiAgICBzbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cbiIsIi51c2VjYXNlcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihncmF5LTAzKTtcblxuICAgIC5jYXJvdXNlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMjk2cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDEzNDBweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWRlIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICBoZWlnaHQ6IHJlbSg5MDBweCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2xpZGUuY3VycmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5zbGlkZS5wcmV2IHtcbiAgICAgICAgbGVmdDogLTEwMCU7XG4gICAgfVxuICAgIC5zbGlkZS5uZXh0IHtcbiAgICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICAuc2xpZGVuYXYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogcmVtKDMwcHgpO1xuICAgICAgICBsZWZ0OiBjYWxjKCgxMDB2dyAtICN7JGdsb2JhbC13aWR0aH0pIC8gMik7XG4gICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiByZW0oNTQzcHgpO1xuICAgICAgICBoZWlnaHQ6IHJlbSg1MnB4KTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgZ2V0LWNvbG9yKHByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjZweCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGJvdHRvbTogcmVtKDYwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiA4NXZ3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWRlbmF2IGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnNsaWRlbmF2IGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNnB4KTtcblxuICAgICAgICAgICAgJi56ZXJvIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxLjYyNXJlbSAxLjYyNXJlbSAwIDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYub25lIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnR3byB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDEuNjI1cmVtIDEuNjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVuYXYgYnV0dG9uLmN1cnJlbnQge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggZ2V0LWNvbG9yKHByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXQtY29sb3IocHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMjZweCk7XG4gICAgfVxuICAgIC51c2VjYXNlIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgICAgICAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgIC8vaGFsZi1zY3JlZW4td2lkdGggcGx1cyBleHRyYSBwYWRkaW5nICgyJSBzY3JlZW4gd2lkdGgpIG1pbnVzIHRoZSBsZWZ0LW1hcmdpbiBhdXRvbWF0aWNhbGx5IGFwcGxpZWQuXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCg1MnZ3KSAtICgoMTAwdncgLSAjeyRnbG9iYWwtd2lkdGh9KSAvIDIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1dnc7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoNiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE4cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJhY2tncm91bmQge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oOTAwcHgpO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmltZy1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg5MDBweCk7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiAwJSA1MCU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AgZG93bikge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDIwJSA1MCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0NTBweCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnF1b3RhdGlvbi1jb250ZW50IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0oNjBweCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogcmVtKDM0MHB4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogcmVtKDM2NHB4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucXVvdGF0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDQwcHgpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQ4cHgpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCByZW0oOHB4KSByZW0oMjRweCk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMycHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0MHB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyNXB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbSg0cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnBsYXlzdG9yZXtcbiAgICAucXVvdGF0aW9uIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiQ29ybW9yYW50XCIsIHNlcmlmO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDQwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDQ4cHgpO1xuICAgIH1cblxuICAgIC50ZXh0LWNvbnRlbnR7XG4gICAgICAgIG1hcmdpbjogcmVtKDYwcHgpIDA7XG4gICAgfVxuXG4gICAgZm9vdGVye1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICBpbWd7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjp0b3A7XG4gICAgICAgIHdpZHRoOjEwMHZ3O1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogMzAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtKDE4MHB4KTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZG93bmxvYWRfYXBwe1xuICAgIC5xdW90YXRpb24ge1xuICAgICAgICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgfVxuXG4gICAgLnRleHQtY29udGVudHtcbiAgICAgICAgbWFyZ2luOiByZW0oNjBweCkgMDtcbiAgICB9XG5cbiAgICBmb290ZXJ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIGltZ3tcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOnRvcDtcbiAgICBcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQgZG93bikge1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IDMwJTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgxODBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnVsbC13aWR0aC1pbWd7XG4gICAgICAgIHdpZHRoOjEwMHZ3O1xuICAgIH1cbn0iLCIuZWFybHktYWNjZXNzLXNka3tcbiAgICBoMXtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgICAgICAgfVxuICAgIH0gXG5cbiAgICAuc2VjdGlvbntcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wIGRvd24pIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDc1cmVtO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBpbWd7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjp0b3A7XG4gICAgICAgIHdpZHRoOjEwMHZ3O1xuICAgIFxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogMzAlO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5mb290ZXItY29udGFpbmVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG59XG5cbi5mb290ZXItYnJhbmRpbmcge1xuICAgIGhlaWdodDogcmVtKDEwMHB4KTtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wIGRvd24pIHtcbiAgICAuZm9vdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiB1bnNldFxuICAgIH1cbiAgICAuZm9vdGVyLWJyYW5kaW5nIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oODBweClcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgLmZvb3Rlci1icmFuZGluZyB7XG4gICAgICAgIGhlaWdodDogcmVtKDYwcHgpXG4gICAgfVxufSIsIi5hd2FyZHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRveGZvcmQtYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6IG1pZGRsZSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogdG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwoMjAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAvIDIpO1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICB9XG59IiwiLmluc3RydWN0aW9ucyB7XG4gICAgJl9fZmlyc3QtbGF1bmNoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDMpO1xuICAgIH1cblxuICAgICZfX3VzaW5nLWFwcCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAkY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBzZXQtYnV0dG9uLXRleHQtY29sb3IoJGNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlY3Rpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIGZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtbWFyZ2luICogMik7XG4gICAgICAgIG1heC13aWR0aDogcmVtKDMwMHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAoJGdsb2JhbC1tYXJnaW4gKiAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxM3B4KTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBtYXJnaW4tdG9wOiAoJGdsb2JhbC1tYXJnaW4gLyAyKTtcbiAgICB9XG5cbiAgICA6aXMoaDQsIGg1KSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ2xvYmFsLW1hcmdpbjtcbiAgICB9XG5cbiAgICBoNSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIH1cbn1cbiIsIi5ibG9nLXNlYXJjaGJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDIpO1xuICAgIHBhZGRpbmc6IHJlbSg2MHB4KSAwO1xuXG4gICAgaDIge1xuICAgICAgICBmb250LWZhbWlseTogXCJDb3Jtb3JhbnRcIiwgc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgICAgIGNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmNmZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMnB4IDJweCAtMXB4ICNlZGVmZjU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyNnB4KTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAxLjc1cmVtO1xuICAgICAgICB3aWR0aDogNjUlO1xuXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ljb25zL2ljb25fc2VhcmNoLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTclIDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJsb2ctbWFpbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAuZmxleCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG5cbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0IGRvd24pIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJpZ2h0LWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogNTIlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWN0aW9uIHtcbiAgICAgICAgJl9fcG9zdCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlkZGVuLXBvc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6IDkuMzc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA5LjM3NXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmhpZ2hsaWdodCB7XG4gICAgICAgICAgICB3aWR0aDogMTguNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDE4Ljc1cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMi41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTIuNXJlbTtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS4xMjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNi41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNi41cmVtO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29ucy1saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNzVyZW0gMCAwO1xuICAgICAgICB9XG4gICAgICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMS4xMjVyZW0gMCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxMHB4KTtcbiAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgzNXB4KTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMzVweCk7XG4gICAgICAgIH1cbiAgICAgICAgJi5oaWdobGlnaHQge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDVweCk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDQ1cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMsXG4gICAgaDYge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDZweCkgMCAwO1xuICAgICAgICB9XG4gICAgICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMC43NXJlbSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgICBib3JkZXItY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAgICAgbWFyZ2luOiA0cmVtIDAgcmVtKDMwcHgpO1xuICAgIH1cbn1cbiIsIi5ibG9nLXBvc3Qge1xuICAgIGNvbG9yOiBnZXQtY29sb3IoZ3JheS0wMSk7XG4gICAgLm1haW4taW1nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDUwcHgpO1xuXG4gICAgICAgICYudGlsZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDU1OHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMzJSA3NSU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzAwcHgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNjUlIDc1JSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFfZ3VpZGVsaW5lX3RvX2Rlc2lnbl9pbmNsdXNpdmVfYXBwX2ludGVyZmFjZXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9ibG9nL2FfZ3VpZGVsaW5lX3RvX2Rlc2lnbl9pbmNsdXNpdmVfYXBwX2ludGVyZmFjZXMvbWFpbi5naWZcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc291bmRfYXNfYV90b29sX3RvX2ludGVyYWN0X3dpdGhfdGhlX3dvcmxkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvYmxvZy9zb3VuZF9hc19hX3Rvb2xfdG9faW50ZXJhY3Rfd2l0aF90aGVfd29ybGQvbWFpbi5naWZcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaDYge1xuICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6IGdldC1jb2xvcihncmF5LTAxKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMnB4KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYuaC1mb250LS1ib2xkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgzMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGg2LFxuICAgIGZpZ3VyZSxcbiAgICBmaWd1cmUgKyBwLFxuICAgIC52LWltZy1jb250YWluZXIgKyBwIHtcbiAgICAgICAgbWFyZ2luOiByZW0oMzBweCkgMCAwO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiByZW0oMTBweCkgMDtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAmLmljb25zLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIG1hcmdpbjogcmVtKDMwcHgpIHJlbSgxMHB4KSAwIDA7XG4gICAgICAgIGhlaWdodDogcmVtKDQ1cHgpO1xuICAgICAgICB3aWR0aDogcmVtKDQ1cHgpO1xuICAgIH1cblxuICAgIHAgKyBwLFxuICAgIGg2ICsgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxMHB4KTtcbiAgICB9XG5cbiAgICBmaWd1cmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oOHB4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogZ2V0LWNvbG9yKGdyYXktMDIpO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDE5cHgpO1xuICAgICAgICAvLyBtYXgtd2lkdGg6IDUwJTtcblxuICAgICAgICAvLyBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAvLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZ2V0LWNvbG9yKGdyYXktMDEpO1xuICAgICAgICBtYXJnaW46IHJlbSgzMHB4KSAwIDA7XG4gICAgfVxuXG4gICAgLmNpdGF0aW9uIHtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyN3B4KTtcbiAgICAgICAgY29sb3I6IGdldC1jb2xvcihncmF5LTAyKTtcbiAgICAgICAgcGFkZGluZzogMCAxNSU7XG4gICAgICAgIG1hcmdpbjogcmVtKDMwcHgpIDA7XG4gICAgfVxuXG4gICAgLmNpdGF0aW9uIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMnB4KTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmgtaW1nLXMsXG4gICAgLmgtaW1nLW0sXG4gICAgLmgtaW1nLWIge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmgtaW1nLXMge1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMTA4cHgpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDgwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmgtaW1nLW0ge1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0oMjY2cHgpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDIwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oLWltZy1iIHtcbiAgICAgICAgbWF4LWhlaWdodDogcmVtKDQzOHB4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDM1MHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC52LWltZy1tIHtcbiAgICAgICAgaGVpZ2h0OiByZW0oNDM4cHgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0MDBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudi1pbWctYiB7XG4gICAgICAgIGhlaWdodDogcmVtKDY4M3B4KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQgZG93bikge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oNDAwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnYtaW1nLWNvbnRhaW5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAudi1pbWctY29udGFpbmVyIGZpZ3VyZSB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCBkb3duKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5pbXByZXNzdW0tYW5kLXBvbGljaWVzIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkZ2xvYmFsLW1hcmdpbiAqIDIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5pdWJfY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgI2l1YmVuZGFfcG9saWN5IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTZweCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgIH1cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNnB4KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm9uZV9saW5lX2NvbCA+IGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubGFuZGluZy1wYWdlcy1tdnAge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBmb250LWZhbWlseTogXCJMZXhlbmRcIiwgc2Fucy1zZXJpZjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoNSxcbiAgICBoNCxcbiAgICBoMyxcbiAgICBoMixcbiAgICBoMSxcbiAgICBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiTGV4ZW5kXCIsIHNhbnMtc2VyaWY7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMXJlbTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDE2cHgpIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDE1NDBweCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCBkb3duKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCA1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfXzEge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSg0MHB4KSAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2xlZnQge1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgzNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3AgZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIycHgpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAzREY1O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmX19pbW1lcnNpdmUtdG91cmlzbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNFQjMzMzM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3MHZ3O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fcmlnaHQge1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMHB4KSAwIDAgMDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJnAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oNjRweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgLy8gbWF4LXdpZHRoOiA4NSU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sb2dve1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSgxODBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjN2dztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXZ3O1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oODBweCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wLXh4bCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjRweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDMycHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oNDBweCkgMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTJweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZXJvX3dyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTIlO1xuICAgICAgICAgICAgdG9wOiA3MSU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICB0b3A6IDM1JTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19iaWtlLWRlbGl2ZXJ5e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNyU7XG4gICAgICAgICAgICAgICAgdG9wOiAgNjklO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDM1JTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19pbW1lcnNpdmUtdG91cmlzbXtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNyU7XG4gICAgICAgICAgICAgICAgdG9wOiAgNzMlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUgZG93bikge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDQyJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudF93cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQwcHgpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5iYWNrZ3JvdW5kLWdyYWRpZW50LWJ1dHRvbiB7XG4gICAgICAgIC8qIHdhcm5pbmc6IGdyYWRpZW50IHVzZXMgYSByb3RhdGlvbiB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgQ1NTIGFuZCBtYXkgbm90IGJlaGF2ZSBhcyBleHBlY3RlZCAqL1xuICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoMTE4LjEyJSAxNjYuMzglIGF0IDE2LjglIDY2Ljg5JSwgIzAwM2RmNSAxMy43JSwgIzcyOTFlYyA2Ny43MSUsICM3MmU1ZWMgMTAwJSk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAmX19pbW1lcnNpdmUtdG91cmlzbXtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MS41ZGVnLCAjRUIzMzMzIDUuMjklLCAjRjM1RTVFIDUzLjk1JSwgI0Y1NTk3RiA5NS4zMSUpO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbSgxODAwcHgpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC5tb2JpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlIGRvd24pIHtcbiAgICAgICAgICAgICAgICAubW9iaWxlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZGVza3RvcCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaG9yaXpvbnRhbC1pbWcge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICYubGFuZGluZy1wYWdlcy1tdnBfX2NvbnRhY3QtZm9ybSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTYwLCAxNTEsIDIxNywgMC4xKTtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSBkb3duKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oODBweCkgMCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFjdF9mb3JtX3dyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMnB4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmZvcm0taGVhZGluZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQ4cHgpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4NXZ3O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDEyMzBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il19 */
