@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */ }

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

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

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

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

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

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

/**
     * Add the correct display in IE.
     */
main {
  display: block; }

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

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

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0; }

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

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

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

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

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

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

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

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

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

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

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

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

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

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

/**
     * Show the overflow in IE.
     */
button {
  overflow: visible; }

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

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

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */ }
  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; }

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible; }

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

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

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */ }
  [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none; }

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

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

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

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

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

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

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

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block; }

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

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

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

.foundation-mq {
  font-family: "small=0em&medium=48em&large=64em&xlarge=75em&xxlarge=90em"; }

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

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

body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, 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 {
  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; }
  [data-whatinput='mouse'] button {
    outline: 0; }

pre {
  overflow: auto; }

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

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

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto; }
  .row::before, .row::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .row::after {
    clear: both; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 48em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.gutter-small > .column, .row.gutter-small > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem; }
  .row.gutter-medium > .column, .row.gutter-medium > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }

.column, .columns {
  width: 100%;
  float: left;
  padding-right: 0.625rem;
  padding-left: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .column, .columns {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {
    float: right; }
  .column.end:last-child:last-child, .end.columns:last-child:last-child {
    float: left; }

.column.row.row, .row.row.columns {
  float: none; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.small-1 {
  width: 8.33333%; }

.small-push-1 {
  position: relative;
  left: 8.33333%; }

.small-pull-1 {
  position: relative;
  left: -8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  width: 16.66667%; }

.small-push-2 {
  position: relative;
  left: 16.66667%; }

.small-pull-2 {
  position: relative;
  left: -16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  width: 25%; }

.small-push-3 {
  position: relative;
  left: 25%; }

.small-pull-3 {
  position: relative;
  left: -25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  width: 33.33333%; }

.small-push-4 {
  position: relative;
  left: 33.33333%; }

.small-pull-4 {
  position: relative;
  left: -33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  width: 41.66667%; }

.small-push-5 {
  position: relative;
  left: 41.66667%; }

.small-pull-5 {
  position: relative;
  left: -41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  width: 50%; }

.small-push-6 {
  position: relative;
  left: 50%; }

.small-pull-6 {
  position: relative;
  left: -50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  width: 58.33333%; }

.small-push-7 {
  position: relative;
  left: 58.33333%; }

.small-pull-7 {
  position: relative;
  left: -58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  width: 66.66667%; }

.small-push-8 {
  position: relative;
  left: 66.66667%; }

.small-pull-8 {
  position: relative;
  left: -66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  width: 75%; }

.small-push-9 {
  position: relative;
  left: 75%; }

.small-pull-9 {
  position: relative;
  left: -75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  width: 83.33333%; }

.small-push-10 {
  position: relative;
  left: 83.33333%; }

.small-pull-10 {
  position: relative;
  left: -83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  width: 91.66667%; }

.small-push-11 {
  position: relative;
  left: 91.66667%; }

.small-pull-11 {
  position: relative;
  left: -91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-up-1 > .column, .small-up-1 > .columns {
  float: left;
  width: 100%; }
  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {
    clear: both; }
  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {
    float: left; }

.small-up-2 > .column, .small-up-2 > .columns {
  float: left;
  width: 50%; }
  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {
    clear: both; }
  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {
    float: left; }

.small-up-3 > .column, .small-up-3 > .columns {
  float: left;
  width: 33.33333%; }
  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
    clear: both; }
  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {
    float: left; }

.small-up-4 > .column, .small-up-4 > .columns {
  float: left;
  width: 25%; }
  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {
    clear: both; }
  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {
    float: left; }

.small-up-5 > .column, .small-up-5 > .columns {
  float: left;
  width: 20%; }
  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {
    clear: both; }
  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {
    float: left; }

.small-up-6 > .column, .small-up-6 > .columns {
  float: left;
  width: 16.66667%; }
  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
    clear: both; }
  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {
    float: left; }

.small-up-7 > .column, .small-up-7 > .columns {
  float: left;
  width: 14.28571%; }
  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
    clear: both; }
  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {
    float: left; }

.small-up-8 > .column, .small-up-8 > .columns {
  float: left;
  width: 12.5%; }
  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {
    clear: none; }
  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {
    clear: both; }
  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {
    float: left; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-collapse .row {
  margin-right: 0;
  margin-left: 0; }

.expanded.row .small-collapse.row {
  margin-right: 0;
  margin-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }

.small-centered {
  margin-right: auto;
  margin-left: auto; }
  .small-centered, .small-centered:last-child:not(:first-child) {
    float: none;
    clear: both; }

.small-uncentered,
.small-push-0,
.small-pull-0 {
  position: static;
  float: left;
  margin-right: 0;
  margin-left: 0; }

@media print, screen and (min-width: 48em) {
  .medium-1 {
    width: 8.33333%; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%; }
  .medium-pull-1 {
    position: relative;
    left: -8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%; }
  .medium-pull-2 {
    position: relative;
    left: -16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    width: 25%; }
  .medium-push-3 {
    position: relative;
    left: 25%; }
  .medium-pull-3 {
    position: relative;
    left: -25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%; }
  .medium-pull-4 {
    position: relative;
    left: -33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%; }
  .medium-pull-5 {
    position: relative;
    left: -41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    width: 50%; }
  .medium-push-6 {
    position: relative;
    left: 50%; }
  .medium-pull-6 {
    position: relative;
    left: -50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%; }
  .medium-pull-7 {
    position: relative;
    left: -58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%; }
  .medium-pull-8 {
    position: relative;
    left: -66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    width: 75%; }
  .medium-push-9 {
    position: relative;
    left: 75%; }
  .medium-pull-9 {
    position: relative;
    left: -75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%; }
  .medium-pull-10 {
    position: relative;
    left: -83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%; }
  .medium-pull-11 {
    position: relative;
    left: -91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    float: left;
    width: 100%; }
    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {
      float: left; }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    float: left;
    width: 50%; }
    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {
      float: left; }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {
      float: left; }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    float: left;
    width: 25%; }
    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {
      float: left; }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    float: left;
    width: 20%; }
    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {
      float: left; }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {
      float: left; }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {
      float: left; }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {
      float: left; }
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .medium-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .medium-centered {
    margin-right: auto;
    margin-left: auto; }
    .medium-centered, .medium-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .medium-uncentered,
  .medium-push-0,
  .medium-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-1 {
    width: 8.33333%; }
  .large-push-1 {
    position: relative;
    left: 8.33333%; }
  .large-pull-1 {
    position: relative;
    left: -8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    width: 16.66667%; }
  .large-push-2 {
    position: relative;
    left: 16.66667%; }
  .large-pull-2 {
    position: relative;
    left: -16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    width: 25%; }
  .large-push-3 {
    position: relative;
    left: 25%; }
  .large-pull-3 {
    position: relative;
    left: -25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    width: 33.33333%; }
  .large-push-4 {
    position: relative;
    left: 33.33333%; }
  .large-pull-4 {
    position: relative;
    left: -33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    width: 41.66667%; }
  .large-push-5 {
    position: relative;
    left: 41.66667%; }
  .large-pull-5 {
    position: relative;
    left: -41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    width: 50%; }
  .large-push-6 {
    position: relative;
    left: 50%; }
  .large-pull-6 {
    position: relative;
    left: -50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    width: 58.33333%; }
  .large-push-7 {
    position: relative;
    left: 58.33333%; }
  .large-pull-7 {
    position: relative;
    left: -58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    width: 66.66667%; }
  .large-push-8 {
    position: relative;
    left: 66.66667%; }
  .large-pull-8 {
    position: relative;
    left: -66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    width: 75%; }
  .large-push-9 {
    position: relative;
    left: 75%; }
  .large-pull-9 {
    position: relative;
    left: -75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    width: 83.33333%; }
  .large-push-10 {
    position: relative;
    left: 83.33333%; }
  .large-pull-10 {
    position: relative;
    left: -83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    width: 91.66667%; }
  .large-push-11 {
    position: relative;
    left: 91.66667%; }
  .large-pull-11 {
    position: relative;
    left: -91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-up-1 > .column, .large-up-1 > .columns {
    float: left;
    width: 100%; }
    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {
      clear: both; }
    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {
      float: left; }
  .large-up-2 > .column, .large-up-2 > .columns {
    float: left;
    width: 50%; }
    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {
      clear: both; }
    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {
      float: left; }
  .large-up-3 > .column, .large-up-3 > .columns {
    float: left;
    width: 33.33333%; }
    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
      clear: both; }
    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {
      float: left; }
  .large-up-4 > .column, .large-up-4 > .columns {
    float: left;
    width: 25%; }
    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {
      clear: both; }
    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {
      float: left; }
  .large-up-5 > .column, .large-up-5 > .columns {
    float: left;
    width: 20%; }
    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {
      clear: both; }
    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {
      float: left; }
  .large-up-6 > .column, .large-up-6 > .columns {
    float: left;
    width: 16.66667%; }
    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
      clear: both; }
    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {
      float: left; }
  .large-up-7 > .column, .large-up-7 > .columns {
    float: left;
    width: 14.28571%; }
    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
      clear: both; }
    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {
      float: left; }
  .large-up-8 > .column, .large-up-8 > .columns {
    float: left;
    width: 12.5%; }
    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {
      clear: none; }
    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {
      clear: both; }
    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {
      float: left; }
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-collapse .row {
    margin-right: 0;
    margin-left: 0; }
  .expanded.row .large-collapse.row {
    margin-right: 0;
    margin-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .large-centered {
    margin-right: auto;
    margin-left: auto; }
    .large-centered, .large-centered:last-child:not(:first-child) {
      float: none;
      clear: both; }
  .large-uncentered,
  .large-push-0,
  .large-pull-0 {
    position: static;
    float: left;
    margin-right: 0;
    margin-left: 0; } }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .column-block {
      margin-bottom: 1.875rem; }
      .column-block > :last-child {
        margin-bottom: 0; } }

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: bold;
  line-height: inherit; }

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

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    line-height: 0;
    color: #cacaca; }

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

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

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

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

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

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

@media print, screen and (min-width: 48em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4 {
    font-size: 1.5625rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1468a0; }
  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, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

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

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

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: "— "; }

abbr {
  border-bottom: 1px dotted #0a0a0a;
  color: #0a0a0a;
  cursor: help; }

figure {
  margin: 0; }

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  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; }

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

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 48em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: black !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; } }

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #1779ba;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #14679e;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-right: 0;
    margin-left: 0; }
  .button.primary {
    background-color: #1779ba;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #126195;
      color: #fefefe; }
  .button.secondary {
    background-color: #767676;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button.warning {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button.alert {
    background-color: #cc4b37;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button.hollow {
    border: 1px solid #1779ba;
    color: #1779ba; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #0c3d5d;
      color: #0c3d5d; }
    .button.hollow.primary {
      border: 1px solid #1779ba;
      color: #1779ba; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #0c3d5d;
        color: #0c3d5d; }
    .button.hollow.secondary {
      border: 1px solid #767676;
      color: #767676; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3b3b3b;
        color: #3b3b3b; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert {
      border: 1px solid #cc4b37;
      color: #cc4b37; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #67251a;
        color: #67251a; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
      background-color: #1779ba;
      color: #fefefe; }
    .button.disabled.primary, .button[disabled].primary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
        background-color: #1779ba;
        color: #fefefe; }
    .button.disabled.secondary, .button[disabled].secondary {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #767676;
        color: #fefefe; }
    .button.disabled.success, .button[disabled].success {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #3adb76;
        color: #0a0a0a; }
    .button.disabled.warning, .button[disabled].warning {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffae00;
        color: #0a0a0a; }
    .button.disabled.alert, .button[disabled].alert {
      opacity: 0.25;
      cursor: not-allowed; }
      .button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cc4b37;
        color: #fefefe; }
  .button.dropdown::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #fefefe transparent transparent;
    position: relative;
    top: 0.4em;
    display: inline-block;
    float: right;
    margin-left: 1em; }
  .button.dropdown.hollow::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.primary::after {
    border-top-color: #1779ba; }
  .button.dropdown.hollow.secondary::after {
    border-top-color: #767676; }
  .button.dropdown.hollow.success::after {
    border-top-color: #3adb76; }
  .button.dropdown.hollow.warning::after {
    border-top-color: #ffae00; }
  .button.dropdown.hollow.alert::after {
    border-top-color: #cc4b37; }
  .button.arrow-only::after {
    top: -0.1em;
    float: none;
    margin-left: 0; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  color: #0a0a0a;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca; }

input::placeholder,
textarea::placeholder {
  color: #cacaca; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: not-allowed; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

.input-group {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e6e6e6;
  color: #0a0a0a;
  text-align: center;
  white-space: nowrap;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: 2.5rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

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

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem;
    background: #fefefe; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  color: #0a0a0a;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }
  select:disabled {
    background-color: #e6e6e6;
    cursor: not-allowed; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  border-color: #cc4b37;
  background-color: #f9ecea; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #cc4b37; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #cc4b37; }

.is-invalid-label {
  color: #cc4b37; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #cc4b37; }
  .form-error.is-visible {
    display: block; }

.accordion {
  margin-left: 0;
  background: #fefefe;
  list-style-type: none; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: #1779ba; }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #e6e6e6;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #0a0a0a; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.is-accordion-submenu-parent > a {
  position: relative; }
  .is-accordion-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #1779ba;
  color: #fefefe; }
  .badge.primary {
    background: #1779ba;
    color: #fefefe; }
  .badge.secondary {
    background: #767676;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #0a0a0a; }
  .badge.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .badge.alert {
    background: #cc4b37;
    color: #fefefe; }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #0a0a0a;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      top: 1px;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #cacaca; }
  .breadcrumbs a {
    color: #1779ba; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #cacaca;
    cursor: not-allowed; }

.button-group {
  margin-bottom: 1rem;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .button-group::before, .button-group::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded .button {
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button {
    background-color: #1779ba;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #126195;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #767676;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #5e5e5e;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #0a0a0a; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #0a0a0a; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #0a0a0a; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #0a0a0a; }
  .button-group.alert .button {
    background-color: #cc4b37;
    color: #fefefe; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #a53b2a;
      color: #fefefe; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
        margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .button-group.stacked-for-small .button {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media screen and (max-width: 47.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  background-color: white;
  color: #0a0a0a; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #d7ecfa;
    color: #0a0a0a; }
  .callout.secondary {
    background-color: #eaeaea;
    color: #0a0a0a; }
  .callout.success {
    background-color: #e1faea;
    color: #0a0a0a; }
  .callout.warning {
    background-color: #fff3d9;
    color: #0a0a0a; }
  .callout.alert {
    background-color: #f7e4e1;
    color: #0a0a0a; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.card {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 1rem;
  border: 1px solid #e6e6e6;
  border-radius: 0;
  background: #fefefe;
  box-shadow: none;
  overflow: hidden;
  color: #0a0a0a; }
  .card > :last-child {
    margin-bottom: 0; }

.card-divider {
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  padding: 1rem;
  background: #e6e6e6; }
  .card-divider > :last-child {
    margin-bottom: 0; }

.card-section {
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  padding: 1rem; }
  .card-section > :last-child {
    margin-bottom: 0; }

.close-button {
  position: absolute;
  color: #8a8a8a;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }
  .close-button.small {
    right: 0.66rem;
    top: 0.33em;
    font-size: 1.5em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1rem;
    top: 0.5rem;
    font-size: 2em;
    line-height: 1; }

.menu {
  margin: 0;
  list-style-type: none;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%; }
  .menu > li {
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu > li > a {
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu > li > a img,
    .menu > li > a i,
    .menu > li > a svg {
      margin-right: 0.25rem; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap; }
    .menu > li, .menu.horizontal > li {
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; }
  .menu.expanded > li {
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.expanded > li:first-child:last-child {
    width: 100%; }
  .menu.vertical {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .menu.vertical > li {
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
    .menu.vertical > li > a {
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-align-items: flex-start;
          -ms-flex-align: start;
              align-items: flex-start; }
  @media print, screen and (min-width: 48em) {
    .menu.medium-horizontal {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
      .menu.medium-horizontal > li {
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto; }
    .menu.medium-expanded > li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-expanded > li:first-child:last-child {
      width: 100%; }
    .menu.medium-vertical {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .menu.medium-vertical > li {
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; }
      .menu.medium-vertical > li > a {
        -webkit-justify-content: flex-start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-align-items: flex-start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
      .menu.large-horizontal > li {
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto; }
    .menu.large-expanded > li {
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-expanded > li:first-child:last-child {
      width: 100%; }
    .menu.large-vertical {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .menu.large-vertical > li {
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; }
      .menu.large-vertical > li > a {
        -webkit-justify-content: flex-start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-align-items: flex-start;
            -ms-flex-align: start;
                align-items: flex-start; } }
  .menu.simple li {
    display: inline-block;
    vertical-align: top;
    line-height: 1; }
  .menu.simple a {
    padding: 0; }
  .menu.simple li {
    margin-left: 0;
    margin-right: 1rem; }
  .menu.simple.align-right li {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.align-right {
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .menu.icon-top > li > a {
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i,
    .menu.icon-top > li > a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
                  -ms-grid-row-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-top.vertical a > span {
    margin: auto; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu.menu-bordered li {
    border: 1px solid #e6e6e6; }
    .menu.menu-bordered li:not(:first-child) {
      border-top: 0; }
  .menu.menu-hover li:hover {
    background-color: #e6e6e6; }

.menu-text {
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    transition: height 0.5s; }

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }

.drilldown-submenu-cover-previous {
  min-height: 100%; }

.is-drilldown-submenu-parent > a {
  position: relative; }
  .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: block;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-size: 1rem; }
  .dropdown-pane.is-open {
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 48em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #1779ba;
  color: #fefefe; }
  .label.primary {
    background: #1779ba;
    color: #fefefe; }
  .label.secondary {
    background: #767676;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #0a0a0a; }
  .label.warning {
    background: #ffae00;
    color: #0a0a0a; }
  .label.alert {
    background: #cc4b37;
    color: #fefefe; }

.media-object {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 47.9375em) {
    .media-object.stack-for-small {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; } }
  @media screen and (max-width: 47.9375em) {
    .media-object.stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      -webkit-flex-basis: 100%;
          -ms-flex-preferred-size: 100%;
              flex-basis: 100%;
      max-width: 100%; }
      .media-object.stack-for-small .media-object-section img {
        width: 100%; } }

.media-object-section {
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  .media-object-section.main-section {
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  width: 250px;
  height: 100%;
  -webkit-transform: translateX(-250px);
      -ms-transform: translateX(-250px);
          transform: translateX(-250px);
  overflow-y: auto; }
  .position-left.is-open ~ .off-canvas-content {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
  .position-left.is-transition-push::after {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 1px;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-left.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-right {
  top: 0;
  right: 0;
  width: 250px;
  height: 100%;
  -webkit-transform: translateX(250px);
      -ms-transform: translateX(250px);
          transform: translateX(250px);
  overflow-y: auto; }
  .position-right.is-open ~ .off-canvas-content {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
  .position-right.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 1px;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-right.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  height: 250px;
  -webkit-transform: translateY(-250px);
      -ms-transform: translateY(-250px);
          transform: translateY(-250px);
  overflow-x: auto; }
  .position-top.is-open ~ .off-canvas-content {
    -webkit-transform: translateY(250px);
        -ms-transform: translateY(250px);
            transform: translateY(250px); }
  .position-top.is-transition-push::after {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-top.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 250px;
  -webkit-transform: translateY(250px);
      -ms-transform: translateY(250px);
          transform: translateY(250px);
  overflow-x: auto; }
  .position-bottom.is-open ~ .off-canvas-content {
    -webkit-transform: translateY(-250px);
        -ms-transform: translateY(-250px);
            transform: translateY(-250px); }
  .position-bottom.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 1px;
    width: 100%;
    box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
    content: " "; }
  .position-bottom.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.off-canvas-content {
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

@media print, screen and (min-width: 48em) {
  .position-left.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(10, 10, 10, 0.5);
  color: #fefefe; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #cacaca; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 48em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #0a0a0a; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #1779ba;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #cacaca; }
  .progress.primary .progress-meter {
    background-color: #1779ba; }
  .progress.secondary .progress-meter {
    background-color: #767676; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #cc4b37; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #1779ba; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #1779ba;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #14679e; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
      -ms-transform: scale(1, -1);
          transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

body.is-reveal-open {
  overflow: hidden; }

html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  position: fixed;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: scroll; }

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal .reveal {
      right: auto;
      left: auto;
      margin: 0 auto; } }
  .reveal.collapse {
    padding: 0; }
  @media print, screen and (min-width: 48em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media print, screen and (min-width: 48em) {
    .reveal.large {
      width: 90%;
      max-width: 75rem; } }
  .reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 47.9375em) {
    .reveal {
      top: 0;
      left: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      height: 100vh;
      min-height: 100vh;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #fefefe;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #cacaca;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #fefefe;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #1779ba; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  table caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  table thead {
    background: #f8f8f8;
    color: #0a0a0a; }
  table tfoot {
    background: #f1f1f1;
    color: #0a0a0a; }
  table thead tr,
  table tfoot tr {
    background: transparent; }
  table thead th,
  table thead td,
  table tfoot th,
  table tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  table tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f1f1f1; }
  table.unstriped tbody {
    background-color: #fefefe; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f1f1f1;
      background-color: #fefefe; }

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f3f3f3; }

table.hover tfoot tr:hover {
  background-color: #ececec; }

table.hover tbody tr:hover {
  background-color: #f9f9f9; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }
  .table-scroll table {
    width: auto; }

.tabs {
  margin: 0;
  border: 1px solid #e6e6e6;
  background: #fefefe;
  list-style-type: none; }
  .tabs::before, .tabs::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  display: block;
  float: none;
  width: auto; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #1779ba; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #1673b1; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    font-size: 0.75rem;
    line-height: 1;
    color: #1779ba; }
    .tabs-title > a:hover {
      background: #fefefe;
      color: #1468a0; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #e6e6e6;
      color: #1779ba; }

.tabs-content {
  border: 1px solid #e6e6e6;
  border-top: 0;
  background: #fefefe;
  color: #0a0a0a;
  transition: all 0.5s ease; }

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel[aria-hidden="false"] {
    display: block; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #fefefe;
  border-radius: 0;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  line-height: 0; }

a.thumbnail {
  transition: box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }
  a.thumbnail image {
    box-shadow: none; }

.title-bar {
  padding: 0.5rem;
  background: #0a0a0a;
  color: #fefefe;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left,
.title-bar-right {
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; }

.title-bar-right {
  text-align: right; }

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #0a0a0a;
  font-size: 80%;
  color: #fefefe; }
  .tooltip::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #0a0a0a;
    position: absolute;
    bottom: 100%;
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #0a0a0a transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #0a0a0a;
    top: 50%;
    bottom: auto;
    left: 100%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #0a0a0a transparent transparent;
    top: 50%;
    right: 100%;
    bottom: auto;
    left: auto;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.top-bar {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #e6e6e6; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  @media print, screen and (min-width: 48em) {
    .top-bar {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
      .top-bar .top-bar-left {
        -webkit-flex: 1 1 auto;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto; }
      .top-bar .top-bar-right {
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto; } }
  @media screen and (max-width: 63.9375em) {
    .top-bar.stacked-for-medium {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }

.top-bar-title {
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0.5rem 1rem 0.5rem 0; }

.top-bar-left,
.top-bar-right {
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 47.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 48em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 48em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 47.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 48em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 47.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -webkit-flex-basis: 0;
      -ms-flex-preferred-size: 0;
          flex-basis: 0;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.clearfix::after {
  clear: both; }

.slide-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.slide-out-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.slide-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.slide-out-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

.fade-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 0;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 1;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  transition-duration: 750ms !important; }

.fast {
  transition-duration: 250ms !important; }

.linear {
  transition-timing-function: linear !important; }

.ease {
  transition-timing-function: ease !important; }

.ease-in {
  transition-timing-function: ease-in !important; }

.ease-out {
  transition-timing-function: ease-out !important; }

.ease-in-out {
  transition-timing-function: ease-in-out !important; }

.bounce-in {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  transition-delay: 300ms !important; }

.long-delay {
  transition-delay: 700ms !important; }

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7; }

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms; }

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; }

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important; }

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important; }

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important; }

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important; }

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important; }

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important; }

body {
  background: #fff;
  position: relative;
  z-index: 1;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
  width: 100vw;
  max-width: 100%; }
  body.menu-expanded .mobile-menu {
    left: 0;
    width: 100%; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* Slider */
.slick-loading .slick-list {
  background: #fff url("./../img/ajax-loader.gif") no-repeat center center; }

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

.slick-prev,
.slick-next {
  position: absolute;
  display: none;
  height: 1.75rem;
  width: 1.75rem;
  border-radius: 100%;
  line-height: 1.75rem;
  font-size: 1.875rem;
  cursor: pointer;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
  text-align: center; }
  @media print, screen and (min-width: 64em) {
    .slick-prev,
    .slick-next {
      display: block; } }

.slick-prev {
  left: 0.9375rem; }
  @media print, screen and (min-width: 48em) {
    .slick-prev {
      left: -1.25rem; } }
  @media print, screen and (min-width: 64em) {
    .slick-prev {
      left: -2.5rem; } }
  .slick-prev:before {
    content: "\ea12";
    font-family: 'sps';
    color: #fff; }

.slick-next {
  right: 0.9375rem; }
  @media print, screen and (min-width: 48em) {
    .slick-next {
      right: -1.25rem; } }
  @media print, screen and (min-width: 64em) {
    .slick-next {
      right: -2.5rem; } }
  .slick-next:before {
    content: "\ea11";
    font-family: 'sps';
    color: #fff; }

/* Dots */
.slick-dotted.slick-slider {
  margin-bottom: 30px; }

.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
  display: block; }
  @media print, screen and (min-width: 64em) {
    .slick-dots {
      display: none; } }
  .slick-dots li {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    margin: 0 2px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      border: 0;
      background: transparent;
      display: block;
      height: 20px;
      width: 20px;
      outline: none;
      line-height: 0px;
      font-size: 0px;
      color: transparent;
      padding: 5px;
      cursor: pointer; }
      .slick-dots li button:hover, .slick-dots li button:focus {
        outline: none; }
        .slick-dots li button:hover:before, .slick-dots li button:focus:before {
          opacity: 1; }
      .slick-dots li button:before {
        position: absolute;
        top: 0;
        left: 0;
        content: "•";
        width: 20px;
        height: 20px;
        font-family: "slick";
        font-size: 1.75rem;
        line-height: 20px;
        text-align: center;
        color: white;
        opacity: 0.25;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .slick-dots li.slick-active button:before {
      color: white;
      opacity: 0.75; }

@font-face {
  font-family: 'GothamBlack';
  src: url("../fonts/GothamBlack.eot");
  src: url("../fonts/GothamBlack.eot") format("embedded-opentype"), url("../fonts/GothamBlack.woff2") format("woff2"), url("../fonts/GothamBlack.woff") format("woff"), url("../fonts/GothamBlack.ttf") format("truetype"), url("../fonts/GothamBlack.svg#GothamBlack") format("svg"); }

@font-face {
  font-family: 'GothamBook';
  src: url("../fonts/GothamBook.eot");
  src: url("../fonts/GothamBook.eot") format("embedded-opentype"), url("../fonts/GothamBook.woff2") format("woff2"), url("../fonts/GothamBook.woff") format("woff"), url("../fonts/GothamBook.ttf") format("truetype"), url("../fonts/GothamBook.svg#GothamBook") format("svg"); }

@font-face {
  font-family: 'IFCINSANERODEOBOLDBOLD';
  src: url("../fonts/IFCINSANERODEOBOLDBOLD.eot");
  src: url("../fonts/IFCINSANERODEOBOLDBOLD.eot") format("embedded-opentype"), url("../fonts/IFCINSANERODEOBOLDBOLD.woff2") format("woff2"), url("../fonts/IFCINSANERODEOBOLDBOLD.woff") format("woff"), url("../fonts/IFCINSANERODEOBOLDBOLD.ttf") format("truetype"), url("../fonts/IFCINSANERODEOBOLDBOLD.svg#IFCINSANERODEOBOLDBOLD") format("svg"); }

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

/*------------------------
	base class definition
-------------------------*/
.icon {
  display: inline-block;
  font: normal normal normal 1em/1 'sps';
  speak: none;
  text-transform: none;
  /* Better Font Rendering */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/*------------------------
  change icon size
-------------------------*/
/* relative units */
.icon-sm {
  font-size: 0.8em; }

.icon-lg {
  font-size: 1.2em; }

/* absolute units */
.icon-16 {
  font-size: 16px; }

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

/*----------------------------------
  add a square/circle background
-----------------------------------*/
.icon-bg-square,
.icon-bg-circle {
  padding: 0.35em;
  background-color: #eee; }

.icon-bg-circle {
  border-radius: 50%; }

/*------------------------------------
  use icons as list item markers
-------------------------------------*/
.icon-ul {
  padding-left: 0;
  list-style-type: none; }

.icon-ul > li {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  line-height: 1.4; }

.icon-ul > li > .icon {
  margin-right: 0.4em;
  line-height: inherit; }

/*------------------------
  spinning icons
-------------------------*/
.icon-is-spinning {
  -webkit-animation: icon-spin 2s infinite linear;
  animation: icon-spin 2s infinite linear; }

@-webkit-keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg); } }

@keyframes icon-spin {
  0% {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

/*------------------------
  rotated/flipped icons
-------------------------*/
.icon-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg); }

.icon-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg); }

.icon-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg); }

.icon-flip-y {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1); }

.icon-flip-x {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1); }

/*------------------------
	icons
-------------------------*/
.icon-linkedin::before {
  content: "\ea06"; }

.icon-instagram::before {
  content: "\ea07"; }

.icon-facebook::before {
  content: "\ea08"; }

.icon-twitter::before {
  content: "\ea09"; }

.icon-down-arrow::before {
  content: "\ea0a"; }

.icon-left-arrow::before {
  content: "\ea0b"; }

.icon-right-arrow::before {
  content: "\ea0c"; }

.icon-up-arrow::before {
  content: "\ea0d"; }

.icon-zoom::before {
  content: "\ea0e"; }

.icon-right-arrow-2-2::before {
  content: "\ea11"; }

.icon-left-arrow-2-2::before {
  content: "\ea12"; }

.icon-logo-linkedin::before {
  content: "\ea13"; }

.icon-mouse-animated::before {
  content: "\ea14"; }

.icon-pin-3::before {
  content: "\ea15"; }

.icon-small-up::before {
  content: "\ea16"; }

.icon-small-down::before {
  content: "\ea17"; }

.icon-calendar::before {
  content: "\ea18"; }

.icon-close::before {
  content: "\ea19"; }

.icon-hamburger::before {
  content: "\ea1a"; }

.icon-bedroom::before {
  content: "\ea1b"; }

.icon-coffee::before {
  content: "\ea1c"; }

.icon-standing-man::before {
  content: "\ea1d"; }

.icon-eye::before {
  content: "\ea1e"; }

.icon-zoom-100::before {
  content: "\ea1f"; }

.icon-tag::before {
  content: "\ea20"; }

.alignfull {
  margin-left: calc( -100vw / 2 + 100% / 2);
  margin-right: calc( -100vw / 2 + 100% / 2);
  max-width: 100vw; }

body .mphb-calendar .mphb-datepicker-dark-green.datepick {
  background: #fefefe; }
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-nav {
    background: #52B967; }
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-nav a {
      color: #fefefe; }
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-nav a:hover,
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-nav a.datepick-disabled:hover {
      color: #52B967;
      background: #fefefe; }
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month {
    border-color: #ccc; }
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month-header,
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month-header select {
    background: #fefefe;
    color: #52B967; }
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month th {
    color: #52B967;
    background: #fefefe; }
  body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month td {
    background: #fefefe; }
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month td .mphb-past-date,
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month td .mphb-not-available-date {
      background: #fefefe; }
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month td .datepick-other-month {
      background: #ddd; }
    body .mphb-calendar .mphb-datepicker-dark-green.datepick .datepick-month td .mphb-available-date {
      color: #fefefe;
      background: #52B967; }

.header {
  background: #131213; }
  .header .header-content {
    position: relative;
    z-index: 999; }
    .header .header-content .header-top {
      height: 6.25rem;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      transition: all 0.3s;
      z-index: 9999; }
      .header .header-content .header-top.sticky-header {
        background: #131213; }
      .header .header-content .header-top .logo {
        margin-top: 1.5625rem; }
        .header .header-content .header-top .logo a img {
          height: 2.25rem; }
      .header .header-content .header-top .main-menu {
        float: right;
        margin-top: 2.5rem; }
        .header .header-content .header-top .main-menu > ul > li {
          position: relative; }
          .header .header-content .header-top .main-menu > ul > li > a {
            font-family: 'GothamBlack';
            font-size: 0.875rem;
            line-height: 0.9375rem;
            padding: 0 0.9375rem 0.3125rem 0.9375rem;
            text-transform: uppercase;
            color: #ffffff;
            display: block; }
            .header .header-content .header-top .main-menu > ul > li > a:after {
              content: '';
              display: block;
              width: 0;
              height: 2px;
              background: #ffffff;
              margin-top: 0.1875rem;
              transition: width .3s; }
            .header .header-content .header-top .main-menu > ul > li > a:hover {
              color: #eeeeee; }
              .header .header-content .header-top .main-menu > ul > li > a:hover:after {
                width: 100%; }
          .header .header-content .header-top .main-menu > ul > li.current-menu-item > a {
            color: #ffffff; }
            .header .header-content .header-top .main-menu > ul > li.current-menu-item > a:after {
              width: 100%; }
          .header .header-content .header-top .main-menu > ul > li .dropdown {
            display: none;
            position: absolute;
            top: 1.25rem;
            z-index: 99;
            margin: 0;
            list-style: none;
            background: #131213;
            width: auto;
            min-width: 10rem;
            padding: 0.9375rem 0; }
            .header .header-content .header-top .main-menu > ul > li .dropdown li a {
              color: #ffffff;
              font-family: 'GothamBlack';
              font-size: 0.75rem;
              line-height: 0.9375rem;
              padding: 0.625rem 1.25rem;
              display: block;
              border-left: 0.3125rem solid transparent;
              text-transform: uppercase; }
              .header .header-content .header-top .main-menu > ul > li .dropdown li a:hover {
                color: #eee;
                border-color: #6DA234; }
          .header .header-content .header-top .main-menu > ul > li:hover .dropdown {
            display: block; }
          .header .header-content .header-top .main-menu > ul > li.menu-item-has-children > a {
            margin-right: 0.4375rem; }
            .header .header-content .header-top .main-menu > ul > li.menu-item-has-children > a:after {
              background: none; }
            .header .header-content .header-top .main-menu > ul > li.menu-item-has-children > a:before {
              content: "\ea0a";
              font-family: 'sps';
              position: absolute;
              right: 0.25rem;
              top: 0;
              font-size: 0.75rem;
              transition: all 0.3s;
              color: #fff; }
          .header .header-content .header-top .main-menu > ul > li.book-button a {
            height: 2.25rem;
            line-height: 2rem;
            background: #52B967;
            margin-top: -0.5rem;
            border-radius: 0.3125rem;
            margin-left: 1.5625rem;
            border: 0.125rem solid transparent;
            transition: all 0.3s; }
            .header .header-content .header-top .main-menu > ul > li.book-button a:after {
              background: none; }
            .header .header-content .header-top .main-menu > ul > li.book-button a:hover {
              border-color: #fff;
              background: none; }
  .header .search-form {
    padding: 7.5rem 0.625rem 0 0.625rem;
    position: relative;
    z-index: 9; }
    @media print, screen and (min-width: 64em) {
      .header .search-form {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        padding: 0; } }
    .header .search-form .form-details {
      margin-bottom: 2.5rem; }
      .header .search-form .form-details h3 {
        color: #fff;
        text-align: center;
        font-family: 'GothamBlack';
        font-size: 1.5rem;
        line-height: 2.1875rem;
        text-transform: uppercase; }
        @media print, screen and (min-width: 64em) {
          .header .search-form .form-details h3 {
            font-size: 2rem;
            line-height: 2.8125rem; } }
      .header .search-form .form-details p {
        color: #fff;
        text-align: center;
        font-family: 'GothamBook';
        font-size: 1rem;
        line-height: 1.5rem; }
        @media print, screen and (min-width: 64em) {
          .header .search-form .form-details p {
            font-size: 1.25rem;
            line-height: 2.125rem; } }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > label,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > label,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > label {
      color: #fff;
      font-family: 'GothamBlack';
      font-size: 0.875rem;
      line-height: 1.5625rem;
      text-transform: uppercase; }
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > label abbr,
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > label abbr,
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > label abbr {
        color: #fff; }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > input,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > select,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > input,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > select,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > input,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > select {
      border-radius: 0.3125rem;
      border: 0.0625rem solid #707070;
      box-shadow: none; }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > label,
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > label {
      position: relative; }
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-in-date > label:after,
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-check-out-date > label:after {
        content: "\ea18";
        font-family: 'sps';
        position: absolute;
        right: 0.625rem;
        top: 2rem;
        font-size: 0.75rem;
        color: #707070; }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > select {
      background-image: none; }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > label {
      position: relative; }
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-adults > label:after {
        content: "\ea0a";
        font-family: 'sps';
        position: absolute;
        right: 0.625rem;
        top: 2rem;
        font-size: 0.75rem;
        color: #707070; }
    .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-submit-button-wrapper > input {
      background: #52B967;
      color: #fff;
      font-family: 'GothamBlack';
      font-size: 0.875rem;
      text-transform: uppercase;
      border-radius: 0.3125rem;
      border: 0.125rem solid #52B967;
      transition: all 0.3s; }
      .header .search-form .advanced-search .mphb_sc_search-form .mphb_sc_search-submit-button-wrapper > input:hover {
        background: transparent;
        border: 0.125rem solid #fff; }
  .header.landing-header {
    position: relative;
    z-index: 1;
    width: 100vw;
    overflow: hidden;
    min-height: 25rem; }
    @media print, screen and (min-width: 64em) {
      .header.landing-header {
        height: 100vh; } }
    .header.landing-header:after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(0, 0, 0, 0.3);
      z-index: 3; }
    .header.landing-header video {
      position: absolute;
      top: 0;
      left: -0.3125rem;
      right: -0.3125rem;
      bottom: 0;
      z-index: 2;
      object-fit: cover;
      width: 101vw;
      min-height: 25rem;
      height: 25rem; }
      @media print, screen and (min-width: 48em) {
        .header.landing-header video {
          height: 31.25rem; } }
      @media print, screen and (min-width: 64em) {
        .header.landing-header video {
          height: 100vh; } }
    .header.landing-header > img {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
      object-fit: cover;
      min-height: 25rem;
      height: 25rem; }
      @media print, screen and (min-width: 48em) {
        .header.landing-header > img {
          height: 31.25rem; } }

body.not-landing {
  padding-top: 4.375rem; }
  @media print, screen and (min-width: 64em) {
    body.not-landing {
      padding-top: 6.25rem; } }
  body.not-landing .header .header-top {
    background: #131213; }

.mobile-header {
  position: relative; }
  .mobile-header .mobile-header-top {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    right: 0;
    height: 4.375rem;
    transition: all 0.3s;
    background: #131213; }
    .mobile-header .mobile-header-top .logo {
      margin: 0.9375rem 0 0 0.9375rem; }
      .mobile-header .mobile-header-top .logo img {
        height: 1.875rem; }
    .mobile-header .mobile-header-top .menu-btn {
      position: absolute;
      top: 1.5625rem;
      right: 0.9375rem; }
      .mobile-header .mobile-header-top .menu-btn .hamburger {
        width: 1.875rem;
        height: 1.75rem;
        position: relative; }
        .mobile-header .mobile-header-top .menu-btn .hamburger:hover span {
          border-color: #fff; }
        .mobile-header .mobile-header-top .menu-btn .hamburger span {
          border-top: 0.125rem solid #fff;
          display: block;
          opacity: 1;
          position: absolute;
          width: 100%;
          top: 0;
          transition: all .6s ease; }
          .mobile-header .mobile-header-top .menu-btn .hamburger span:first-of-type {
            top: 0; }
          .mobile-header .mobile-header-top .menu-btn .hamburger span:nth-of-type(2) {
            top: 0.5rem; }
          .mobile-header .mobile-header-top .menu-btn .hamburger span:last-of-type {
            top: 1rem; }
          .mobile-header .mobile-header-top .menu-btn .hamburger span:after {
            display: none; }

.mobile-menu {
  position: absolute;
  top: 0;
  z-index: 999;
  left: -62.5rem;
  background: #131213;
  width: 0;
  right: 0;
  bottom: 0;
  transition: all 0.3s; }
  .mobile-menu .logo {
    margin: 0.9375rem 0 0 0.9375rem; }
    .mobile-menu .logo img {
      height: 1.875rem; }
  .mobile-menu .menu-btn {
    position: absolute;
    top: 1.5625rem;
    right: 0.9375rem; }
  .mobile-menu .mobile-nav {
    margin-top: 1.875rem; }
    .mobile-menu .mobile-nav > ul > li > a {
      color: #fff;
      font-family: 'GothamBlack';
      font-size: 0.875rem;
      line-height: 0.9375rem;
      border-left: 0.25rem solid transparent; }
      .mobile-menu .mobile-nav > ul > li > a:hover {
        color: #52B967;
        border-color: #52B967; }
    .mobile-menu .mobile-nav > ul > li.is-accordion-submenu-parent > a:after {
      content: "\ea0a";
      font-family: 'sps';
      position: absolute;
      right: 1.875rem;
      top: 0.9375rem;
      font-size: 0.75rem;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      color: #fff;
      border: none; }
    .mobile-menu .mobile-nav > ul > li.is-accordion-submenu-parent[aria-expanded="true"] > a {
      color: #52B967;
      border-color: #52B967; }
      .mobile-menu .mobile-nav > ul > li.is-accordion-submenu-parent[aria-expanded="true"] > a:after {
        content: "\ea0d"; }
    .mobile-menu .mobile-nav > ul > li .is-accordion-submenu > li a {
      color: #fff;
      font-family: 'GothamBook';
      font-size: 0.875rem;
      line-height: 0.9375rem; }
      .mobile-menu .mobile-nav > ul > li .is-accordion-submenu > li a:hover {
        color: #52B967; }

.hamburger {
  width: 1.875rem;
  height: 1.75rem;
  position: relative; }
  .hamburger:hover span {
    border-color: #fff; }
  .hamburger span {
    border-top: 0.125rem solid #fff;
    display: block;
    opacity: 1;
    position: absolute;
    width: 100%;
    top: 0;
    transition: all .6s ease; }
    .hamburger span:first-of-type {
      top: 0; }
    .hamburger span:nth-of-type(2) {
      top: 0.5rem; }
    .hamburger span:last-of-type {
      top: 1rem; }
    .hamburger span:after {
      display: none; }

.menu-expanded .hamburger span:first-of-type {
  display: none; }

.menu-expanded .hamburger span:nth-of-type(2) {
  -ms-transform: rotate(45deg);
  /* IE 9 */
  -webkit-transform: rotate(45deg);
  /* Chrome, Safari, Opera */
  transform: rotate(45deg);
  top: 0.75rem; }

.menu-expanded .hamburger span:last-of-type {
  -ms-transform: rotate(-45deg);
  /* IE 9 */
  -webkit-transform: rotate(-45deg);
  /* Chrome, Safari, Opera */
  transform: rotate(-45deg);
  top: 0.75rem; }

.footer {
  background: #fff;
  margin: 0;
  min-width: 100%; }
  .footer .paralax-footer {
    position: relative;
    z-index: 0;
    overflow: hidden;
    aspect-ratio: 1742 / 525; }
    .footer .paralax-footer .tree-layer {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100%;
      max-width: none;
      height: auto;
      will-change: transform; }
    .footer .paralax-footer .tree-layer--back {
      z-index: 1; }
    .footer .paralax-footer .tree-layer--front {
      z-index: 2; }
    @media (prefers-reduced-motion: reduce) {
      .footer .paralax-footer .tree-layer {
        transform: none !important; } }

.green-box {
  background: #173616;
  position: static;
  padding: 3.125rem 0.625rem;
  bottom: auto;
  left: 0;
  right: 0;
  z-index: 60; }
  @media print, screen and (min-width: 64em) {
    .green-box {
      padding: 0 0 2.5rem 0; } }
  .green-box .footer-logo {
    margin-bottom: 1.25rem; }
    .green-box .footer-logo a img {
      height: 2.25rem; }
  .green-box .contact span a {
    color: #fff;
    font-family: 'GothamBook';
    font-size: 0.875rem;
    line-height: 0.9375rem;
    display: block;
    margin-right: 0;
    margin-bottom: 1.25rem; }
    @media print, screen and (min-width: 64em) {
      .green-box .contact span a {
        display: inline-block;
        margin-right: 1.25rem;
        margin-bottom: 0; } }
    .green-box .contact span a:hover {
      color: #8C9A2A; }
  .green-box .locations {
    float: none;
    margin-left: 1.25rem; }
    @media print, screen and (min-width: 64em) {
      .green-box .locations {
        float: left; } }
    .green-box .locations .location {
      margin-top: 1.5625rem; }
      .green-box .locations .location h1 {
        color: #fff;
        font-family: 'GothamBlack';
        font-size: 1.125rem;
        line-height: 1.6875rem;
        position: relative;
        text-transform: uppercase; }
        .green-box .locations .location h1:before {
          content: "\ea15";
          font-family: 'sps';
          position: absolute;
          left: -1.5625rem;
          color: #8C9A2A;
          top: -0.125rem; }
      .green-box .locations .location p a {
        display: block;
        color: #fff;
        font-family: 'GothamBook';
        font-size: 0.875rem;
        line-height: 0.9375rem; }
        .green-box .locations .location p a:hover {
          color: #8C9A2A; }
  .green-box .social {
    float: none;
    margin-top: 3.125rem; }
    @media print, screen and (min-width: 64em) {
      .green-box .social {
        float: right; } }
    .green-box .social ul {
      list-style: none;
      margin: 0; }
      .green-box .social ul li {
        display: inline-block;
        padding-left: 0.625rem; }
        .green-box .social ul li a {
          font-size: 1.375rem;
          color: #eee; }
          .green-box .social ul li a:hover {
            color: #8C9A2A; }
  .green-box .bordered {
    padding-top: 2.5rem;
    border-top: 0.0625rem solid #214420;
    margin-top: 1.25rem; }
    .green-box .bordered .copyrights {
      color: #fff;
      font-family: 'GothamBook';
      font-size: 0.875rem;
      line-height: 1.25rem;
      margin-bottom: 1.25rem; }
      @media print, screen and (min-width: 64em) {
        .green-box .bordered .copyrights {
          margin-bottom: 0; } }
      .green-box .bordered .copyrights a {
        color: #fff;
        text-decoration: underline; }
        .green-box .bordered .copyrights a:hover {
          color: #8C9A2A; }
    .green-box .bordered .footer-links {
      float: none;
      margin-bottom: 1.25rem; }
      @media print, screen and (min-width: 64em) {
        .green-box .bordered .footer-links {
          float: right;
          margin-bottom: 0; } }
      .green-box .bordered .footer-links ul {
        list-style: none;
        margin: 0; }
        .green-box .bordered .footer-links ul li {
          display: inline-block; }
          @media print, screen and (min-width: 64em) {
            .green-box .bordered .footer-links ul li:last-child a {
              padding-right: 0; } }
          .green-box .bordered .footer-links ul li:first-child a {
            padding-left: 0; }
          .green-box .bordered .footer-links ul li a {
            color: #fff;
            font-family: 'GothamBlack';
            text-transform: uppercase;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            padding: 0 0.9375rem;
            display: inline-block; }
            .green-box .bordered .footer-links ul li a:after {
              content: '';
              display: block;
              width: 0;
              height: 2px;
              background: #ffffff;
              margin-top: 0.1875rem;
              transition: width .3s; }
            .green-box .bordered .footer-links ul li a:hover {
              color: #eeeeee; }
              .green-box .bordered .footer-links ul li a:hover:after {
                width: 100%; }

.main-wrapper {
  margin: 0;
  padding: 0;
  margin-bottom: 21.875rem;
  position: relative;
  z-index: 100; }
  @media print, screen and (min-width: 64em) {
    .main-wrapper {
      margin-bottom: 21.875rem; } }

.fixed-footer {
  width: 100%;
  height: 21.9375rem;
  background: url("../img/beach-footer.jpg") 50% 100%;
  background-size: cover;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: -100;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .fixed-footer .fixed-footer-details {
    text-align: center; }
    .fixed-footer .fixed-footer-details h3 {
      font-family: 'GothamBlack';
      font-size: 1.5rem;
      line-height: 2.25rem;
      text-transform: uppercase;
      color: #fff; }
      @media print, screen and (min-width: 64em) {
        .fixed-footer .fixed-footer-details h3 {
          font-size: 2.5rem;
          line-height: 3.125rem; } }
    .fixed-footer .fixed-footer-details p {
      font-family: 'GothamBook';
      font-size: 1.125rem;
      line-height: 1.75rem;
      color: #fff; }
      @media print, screen and (min-width: 64em) {
        .fixed-footer .fixed-footer-details p {
          font-size: 1.25rem;
          line-height: 1.875rem; } }
    .fixed-footer .fixed-footer-details a {
      border-radius: 0.25rem;
      text-align: center;
      font-size: 0.875rem;
      height: 2.75rem;
      line-height: 2.75rem;
      font-family: 'GothamBlack';
      text-transform: uppercase;
      color: #fff;
      border: 0.125rem solid #fff;
      padding: 0 1.875rem;
      background: linear-gradient(to left, transparent 50%, #6DA234 50%);
      background-size: 300% 100%;
      background-position: right bottom;
      cursor: pointer;
      display: inline-block;
      transition: background-position 0.6s ease, color  0.5s ease; }
      @media print, screen and (min-width: 48em) {
        .fixed-footer .fixed-footer-details a {
          font-size: 1rem;
          width: auto; } }
      .fixed-footer .fixed-footer-details a:hover {
        background-position: left bottom;
        color: #fefefe;
        border-color: #6DA234; }

.sidebar .widget .widget-title {
  color: #333;
  font-family: 'GothamBlack';
  font-size: 1.25rem;
  line-height: 2.1875rem;
  text-transform: uppercase; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > label,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > label,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > label {
  color: #888;
  font-family: 'GothamBlack';
  font-size: 0.875rem;
  line-height: 1.5625rem;
  text-transform: uppercase; }
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > label abbr,
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > label abbr,
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > label abbr {
    color: #A73B38; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > input,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > select,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > input,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > select,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > input,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > select {
  border-radius: 0.3125rem;
  border: 0.0625rem solid #707070;
  box-shadow: none; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > label,
.sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > label {
  position: relative; }
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-in-date > label:after,
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-check-out-date > label:after {
    content: "\ea18";
    font-family: 'sps';
    position: absolute;
    right: 0.625rem;
    top: 2rem;
    font-size: 0.75rem;
    color: #707070; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > select {
  background-image: none; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > label {
  position: relative; }
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-adults > label:after {
    content: "\ea0a";
    font-family: 'sps';
    position: absolute;
    right: 0.625rem;
    top: 2rem;
    font-size: 0.75rem;
    color: #707070; }

.sidebar .widget .mphb_widget_search-form .mphb_widget_search-submit-button-wrapper {
  margin-top: 0.9375rem; }
  .sidebar .widget .mphb_widget_search-form .mphb_widget_search-submit-button-wrapper > input {
    background: #52B967;
    color: #fff;
    font-family: 'GothamBlack';
    font-size: 0.875rem;
    text-transform: uppercase;
    border-radius: 0.3125rem;
    border: 0.125rem solid #52B967;
    transition: all 0.3s;
    display: block;
    width: 100%; }
    .sidebar .widget .mphb_widget_search-form .mphb_widget_search-submit-button-wrapper > input:hover {
      background: transparent;
      border: 0.125rem solid #52B967;
      color: #52B967; }

.galleries-wrapper {
  padding: 12.5rem 0;
  background: #fff; }
  .galleries-wrapper .filters {
    margin-bottom: 3.125rem; }
    .galleries-wrapper .filters .filters-list {
      text-align: center; }
      .galleries-wrapper .filters .filters-list ul {
        list-style: none;
        margin: 0; }
        .galleries-wrapper .filters .filters-list ul li {
          display: inline-block;
          margin: 0.3125rem; }
          .galleries-wrapper .filters .filters-list ul li a {
            background: #8C9A2A;
            color: #fff;
            display: block;
            font-family: 'GothamBlack';
            text-transform: uppercase;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            padding: 0.4375rem 0.9375rem;
            border-radius: 0.25rem; }
            .galleries-wrapper .filters .filters-list ul li a:hover {
              background: #173616; }
          .galleries-wrapper .filters .filters-list ul li.active a {
            background: #173616; }
  .galleries-wrapper .galleries {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[1];
        grid-template-columns: repeat(1, 1fr);
    grid-gap: 1.875rem; }
    @media print, screen and (min-width: 48em) {
      .galleries-wrapper .galleries {
        -ms-grid-columns: (1fr)[2];
            grid-template-columns: repeat(2, 1fr); } }
    @media print, screen and (min-width: 64em) {
      .galleries-wrapper .galleries {
        -ms-grid-columns: (1fr)[3];
            grid-template-columns: repeat(3, 1fr); } }

.gallery-container {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  overflow-y: auto;
  overflow-x: hidden;
  background: rgba(0, 0, 0, 0.8); }
  .gallery-container .gallery-slider {
    position: relative;
    z-index: 999999; }
  .gallery-container .gallery-items {
    position: relative;
    z-index: 999999;
    margin: 5rem 0.625rem;
    background: #fff;
    padding: 1.25rem; }
    @media print, screen and (min-width: 48em) {
      .gallery-container .gallery-items {
        margin: 6.25rem 1.875rem; } }
    @media print, screen and (min-width: 64em) {
      .gallery-container .gallery-items {
        margin: 6.25rem auto;
        width: 80%; } }
    .gallery-container .gallery-items .title h3 {
      line-height: 1.625rem;
      font-family: 'Source Sans Pro', sans-serif;
      font-size: 1.5rem;
      font-weight: 700; }
      .gallery-container .gallery-items .title h3 a {
        float: right; }
        .gallery-container .gallery-items .title h3 a:hover i {
          color: #222; }
    .gallery-container .gallery-items .slider-for {
      margin: 0 0 1.25rem 0;
      height: 18.75rem; }
      @media print, screen and (min-width: 48em) {
        .gallery-container .gallery-items .slider-for {
          height: 37.5rem; } }
      .gallery-container .gallery-items .slider-for .full {
        height: 18.75rem; }
        @media print, screen and (min-width: 48em) {
          .gallery-container .gallery-items .slider-for .full {
            height: 37.5rem; } }
        .gallery-container .gallery-items .slider-for .full img {
          height: 18.75rem;
          width: 100%;
          object-fit: contain; }
          @media print, screen and (min-width: 48em) {
            .gallery-container .gallery-items .slider-for .full img {
              height: 37.5rem;
              object-fit: cover; } }
    .gallery-container .gallery-items .slider-nav {
      margin: 0; }
      .gallery-container .gallery-items .slider-nav .thumb {
        margin: 0 1.25rem 0 0;
        height: 4.375rem;
        width: 4.375rem; }
        @media print, screen and (min-width: 48em) {
          .gallery-container .gallery-items .slider-nav .thumb {
            height: 12.5rem;
            width: 12.5rem !important; } }
        .gallery-container .gallery-items .slider-nav .thumb img {
          height: 4.375rem;
          object-fit: contain;
          width: 4.375rem; }
          @media print, screen and (min-width: 48em) {
            .gallery-container .gallery-items .slider-nav .thumb img {
              height: 12.5rem;
              object-fit: cover;
              width: 12.5rem !important; } }
    .gallery-container .gallery-items .slick-prev {
      left: 0.9375rem;
      z-index: 999999;
      top: 40%;
      -webkit-transform: rotate(-90deg);
          -ms-transform: rotate(-90deg);
              transform: rotate(-90deg); }
      [dir="rtl"] .gallery-container .gallery-items .slick-prev {
        left: auto;
        right: -25px; }
      .gallery-container .gallery-items .slick-prev:before {
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "\e873";
        color: #ffc72c;
        opacity: 1;
        font-size: 2.0625rem; }
        @media print, screen and (min-width: 48em) {
          .gallery-container .gallery-items .slick-prev:before {
            font-size: 2.6875rem; } }
    .gallery-container .gallery-items .slick-next {
      right: 0.9375rem;
      -webkit-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
              transform: rotate(90deg);
      top: 40%; }
      .gallery-container .gallery-items .slick-next:before {
        font-family: 'icomoon' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "\e873";
        color: #ffc72c;
        opacity: 1;
        font-size: 2.0625rem; }
        @media print, screen and (min-width: 48em) {
          .gallery-container .gallery-items .slick-next:before {
            font-size: 2.6875rem; } }

.large-image:hover ~ .controls,
.controls:hover {
  opacity: 1; }

.controls {
  opacity: 0;
  position: absolute;
  top: 25%;
  transition: all .15s ease-in-out;
  width: 100%; }
  @media print, screen and (min-width: 48em) {
    .controls {
      top: 30%; } }

.controls .prev-button,
.controls .next-button {
  position: absolute;
  transition: all .15s ease-in-out;
  cursor: pointer; }
  .controls .prev-button svg,
  .controls .next-button svg {
    fill: #FFC72C; }

.controls .prev-button:hover,
.controls .next-button:hover {
  background-color: transparent; }

.controls .prev-button {
  left: 0; }

.controls .next-button {
  right: 0; }

.controls .prev-button.inactive,
.controls .next-button.inactive {
  background-color: rgba(123, 123, 123, 0); }

.controls .prev-button.inactive:hover,
.controls .next-button.inactive:hover {
  background-color: rgba(123, 123, 123, 0); }

.controls svg {
  fill: #fff; }

.thumbnails {
  cursor: grab;
  cursor: -o-grab;
  cursor: -webkit-grab;
  margin-top: 1.25rem; }
  .thumbnails .gallery-item {
    margin: 0 5px; }

.large-image {
  min-height: 12.5rem; }

.fotorama__arr:focus:after,
.fotorama__fullscreen-icon:focus:after,
.fotorama__html,
.fotorama__img,
.fotorama__nav__frame:focus .fotorama__dot:after,
.fotorama__nav__frame:focus .fotorama__thumb:after,
.fotorama__stage__frame,
.fotorama__stage__shaft,
.fotorama__video iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0; }

.fotorama--fullscreen,
.fotorama__img {
  max-width: 99999px !important;
  max-height: 99999px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important; }

.fotorama__wrap .fotorama__grab {
  cursor: move;
  cursor: -webkit-grab;
  cursor: -o-grab;
  cursor: -ms-grab;
  cursor: grab; }

.fotorama__grabbing * {
  cursor: move;
  cursor: -webkit-grabbing;
  cursor: -o-grabbing;
  cursor: -ms-grabbing;
  cursor: grabbing; }

.fotorama__spinner {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important; }

.fotorama__wrap--css3 .fotorama__arr,
.fotorama__wrap--css3 .fotorama__fullscreen-icon,
.fotorama__wrap--css3 .fotorama__nav__shaft,
.fotorama__wrap--css3 .fotorama__stage__shaft,
.fotorama__wrap--css3 .fotorama__thumb-border,
.fotorama__wrap--css3 .fotorama__video-close,
.fotorama__wrap--css3 .fotorama__video-play {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.fotorama__caption,
.fotorama__nav:after,
.fotorama__nav:before,
.fotorama__stage:after,
.fotorama__stage:before,
.fotorama__wrap--css3 .fotorama__html,
.fotorama__wrap--css3 .fotorama__nav,
.fotorama__wrap--css3 .fotorama__spinner,
.fotorama__wrap--css3 .fotorama__stage,
.fotorama__wrap--css3 .fotorama__stage .fotorama__img,
.fotorama__wrap--css3 .fotorama__stage__frame {
  -webkit-transform: translateZ(0);
  transform: translateZ(0); }

.fotorama__arr:focus,
.fotorama__fullscreen-icon:focus,
.fotorama__nav__frame {
  outline: 0;
  margin-right: 0.625rem; }

.fotorama__arr:focus:after,
.fotorama__fullscreen-icon:focus:after,
.fotorama__nav__frame:focus .fotorama__dot:after,
.fotorama__nav__frame:focus .fotorama__thumb:after {
  content: '';
  border-radius: inherit;
  background-color: rgba(0, 175, 234, 0.5); }

.fotorama__wrap--video .fotorama__stage,
.fotorama__wrap--video .fotorama__stage__frame--video,
.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__html,
.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__img,
.fotorama__wrap--video .fotorama__stage__shaft {
  -webkit-transform: none !important;
  -ms-transform: none !important;
      transform: none !important; }

.fotorama__wrap--css3 .fotorama__nav__shaft,
.fotorama__wrap--css3 .fotorama__stage__shaft,
.fotorama__wrap--css3 .fotorama__thumb-border {
  transition-property: -webkit-transform, width;
  transition-property: width, -webkit-transform;
  transition-property: transform, width;
  transition-property: transform, width, -webkit-transform;
  transition-timing-function: cubic-bezier(0.1, 0, 0.25, 1);
  transition-duration: 0ms; }

.fotorama__arr,
.fotorama__fullscreen-icon,
.fotorama__no-select,
.fotorama__video-close,
.fotorama__video-play,
.fotorama__wrap {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.fotorama__select {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text; }

.fotorama__nav,
.fotorama__nav__frame {
  margin: auto;
  padding: 0; }

.fotorama__caption__wrap,
.fotorama__nav__frame,
.fotorama__nav__shaft {
  display: inline-block;
  vertical-align: middle;
  *display: inline;
  *zoom: 1; }

.fotorama__nav__frame,
.fotorama__thumb-border {
  box-sizing: content-box; }

.fotorama__caption__wrap {
  box-sizing: border-box; }

.fotorama--hidden,
.fotorama__load {
  position: absolute;
  left: -99999px;
  top: -99999px;
  z-index: -1; }

.fotorama__arr,
.fotorama__fullscreen-icon,
.fotorama__nav,
.fotorama__nav__frame,
.fotorama__nav__shaft,
.fotorama__stage__frame,
.fotorama__stage__shaft,
.fotorama__video-close,
.fotorama__video-play {
  -webkit-tap-highlight-color: transparent; }

.fotorama__arr,
.fotorama__fullscreen-icon,
.fotorama__video-close,
.fotorama__video-play {
  background: url(../img/fotorama.png) no-repeat; }

@media (-webkit-min-device-pixel-ratio: 1.5), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  .fotorama__arr,
  .fotorama__fullscreen-icon,
  .fotorama__video-close,
  .fotorama__video-play {
    background: url(../img/fotorama@2x.png) 0 0/96px 160px no-repeat; } }

.fotorama__thumb {
  background-color: #7f7f7f;
  background-color: rgba(127, 127, 127, 0.2); }

@media print {
  .fotorama__arr,
  .fotorama__fullscreen-icon,
  .fotorama__thumb-border,
  .fotorama__video-close,
  .fotorama__video-play {
    background: none !important; } }

.fotorama {
  min-width: 1px;
  overflow: hidden; }

.fotorama:not(.fotorama--unobtrusive) > *:not(:first-child) {
  display: none; }

.fullscreen {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #000; }

.fotorama--fullscreen {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  float: none !important;
  z-index: 2147483647 !important;
  background: #000;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important; }

.fotorama--fullscreen .fotorama__nav,
.fotorama--fullscreen .fotorama__stage {
  background: #000; }

.fotorama__wrap {
  -webkit-text-size-adjust: 100%;
  position: relative;
  direction: ltr;
  z-index: 0; }

.fotorama__wrap--rtl .fotorama__stage__frame {
  direction: rtl; }

.fotorama__nav,
.fotorama__stage {
  overflow: hidden;
  position: relative;
  max-width: 100%; }

.fotorama__wrap--pan-y {
  -ms-touch-action: pan-y; }

.fotorama__wrap .fotorama__pointer {
  cursor: pointer; }

.fotorama__wrap--slide .fotorama__stage__frame {
  opacity: 1 !important; }

.fotorama__stage__frame {
  overflow: hidden; }

.fotorama__stage__frame.fotorama__active {
  z-index: 8; }

.fotorama__wrap--fade .fotorama__stage__frame {
  display: none; }

.fotorama__wrap--fade .fotorama__fade-front,
.fotorama__wrap--fade .fotorama__fade-rear,
.fotorama__wrap--fade .fotorama__stage__frame.fotorama__active {
  display: block;
  left: 0;
  top: 0; }

.fotorama__wrap--fade .fotorama__fade-front {
  z-index: 8; }

.fotorama__wrap--fade .fotorama__fade-rear {
  z-index: 7; }

.fotorama__wrap--fade .fotorama__fade-rear.fotorama__active {
  z-index: 9; }

.fotorama__wrap--fade .fotorama__stage .fotorama__shadow {
  display: none; }

.fotorama__img {
  -ms-filter: "alpha(Opacity=0)";
  filter: alpha(opacity=0);
  opacity: 0;
  border: none !important; }

.fotorama__error .fotorama__img,
.fotorama__loaded .fotorama__img {
  -ms-filter: "alpha(Opacity=100)";
  filter: alpha(opacity=100);
  opacity: 1; }

.fotorama--fullscreen .fotorama__loaded--full .fotorama__img,
.fotorama__img--full {
  display: none; }

.fotorama--fullscreen .fotorama__loaded--full .fotorama__img--full {
  display: block; }

.fotorama__wrap--only-active .fotorama__nav,
.fotorama__wrap--only-active .fotorama__stage {
  max-width: 99999px !important; }

.fotorama__wrap--only-active .fotorama__stage__frame {
  visibility: hidden; }

.fotorama__wrap--only-active .fotorama__stage__frame.fotorama__active {
  visibility: visible; }

.fotorama__nav {
  font-size: 0;
  line-height: 0;
  text-align: center;
  display: none;
  white-space: nowrap;
  z-index: 5; }

.fotorama__nav__shaft {
  position: relative;
  left: 0;
  top: 0;
  text-align: left; }

.fotorama__nav__frame {
  position: relative;
  cursor: pointer; }

.fotorama__nav--dots {
  display: block; }

.fotorama__nav--dots .fotorama__nav__frame {
  width: 18px;
  height: 30px; }

.fotorama__nav--dots .fotorama__nav__frame--thumb,
.fotorama__nav--dots .fotorama__thumb-border {
  display: none; }

.fotorama__nav__frame {
  margin: 0.625rem; }

.fotorama__nav--thumbs {
  display: block; }

.fotorama__nav--thumbs .fotorama__nav__frame {
  padding-left: 0 !important; }

.fotorama__nav--thumbs .fotorama__nav__frame:last-child {
  padding-right: 0 !important; }

.fotorama__nav--thumbs .fotorama__nav__frame--dot {
  display: none; }

.fotorama__dot {
  display: block;
  width: 4px;
  height: 4px;
  position: relative;
  top: 12px;
  left: 6px;
  border-radius: 6px;
  border: 1px solid #7f7f7f; }

.fotorama__nav__frame:focus .fotorama__dot:after {
  padding: 1px;
  top: -1px;
  left: -1px; }

.fotorama__nav__frame.fotorama__active .fotorama__dot {
  width: 0;
  height: 0;
  border-width: 3px; }

.fotorama__nav__frame.fotorama__active .fotorama__dot:after {
  padding: 3px;
  top: -3px;
  left: -3px; }

.fotorama__thumb {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%; }

.fotorama__nav__frame:focus .fotorama__thumb {
  z-index: 2; }

.fotorama__thumb-border {
  display: none; }

.fotorama__caption {
  position: absolute;
  z-index: 12;
  bottom: 0;
  left: 0;
  right: 0;
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #000; }

.fotorama__caption a {
  text-decoration: none;
  color: #000;
  border-bottom: 1px solid;
  border-color: rgba(0, 0, 0, 0.5); }

.fotorama__caption a:hover {
  color: #333;
  border-color: rgba(51, 51, 51, 0.5); }

.fotorama__wrap--rtl .fotorama__caption {
  left: auto;
  right: 0; }

.fotorama__wrap--no-captions .fotorama__caption,
.fotorama__wrap--video .fotorama__caption {
  display: none; }

.fotorama__caption__wrap {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 5px 10px; }

@-webkit-keyframes spinner {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes spinner {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0); }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg); } }

.fotorama__wrap--css3 .fotorama__spinner {
  -webkit-animation: spinner 24s infinite linear;
  animation: spinner 24s infinite linear; }

.fotorama__wrap--css3 .fotorama__html,
.fotorama__wrap--css3 .fotorama__stage .fotorama__img {
  transition-property: opacity;
  transition-timing-function: linear;
  transition-duration: .3s; }

.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__html,
.fotorama__wrap--video .fotorama__stage__frame--video .fotorama__img {
  -ms-filter: "alpha(Opacity=0)";
  filter: alpha(opacity=0);
  opacity: 0; }

.fotorama__select {
  cursor: auto; }

.fotorama__video {
  top: 32px;
  right: 0;
  bottom: 0;
  left: 0;
  position: absolute;
  z-index: 10; }

@-moz-document url-prefix() {
  .fotorama__active {
    box-shadow: 0 0 0 transparent; } }

.fotorama__arr,
.fotorama__fullscreen-icon,
.fotorama__video-close,
.fotorama__video-play {
  position: absolute;
  z-index: 11;
  cursor: pointer; }

.fotorama__arr {
  position: absolute;
  width: 32px;
  height: 32px;
  top: 50%;
  margin-top: -16px; }

.fotorama__arr--prev {
  left: 2px;
  background-position: 0 0; }

.fotorama__arr--next {
  right: 2px;
  background-position: -32px 0; }

.fotorama__arr--disabled {
  pointer-events: none;
  cursor: default;
  *display: none;
  opacity: .1; }

.fotorama__fullscreen-icon {
  width: 32px;
  height: 32px;
  top: 2px;
  right: 2px;
  background-position: 0 -32px;
  z-index: 20; }

.fotorama__arr:focus,
.fotorama__fullscreen-icon:focus {
  border-radius: 50%; }

.fotorama--fullscreen .fotorama__fullscreen-icon {
  background-position: -32px -32px; }

.fotorama__video-play {
  width: 96px;
  height: 96px;
  left: 50%;
  top: 50%;
  margin-left: -48px;
  margin-top: -48px;
  background-position: 0 -64px;
  opacity: 0; }

.fotorama__wrap--css2 .fotorama__video-play,
.fotorama__wrap--video .fotorama__stage .fotorama__video-play {
  display: none; }

.fotorama__error .fotorama__video-play,
.fotorama__loaded .fotorama__video-play,
.fotorama__nav__frame .fotorama__video-play {
  opacity: 1;
  display: block; }

.fotorama__nav__frame .fotorama__video-play {
  width: 32px;
  height: 32px;
  margin-left: -16px;
  margin-top: -16px;
  background-position: -64px -32px; }

.fotorama__video-close {
  width: 32px;
  height: 32px;
  top: 0;
  right: 0;
  background-position: -64px 0;
  z-index: 20;
  opacity: 0; }

.fotorama__wrap--css2 .fotorama__video-close {
  display: none; }

.fotorama__wrap--css3 .fotorama__video-close {
  -webkit-transform: translate3d(32px, -32px, 0);
  transform: translate3d(32px, -32px, 0); }

.fotorama__wrap--video .fotorama__video-close {
  display: block;
  opacity: 1; }

.fotorama__wrap--css3.fotorama__wrap--video .fotorama__video-close {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr,
.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon {
  opacity: 0; }

.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr:focus,
.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:focus {
  opacity: 1; }

.fotorama__wrap--video .fotorama__arr,
.fotorama__wrap--video .fotorama__fullscreen-icon {
  opacity: 0 !important; }

.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr,
.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon {
  display: none; }

.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__arr:focus,
.fotorama__wrap--css2.fotorama__wrap--no-controls.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:focus {
  display: block; }

.fotorama__wrap--css2.fotorama__wrap--video .fotorama__arr,
.fotorama__wrap--css2.fotorama__wrap--video .fotorama__fullscreen-icon {
  display: none !important; }

.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__fullscreen-icon:not(:focus) {
  -webkit-transform: translate3d(32px, -32px, 0);
  transform: translate3d(32px, -32px, 0); }

.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__arr--prev:not(:focus) {
  -webkit-transform: translate3d(-48px, 0, 0);
  transform: translate3d(-48px, 0, 0); }

.fotorama__wrap--css3.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows .fotorama__arr--next:not(:focus) {
  -webkit-transform: translate3d(48px, 0, 0);
  transform: translate3d(48px, 0, 0); }

.fotorama__wrap--css3.fotorama__wrap--video .fotorama__fullscreen-icon {
  -webkit-transform: translate3d(32px, -32px, 0) !important;
  transform: translate3d(32px, -32px, 0) !important; }

.fotorama__wrap--css3.fotorama__wrap--video .fotorama__arr--prev {
  -webkit-transform: translate3d(-48px, 0, 0) !important;
  transform: translate3d(-48px, 0, 0) !important; }

.fotorama__wrap--css3.fotorama__wrap--video .fotorama__arr--next {
  -webkit-transform: translate3d(48px, 0, 0) !important;
  transform: translate3d(48px, 0, 0) !important; }

.fotorama__wrap--css3 .fotorama__arr:not(:focus),
.fotorama__wrap--css3 .fotorama__fullscreen-icon:not(:focus),
.fotorama__wrap--css3 .fotorama__video-close:not(:focus),
.fotorama__wrap--css3 .fotorama__video-play:not(:focus) {
  transition-property: -webkit-transform, opacity;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  transition-duration: .3s; }

.fotorama__nav:after,
.fotorama__nav:before,
.fotorama__stage:after,
.fotorama__stage:before {
  content: "";
  display: block;
  position: absolute;
  text-decoration: none;
  top: 0;
  bottom: 0;
  width: 10px;
  height: auto;
  z-index: 10;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: 1px 100%, 5px 100%; }

.fotorama__nav:before,
.fotorama__stage:before {
  background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.4), transparent);
  background-position: 0 0, 0 0;
  left: -10px; }

.fotorama__nav.fotorama__shadows--left:before,
.fotorama__stage.fotorama__shadows--left:before {
  left: 0; }

.fotorama__nav:after,
.fotorama__stage:after {
  background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.4), transparent);
  background-position: 100% 0, 100% 0;
  right: -10px; }

.fotorama__nav.fotorama__shadows--right:after,
.fotorama__stage.fotorama__shadows--right:after {
  right: 0; }

.fotorama--fullscreen .fotorama__nav:after,
.fotorama--fullscreen .fotorama__nav:before,
.fotorama--fullscreen .fotorama__stage:after,
.fotorama--fullscreen .fotorama__stage:before,
.fotorama__wrap--fade .fotorama__stage:after,
.fotorama__wrap--fade .fotorama__stage:before,
.fotorama__wrap--no-shadows .fotorama__nav:after,
.fotorama__wrap--no-shadows .fotorama__nav:before,
.fotorama__wrap--no-shadows .fotorama__stage:after,
.fotorama__wrap--no-shadows .fotorama__stage:before {
  display: none; }

.page-wrapper {
  padding: 0 0 12.5rem 0;
  background: #fff; }

.page-wrapper .intro {
  height: 25rem;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: relative;
  margin-bottom: 5rem;
  z-index: 2; }
  .page-wrapper .intro:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 3; }
  .page-wrapper .intro .intro-details {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    z-index: 4;
    text-align: center; }
    .page-wrapper .intro .intro-details h1 {
      color: #fff;
      font-family: 'GothamBlack';
      font-size: 1.5rem;
      line-height: 2.25rem;
      text-transform: uppercase; }
      @media print, screen and (min-width: 64em) {
        .page-wrapper .intro .intro-details h1 {
          font-size: 2.5rem;
          line-height: 3.125rem; } }
    .page-wrapper .intro .intro-details p {
      font-family: 'GothamBook';
      font-size: 1.125rem;
      line-height: 1.75rem;
      color: #fff; }
      @media print, screen and (min-width: 64em) {
        .page-wrapper .intro .intro-details p {
          font-size: 1.25rem;
          line-height: 1.875rem; } }

.single-room-wrapper,
.mphb_sc_search_results-wrapper {
  background: #fff; }
  .single-room-wrapper .mphb-room-type-title,
  .mphb_sc_search_results-wrapper .mphb-room-type-title {
    color: #52B967;
    font-family: 'GothamBlack';
    font-size: 1.625rem;
    line-height: 2.1875rem;
    text-transform: uppercase; }
  .single-room-wrapper .mphb-single-room-type-post-thumbnail a img,
  .mphb_sc_search_results-wrapper .mphb-single-room-type-post-thumbnail a img {
    width: 100%;
    border-radius: 0.3125rem; }
  .single-room-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item,
  .mphb_sc_search_results-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item {
    float: left;
    margin-top: 10px;
    text-align: center;
    width: 25%; }
    .single-room-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item img,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item img {
      border: none !important;
      margin: 0.625rem;
      border-radius: 0.3125rem; }
    .single-room-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item .gallery-caption,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-gallery-wrapper .gallery-item .gallery-caption {
      margin-left: 0; }
  .single-room-wrapper .room-details,
  .mphb_sc_search_results-wrapper .room-details {
    margin-bottom: 1.25rem; }
    .single-room-wrapper .room-details p,
    .mphb_sc_search_results-wrapper .room-details p {
      font-family: 'GothamBook';
      font-size: 1.125rem;
      line-height: 1.75rem;
      color: #333; }
      @media print, screen and (min-width: 64em) {
        .single-room-wrapper .room-details p,
        .mphb_sc_search_results-wrapper .room-details p {
          font-size: 1.25rem;
          line-height: 1.875rem; } }
  .single-room-wrapper .mphb-details-title,
  .single-room-wrapper .mphb-room-type-details-title,
  .mphb_sc_search_results-wrapper .mphb-details-title,
  .mphb_sc_search_results-wrapper .mphb-room-type-details-title {
    color: #52B967;
    font-family: 'GothamBlack';
    font-size: 1.25rem;
    line-height: 1.875rem;
    text-transform: uppercase; }
  .single-room-wrapper .mphb-single-room-type-attributes,
  .single-room-wrapper .mphb-loop-room-type-attributes,
  .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes,
  .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes {
    list-style: none;
    margin: 0 0 1.875rem 0; }
    .single-room-wrapper .mphb-single-room-type-attributes a,
    .single-room-wrapper .mphb-loop-room-type-attributes a,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes a,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes a {
      color: #52B967; }
      .single-room-wrapper .mphb-single-room-type-attributes a:hover,
      .single-room-wrapper .mphb-loop-room-type-attributes a:hover,
      .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes a:hover,
      .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes a:hover {
        color: #0a0a0a;
        text-decoration: underline; }
    .single-room-wrapper .mphb-single-room-type-attributes li:before,
    .single-room-wrapper .mphb-loop-room-type-attributes li:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes li:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes li:before {
      color: #ccc;
      font-size: 1.125rem;
      padding-right: 0.375rem;
      position: relative;
      top: 0.125rem; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-adults-capacity:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-adults-capacity:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-adults-capacity:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-adults-capacity:before {
      content: "\ea1d";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-facilities:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-facilities:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-facilities:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-facilities:before {
      content: "\ea1c";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-view:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-view:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-view:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-view:before {
      content: "\ea1e";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-size:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-size:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-size:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-size:before {
      content: "\ea1f";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-bed-type:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-bed-type:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-bed-type:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-bed-type:before {
      content: "\ea1b";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-room-type-categories:before,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-room-type-categories:before,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-room-type-categories:before,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-room-type-categories:before {
      content: "\ea20";
      font-family: 'sps'; }
    .single-room-wrapper .mphb-single-room-type-attributes .mphb-attribute-title,
    .single-room-wrapper .mphb-loop-room-type-attributes .mphb-attribute-title,
    .mphb_sc_search_results-wrapper .mphb-single-room-type-attributes .mphb-attribute-title,
    .mphb_sc_search_results-wrapper .mphb-loop-room-type-attributes .mphb-attribute-title {
      color: #666;
      font-family: 'GothamBook';
      font-size: 1.125rem;
      width: 7.5rem;
      display: inline-block; }
  .single-room-wrapper .mphb-calendar-title,
  .mphb_sc_search_results-wrapper .mphb-calendar-title {
    color: #52B967;
    font-family: 'GothamBlack';
    font-size: 1.25rem;
    line-height: 1.875rem;
    text-transform: uppercase; }
  .single-room-wrapper .mphb-calendar,
  .mphb_sc_search_results-wrapper .mphb-calendar {
    margin: 0 0 1.875rem 0; }
  .single-room-wrapper .mphb-reservation-form-title,
  .mphb_sc_search_results-wrapper .mphb-reservation-form-title {
    color: #52B967;
    font-family: 'GothamBlack';
    font-size: 1.25rem;
    line-height: 1.875rem;
    text-transform: uppercase; }
  .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper br,
  .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper br,
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper br,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper br,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper br,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper br {
    display: none; }
  .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label,
  .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label,
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > label {
    color: #888;
    font-family: 'GothamBlack';
    font-size: 0.875rem;
    line-height: 1.5625rem;
    text-transform: uppercase; }
    .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label abbr,
    .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label abbr,
    .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > label abbr,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label abbr,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label abbr,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > label abbr {
      color: #A73B38; }
  .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > input,
  .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > select,
  .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > input,
  .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > select,
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > input,
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > select,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > input,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > select,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > input,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > select,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > input,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > select {
    border-radius: 0.3125rem;
    border: 0.0625rem solid #707070;
    box-shadow: none; }
  .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label,
  .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label {
    position: relative; }
    .single-room-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label:after,
    .single-room-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label:after,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-in-date-wrapper > label:after,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-check-out-date-wrapper > label:after {
      content: "\ea18";
      font-family: 'sps';
      position: absolute;
      right: 0.625rem;
      top: 2rem;
      font-size: 0.75rem;
      color: #707070; }
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > select,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > select {
    background-image: none; }
  .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > label,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > label {
    position: relative; }
    .single-room-wrapper .mphb-booking-form .mphb-adults-wrapper > label:after,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-adults-wrapper > label:after {
      content: "\ea0a";
      font-family: 'sps';
      position: absolute;
      right: 0.625rem;
      top: 2rem;
      font-size: 0.75rem;
      color: #707070; }
  .single-room-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper,
  .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper {
    margin-top: 0.9375rem; }
    .single-room-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper > input,
    .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper > input {
      background: #52B967;
      color: #fff;
      font-family: 'GothamBlack';
      font-size: 0.875rem;
      text-transform: uppercase;
      border-radius: 0.3125rem;
      border: 0.125rem solid #52B967;
      transition: all 0.3s;
      display: block;
      width: 100%; }
      .single-room-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper > input:hover,
      .mphb_sc_search_results-wrapper .mphb-booking-form .mphb-reserve-btn-wrapper > input:hover {
        background: transparent;
        border: 0.125rem solid #52B967;
        color: #52B967; }

.single-room-wrapper {
  padding: 6.25rem 0 12.5rem 0; }

.mphb-room-types .mphb_sc_search_results-info,
.mphb_sc_search_results-wrapper .mphb_sc_search_results-info {
  font-family: 'GothamBlack';
  color: #52B967;
  font-size: 1.25rem; }

.mphb-room-types .mphb-room-type .mphb-loop-room-thumbnail a img,
.mphb_sc_search_results-wrapper .mphb-room-type .mphb-loop-room-thumbnail a img {
  border-radius: 0.3125rem; }

.mphb-room-types .mphb-room-type .mphb-room-type-title a,
.mphb_sc_search_results-wrapper .mphb-room-type .mphb-room-type-title a {
  color: #52B967;
  font-family: 'GothamBlack';
  font-size: 1.5rem;
  line-height: 2.1875rem;
  text-transform: uppercase;
  margin-top: 1.25rem; }

.mphb-room-types .mphb-room-type p,
.mphb_sc_search_results-wrapper .mphb-room-type p {
  font-family: 'GothamBook';
  font-size: 1.125rem;
  line-height: 1.75rem;
  color: #333; }
  @media print, screen and (min-width: 64em) {
    .mphb-room-types .mphb-room-type p,
    .mphb_sc_search_results-wrapper .mphb-room-type p {
      font-size: 1.25rem;
      line-height: 1.875rem; } }
  .mphb-room-types .mphb-room-type p.mphb-regular-price,
  .mphb_sc_search_results-wrapper .mphb-room-type p.mphb-regular-price {
    color: #888; }
    .mphb-room-types .mphb-room-type p.mphb-regular-price strong,
    .mphb_sc_search_results-wrapper .mphb-room-type p.mphb-regular-price strong {
      font-weight: normal; }

.mphb-room-types .mphb-view-details-button,
.mphb_sc_search_results-wrapper .mphb-view-details-button {
  border-radius: 0.25rem;
  text-align: center;
  font-size: 0.875rem;
  height: 2.75rem;
  line-height: 2.75rem;
  font-family: 'GothamBlack';
  text-transform: uppercase;
  color: #6DA234;
  border: 0.125rem solid #ccc;
  display: block !important;
  padding: 0 1.875rem;
  background: linear-gradient(to left, transparent 50%, #6DA234 50%);
  background-size: 300% 100%;
  background-position: right bottom;
  cursor: pointer;
  transition: background-position 0.6s ease, color  0.5s ease; }
  @media print, screen and (min-width: 48em) {
    .mphb-room-types .mphb-view-details-button,
    .mphb_sc_search_results-wrapper .mphb-view-details-button {
      font-size: 1rem;
      display: inline-block;
      width: auto; } }
  .mphb-room-types .mphb-view-details-button:hover,
  .mphb_sc_search_results-wrapper .mphb-view-details-button:hover {
    background-position: left bottom;
    color: #fefefe;
    border-color: #6DA234; }

.latest-accommodations {
  padding: 3.75rem 0.625rem;
  background: #fff url("../img/leaf-pattern.png");
  background-attachment: fixed; }
  @media print, screen and (min-width: 64em) {
    .latest-accommodations {
      padding: 11.25rem 0 11.25rem 0; } }
  .latest-accommodations .row {
    max-width: 75rem !important;
    margin: 0 auto; }
    .latest-accommodations .row .intro-details {
      text-align: center; }
      .latest-accommodations .row .intro-details .full-logo {
        margin-bottom: 3.75rem; }
        @media print, screen and (min-width: 64em) {
          .latest-accommodations .row .intro-details .full-logo {
            margin-bottom: 0; } }
        .latest-accommodations .row .intro-details .full-logo img {
          height: 11.25rem;
          width: auto; }
          @media print, screen and (min-width: 64em) {
            .latest-accommodations .row .intro-details .full-logo img {
              height: 15.625rem; } }
      .latest-accommodations .row .intro-details h1 {
        font-family: 'GothamBlack';
        font-size: 1.5rem;
        line-height: 2.25rem;
        text-transform: uppercase;
        color: #6DA234;
        margin: 1.25rem 0; }
        @media print, screen and (min-width: 64em) {
          .latest-accommodations .row .intro-details h1 {
            font-size: 2.5rem;
            line-height: 3.125rem;
            margin: 2.5rem 0; } }
      .latest-accommodations .row .intro-details p {
        font-family: 'GothamBook';
        font-size: 1.125rem;
        line-height: 1.75rem;
        color: #001F00; }
        @media print, screen and (min-width: 64em) {
          .latest-accommodations .row .intro-details p {
            font-size: 1.5rem;
            line-height: 2rem; } }
    .latest-accommodations .row .rooms {
      margin-top: 2.5rem; }
      .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
        grid-gap: 1.875rem; }
        @media print, screen and (min-width: 48em) {
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper {
            -ms-grid-columns: (1fr)[2];
                grid-template-columns: repeat(2, 1fr); } }
        @media print, screen and (min-width: 64em) {
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper {
            -ms-grid-columns: (1fr)[3];
                grid-template-columns: repeat(3, 1fr); } }
        .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type {
          background: #fff;
          margin-top: 0;
          text-align: center;
          border-radius: 0 0 0.3125rem 0.3125rem;
          box-shadow: 0 0.25rem 2rem 0 rgba(0, 0, 0, 0.15); }
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-thumbnail a img {
            border-radius: 0.3125rem 0.3125rem 0 0; }
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-room-type-title a {
            padding: 1.25rem;
            line-height: 1.25rem; }
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type p {
            padding: 0 1.25rem; }
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type h3 {
            display: none; }
          .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes {
            list-style: none;
            margin: 0 0 1.875rem 0;
            padding: 0 1.25rem; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes li:before {
              color: #52B967;
              font-size: 1.125rem;
              padding-right: 0.375rem;
              position: relative;
              top: 0.125rem; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-adults-capacity:before {
              content: "\ea1d";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-facilities:before {
              content: "\ea1c";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-view:before {
              content: "\ea1e";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-size:before {
              content: "\ea1f";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-bed-type:before {
              content: "\ea1b";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-room-type-categories:before {
              content: "\ea20";
              font-family: 'sps'; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-attribute-title {
              display: none; }
            .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-attribute-value {
              color: #777; }
              .latest-accommodations .row .rooms .mphb_sc_rooms-wrapper .mphb-room-type .mphb-loop-room-type-attributes .mphb-attribute-value a {
                color: #333; }

.testimonials-block {
  padding: 3.125rem 0.625rem;
  background: #52B967; }
  @media print, screen and (min-width: 48em) {
    .testimonials-block {
      padding: 7.5rem 0 7.5rem 0; } }
  .testimonials-block .row {
    max-width: 75rem !important;
    margin: 0 auto; }
    .testimonials-block .row .testimonials .testimonial {
      text-align: center; }
      .testimonials-block .row .testimonials .testimonial .testimonial-text {
        color: #fff;
        font-family: 'GothamBook';
        font-size: 1.125rem;
        line-height: 1.625rem;
        margin-bottom: 1.25rem; }
        @media print, screen and (min-width: 64em) {
          .testimonials-block .row .testimonials .testimonial .testimonial-text {
            font-size: 1.5rem;
            line-height: 2.125rem;
            margin-bottom: 3.75rem; } }
      .testimonials-block .row .testimonials .testimonial .client-name {
        color: #fff;
        font-family: 'GothamBlack';
        font-size: 1rem;
        line-height: 1.5rem;
        text-transform: uppercase; }
        @media print, screen and (min-width: 64em) {
          .testimonials-block .row .testimonials .testimonial .client-name {
            font-size: 1.375rem;
            line-height: 1.875rem; } }
    .testimonials-block .row .slick-dots {
      bottom: -2.1875rem;
      display: block; }
      @media print, screen and (min-width: 64em) {
        .testimonials-block .row .slick-dots {
          display: none !important; } }
    .testimonials-block .row .slick-prev,
    .testimonials-block .row .slick-next {
      position: absolute;
      height: 1.75rem;
      width: 1.75rem;
      border-radius: 100%;
      line-height: 1.75rem;
      font-size: 1.875rem;
      cursor: pointer;
      color: transparent;
      top: 50%;
      -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
      transform: translate(0, -50%);
      padding: 0;
      border: none;
      outline: none;
      text-align: center; }
    .testimonials-block .row .slick-prev {
      left: 0.9375rem; }
      @media print, screen and (min-width: 48em) {
        .testimonials-block .row .slick-prev {
          left: -1.25rem; } }
      @media print, screen and (min-width: 64em) {
        .testimonials-block .row .slick-prev {
          left: -2.5rem; } }
      .testimonials-block .row .slick-prev:before {
        content: "\ea12";
        font-family: 'sps';
        color: #fff;
        display: none; }
        @media print, screen and (min-width: 64em) {
          .testimonials-block .row .slick-prev:before {
            display: block; } }
    .testimonials-block .row .slick-next {
      right: 0.9375rem; }
      @media print, screen and (min-width: 48em) {
        .testimonials-block .row .slick-next {
          right: -1.25rem; } }
      @media print, screen and (min-width: 64em) {
        .testimonials-block .row .slick-next {
          right: -2.5rem; } }
      .testimonials-block .row .slick-next:before {
        content: "\ea11";
        font-family: 'sps';
        color: #fff;
        display: none; }
        @media print, screen and (min-width: 64em) {
          .testimonials-block .row .slick-next:before {
            display: block; } }

.latest-news {
  padding: 1.875rem 0.625rem 0 0.625rem;
  position: relative;
  background: #fff; }
  @media print, screen and (min-width: 64em) {
    .latest-news {
      padding: 11.25rem 0 11.25rem 0; } }
  .latest-news .row {
    max-width: 75rem !important;
    margin: 0 auto; }
    .latest-news .row .block-title {
      text-align: center; }
      .latest-news .row .block-title h1 {
        font-family: 'GothamBlack';
        font-size: 1.5rem;
        line-height: 2.25rem;
        text-transform: uppercase;
        color: #6DA234;
        margin: 1.25rem 0; }
        @media print, screen and (min-width: 64em) {
          .latest-news .row .block-title h1 {
            font-size: 2.5rem;
            line-height: 3.125rem;
            margin: 2.5rem 0; } }
    .latest-news .row .single-post-item {
      background: #f9f9f9;
      transition: all 0.3s;
      margin-bottom: 1.875rem; }
      .latest-news .row .single-post-item:hover {
        background: #6DA234; }
        .latest-news .row .single-post-item:hover .post-details h5,
        .latest-news .row .single-post-item:hover .post-details h3,
        .latest-news .row .single-post-item:hover .post-details p,
        .latest-news .row .single-post-item:hover .post-details a {
          color: #fff; }
      .latest-news .row .single-post-item .post-thumbnail img {
        height: 17.1875rem;
        width: 100%;
        object-fit: cover; }
      .latest-news .row .single-post-item .post-details {
        padding: 1.875rem 1.25rem;
        text-align: center; }
        .latest-news .row .single-post-item .post-details h5 {
          font-family: 'GothamBlack';
          font-size: 0.875rem;
          line-height: 1.5rem;
          color: #888;
          text-transform: uppercase; }
          @media print, screen and (min-width: 64em) {
            .latest-news .row .single-post-item .post-details h5 {
              font-size: 1rem;
              line-height: 1.75rem; } }
        .latest-news .row .single-post-item .post-details h3 {
          font-family: 'GothamBlack';
          font-size: 1.25rem;
          line-height: 1.875rem;
          text-transform: uppercase; }
          @media print, screen and (min-width: 64em) {
            .latest-news .row .single-post-item .post-details h3 {
              font-size: 1.375rem;
              line-height: 2.125rem; } }
          .latest-news .row .single-post-item .post-details h3 a {
            color: #001F00; }
        .latest-news .row .single-post-item .post-details p {
          font-family: 'GothamBook';
          font-size: 0.875rem;
          line-height: 1.25rem;
          color: #666; }
          @media print, screen and (min-width: 64em) {
            .latest-news .row .single-post-item .post-details p {
              font-size: 1rem;
              line-height: 1.75rem; } }

.google-map-block #map {
  height: 25rem; }
  @media print, screen and (min-width: 48em) {
    .google-map-block #map {
      height: 31.25rem; } }
  @media print, screen and (min-width: 64em) {
    .google-map-block #map {
      height: 100vh; } }

.contact-form-block {
  background: #fff;
  padding: 1.25rem 0.625rem;
  position: relative;
  z-index: 1; }
  @media print, screen and (min-width: 64em) {
    .contact-form-block {
      padding: 6.25rem 0 9.375rem 0; } }
  .contact-form-block .row {
    max-width: 75rem !important;
    margin: 0 auto; }
    .contact-form-block .row .form-details {
      margin-bottom: 3.125rem; }
      .contact-form-block .row .form-details h3 {
        font-family: 'GothamBlack';
        font-size: 1.5rem;
        line-height: 2.25rem;
        text-transform: uppercase;
        color: #6DA234;
        margin: 1.25rem 0; }
        @media print, screen and (min-width: 64em) {
          .contact-form-block .row .form-details h3 {
            font-size: 1.875rem;
            line-height: 2.5rem; } }
      .contact-form-block .row .form-details p {
        font-family: 'GothamBook';
        font-size: 1.125rem;
        line-height: 1.75rem;
        color: #777; }
        @media print, screen and (min-width: 64em) {
          .contact-form-block .row .form-details p {
            font-size: 1.25rem;
            line-height: 1.875rem; } }

body .contact-form-block .the-form .gform_confirmation_wrapper .gform_confirmation_message,
body .contact-form-block .booking-form .gform_confirmation_wrapper .gform_confirmation_message,
body .single-room-wrapper .the-form .gform_confirmation_wrapper .gform_confirmation_message,
body .single-room-wrapper .booking-form .gform_confirmation_wrapper .gform_confirmation_message {
  font-size: 1rem;
  line-height: 1.5rem;
  color: #0a0a0a; }
  @media print, screen and (min-width: 64em) {
    body .contact-form-block .the-form .gform_confirmation_wrapper .gform_confirmation_message,
    body .contact-form-block .booking-form .gform_confirmation_wrapper .gform_confirmation_message,
    body .single-room-wrapper .the-form .gform_confirmation_wrapper .gform_confirmation_message,
    body .single-room-wrapper .booking-form .gform_confirmation_wrapper .gform_confirmation_message {
      font-size: 1.375rem;
      line-height: 2rem; } }

body .contact-form-block .the-form .gform_wrapper form .validation_error,
body .contact-form-block .booking-form .gform_wrapper form .validation_error,
body .single-room-wrapper .the-form .gform_wrapper form .validation_error,
body .single-room-wrapper .booking-form .gform_wrapper form .validation_error {
  border: none;
  text-align: left;
  font-size: 1rem;
  line-height: 1.5rem;
  color: #EE6D76; }
  @media print, screen and (min-width: 64em) {
    body .contact-form-block .the-form .gform_wrapper form .validation_error,
    body .contact-form-block .booking-form .gform_wrapper form .validation_error,
    body .single-room-wrapper .the-form .gform_wrapper form .validation_error,
    body .single-room-wrapper .booking-form .gform_wrapper form .validation_error {
      font-size: 1rem;
      line-height: 1.5rem; } }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error {
  border: none;
  background: none;
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 0; }
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="text"],
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="phone"],
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="email"],
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container textarea,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="text"],
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="phone"],
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="email"],
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container textarea,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="text"],
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="phone"],
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="email"],
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container textarea,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="text"],
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="phone"],
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container input[type="email"],
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield.gfield_error .ginput_container textarea {
    border-color: #EE6D76; }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label {
  font-size: 1rem;
  line-height: 2rem;
  font-family: 'GothamBook';
  color: #001F00; }
  @media print, screen and (min-width: 64em) {
    body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
    body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
    body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label,
    body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label {
      font-size: 1rem;
      line-height: 1.625rem; } }
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label .gfield_required,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label .gfield_required,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label .gfield_required,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_label .gfield_required {
    color: #EE6D76; }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"],
body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"],
body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"],
body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"],
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"],
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"],
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"],
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"],
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"],
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"],
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"],
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"],
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea {
  height: 2.75rem;
  padding: 0.1875rem 0.375rem;
  border: 0.125rem solid #ccc;
  border-radius: 0.1875rem;
  box-shadow: none; }
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"]:focus,
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"]:focus,
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"]:focus,
  body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea:focus,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"]:focus,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"]:focus,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"]:focus,
  body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea:focus,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"]:focus,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"]:focus,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"]:focus,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea:focus,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="text"]:focus,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="phone"]:focus,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container input[type="email"]:focus,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea:focus {
    border-color: #6DA234; }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .ginput_container textarea {
  height: auto; }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description {
  padding-top: 0;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #EE6D76; }
  @media print, screen and (min-width: 64em) {
    body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
    body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
    body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description,
    body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .gfield_description {
      font-size: 0.875rem;
      line-height: 1.25rem; } }

body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions {
  padding-top: 0;
  font-size: 0.875rem;
  line-height: 1.25rem; }
  @media print, screen and (min-width: 64em) {
    body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
    body .contact-form-block .the-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
    body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
    body .contact-form-block .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
    body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
    body .single-room-wrapper .the-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions,
    body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .validation_message,
    body .single-room-wrapper .booking-form .gform_wrapper form .gform_body .gform_fields .gfield .instructions {
      font-size: 0.875rem;
      line-height: 1.25rem; } }

body .contact-form-block .the-form .gform_wrapper form .gform_footer input,
body .contact-form-block .booking-form .gform_wrapper form .gform_footer input,
body .single-room-wrapper .the-form .gform_wrapper form .gform_footer input,
body .single-room-wrapper .booking-form .gform_wrapper form .gform_footer input {
  border-radius: 0.25rem;
  text-align: center;
  font-size: 0.875rem;
  height: 2.75rem;
  line-height: 2.75rem;
  font-family: 'GothamBlack';
  text-transform: uppercase;
  color: #6DA234;
  border: 0.125rem solid #ccc;
  display: block !important;
  padding: 0 1.875rem;
  background: linear-gradient(to left, transparent 50%, #6DA234 50%);
  background-size: 300% 100%;
  background-position: right bottom;
  cursor: pointer;
  transition: background-position 0.6s ease, color  0.5s ease; }
  @media print, screen and (min-width: 48em) {
    body .contact-form-block .the-form .gform_wrapper form .gform_footer input,
    body .contact-form-block .booking-form .gform_wrapper form .gform_footer input,
    body .single-room-wrapper .the-form .gform_wrapper form .gform_footer input,
    body .single-room-wrapper .booking-form .gform_wrapper form .gform_footer input {
      font-size: 1rem;
      display: inline-block;
      width: auto; } }
  body .contact-form-block .the-form .gform_wrapper form .gform_footer input:hover,
  body .contact-form-block .booking-form .gform_wrapper form .gform_footer input:hover,
  body .single-room-wrapper .the-form .gform_wrapper form .gform_footer input:hover,
  body .single-room-wrapper .booking-form .gform_wrapper form .gform_footer input:hover {
    background-position: left bottom;
    color: #fefefe;
    border-color: #6DA234; }

.instagram-feed {
  padding: 0 0 6.25rem;
  position: relative;
  background: #fff; }
  .instagram-feed .instagram_gallery {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    grid-gap: 0; }
    @media print, screen and (min-width: 48em) {
      .instagram-feed .instagram_gallery {
        -ms-grid-columns: (1fr)[3];
            grid-template-columns: repeat(3, 1fr); } }
    @media print, screen and (min-width: 64em) {
      .instagram-feed .instagram_gallery {
        -ms-grid-columns: (1fr)[6];
            grid-template-columns: repeat(6, 1fr); } }
    .instagram-feed .instagram_gallery a img {
      transition: -webkit-filter 0.3s;
      transition: filter 0.3s;
      transition: filter 0.3s, -webkit-filter 0.3s; }
    .instagram-feed .instagram_gallery a:hover img {
      -webkit-filter: grayscale(100%);
      /* Safari 6.0 - 9.0 */
      filter: grayscale(100%); }
    .instagram-feed .instagram_gallery a.view-more {
      background: #52B967;
      text-align: center;
      position: relative;
      color: #fff;
      transition: all 0.3s; }
      .instagram-feed .instagram_gallery a.view-more .icon-container {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
        .instagram-feed .instagram_gallery a.view-more .icon-container i {
          font-size: 5rem;
          display: block;
          margin-bottom: 0.625rem; }
        .instagram-feed .instagram_gallery a.view-more .icon-container span {
          font-family: 'GothamBook';
          font-size: 1rem;
          line-height: 1.5rem; }
      .instagram-feed .instagram_gallery a.view-more:hover {
        background: #333; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fbm9ybWFsaXplLW1peGluLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3NpemUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2xheW91dC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2NoZWNrYm94LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19pbnB1dC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZXJyb3Iuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYXJkLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc2xpZGUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NwaW4uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIl9nbG9iYWwuc2NzcyIsInBsdWdpbnMvX3NsaWNrLnNjc3MiLCJwbHVnaW5zL19zbGljay10aGVtZS5zY3NzIiwiZ2xvYmFsL19mb250cy5zY3NzIiwiZ2xvYmFsL193b3JkcHJlc3Muc2NzcyIsImdsb2JhbC9fY2FsZW5kYXIuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJsYXlvdXQvX2Zvb3Rlci5zY3NzIiwibGF5b3V0L19zaWRlYmFyLnNjc3MiLCJwYWdlcy9fZ2FsbGVyeS1hcmNoaXZlLnNjc3MiLCJwYWdlcy9fcGFnZS13aXRoLXNpZGViYXIuc2NzcyIsInBhZ2VzL19zaW5nbGUtcGFnZS5zY3NzIiwicGFnZXMvX3NpbmdsZS1yb29tLnNjc3MiLCJwYWdlcy9fbG9vcC1yb29tcy5zY3NzIiwiLi4vLi4vLi4vYmxvY2tzL2xhdGVzdC1hY2NvbW1vZGF0aW9ucy9zY3NzL19zdHlsZS5zY3NzIiwiLi4vLi4vLi4vYmxvY2tzL3Rlc3RpbW9uaWFscy1ibG9jay9zY3NzL19zdHlsZS5zY3NzIiwiLi4vLi4vLi4vYmxvY2tzL2xhdGVzdC1uZXdzL3Njc3MvX3N0eWxlLnNjc3MiLCIuLi8uLi8uLi9ibG9ja3MvZ29vZ2xlbWFwLWJsb2NrL3Njc3MvX3N0eWxlLnNjc3MiLCIuLi8uLi8uLi9ibG9ja3MvY29udGFjdC1mb3JtL3Njc3MvX3N0eWxlLnNjc3MiLCIuLi8uLi8uLi9ibG9ja3MvaW5zdGFncmFtLWZlZWQvc2Nzcy9fc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7O0dBS0c7QUN3Q0QsaUVBQWlFO0FBRy9EO29GQUNnRjtBQUVoRjs7Ozs7T0FLRztBQUVIO0VBQ0Usd0JDMUN1QjtFRDBDUyxPQUFPO0VBUXJDLGtCQUFrQjtFQUFFLE9BQU87RUFFN0IsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFBRSxPQUFPLEVBQ3pDOztBQUlEO29GQUNnRjtBQUVoRjs7T0FFRztBQUVIO0VBQ0UsVUFBVSxFQUNYOztBQUVEOztPQUVHO0FBRUg7Ozs7OztFQU1FLGVBQWUsRUFDaEI7O0FBRUQ7OztPQUdHO0FBRUg7RUU5RUYsZUFYaUI7RUZvR1gsaUJBQWlCLEVBRXBCOztBQW9DRDtvRkFDZ0Y7QUF1Q2hGOztPQUVHO0FBRUg7O0VBRUUsZUFBZSxFQUNoQjs7QUFFRDs7T0FFRztBQUVIO0VBS0ksaUJDdkxZLEVEeUxmOztBQUVEOzs7T0FHRztBQUVIO0VBQ0Usd0JBQXdCO0VBQUUsT0FBTztFQUNqQyxVQUFVO0VBQUUsT0FBTztFQUNuQixrQkFBa0I7RUFBRSxPQUFPLEVBQzVCOztBQUVEOztPQUVHO0FBRUg7RUFDRSxlQUFlLEVBQ2hCOztBQWFEOzs7T0FHRztBQUVIO0VBQ0Usa0NBQWtDO0VBQUUsT0FBTztFQUMzQyxlQUFlO0VBQUUsT0FBTyxFQUN6Qjs7QUFJRDtvRkFDZ0Y7QUFFaEY7OztPQUdHO0FBRUg7RUFDRSw4QkFBOEI7RUFBRSxPQUFPO0VBQ3ZDLHNDQUFzQztFQUFFLE9BQU8sRUFDaEQ7O0FBRUQ7OztPQUdHO0FBRUg7O0VBRUUsaUJBQWlCLEVBQ2xCOztBQUlEO29GQUNnRjtBQUVoRjs7O09BR0c7QUFFSDtFQUNFLG9CQUFvQjtFQUFFLE9BQU87RUFDN0IsMkJBQTJCO0VBQUUsT0FBTztFQUNwQyxrQ0FBa0M7RUFBRSxPQUFPLEVBQzVDOztBQUVEOztPQUVHO0FBRUg7O0VBRUUscUJBQXFCLEVBQ3RCOztBQUVEOztPQUVHO0FBRUg7O0VBRUUsb0JBQW9CLEVBQ3JCOztBQUVEOzs7T0FHRztBQUVIOzs7RUFHRSxrQ0FBa0M7RUFBRSxPQUFPO0VBQzNDLGVBQWU7RUFBRSxPQUFPLEVBQ3pCOztBQUVEOztPQUVHO0FBRUg7RUFDRSxtQkFBbUIsRUFDcEI7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLHVCQUF1QjtFQUN2QixZQUFZLEVBQ2I7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7OztPQUdHO0FBRUg7O0VBRUUsZUFBZTtFQUNmLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIseUJBQXlCLEVBQzFCOztBQUVEO0VBQ0UsZ0JBQWdCLEVBQ2pCOztBQUVEO0VBQ0UsWUFBWSxFQUNiOztBQUlEO29GQUNnRjtBQUVoRjs7T0FFRztBQUVIOztFQUVFLHNCQUFzQixFQUN2Qjs7QUFFRDs7T0FFRztBQUVIO0VBQ0UsY0FBYztFQUNkLFVBQVUsRUFDWDs7QUFFRDs7T0FFRztBQUVIO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUVEOztPQUVHO0FBRUg7RUFDRSxpQkFBaUIsRUFDbEI7O0FBSUQ7b0ZBQ2dGO0FBRWhGOzs7T0FHRztBQUVIOzs7OztFQUtFLHdCQ3padUI7RUR5WlMsT0FBTztFQUN2QyxnQkFBZ0I7RUFBRSxPQUFPO0VBS3ZCLGtCQUFrQjtFQUFFLE9BQU87RUFFN0IsVUFBVTtFQUFFLE9BQU8sRUFDcEI7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLGtCQUFrQixFQUNuQjs7QUFFRDs7O09BR0c7QUFFSDs7RUFDUyxPQUFPO0VBQ2QscUJBQXFCLEVBQ3RCOztBQUVEOzs7O09BSUc7QUFFSDs7OztFQUlFLDJCQUEyQjtFQUFFLE9BQU8sRUFDckM7O0FBRUQ7Ozs7RUFLRTs7U0FFRztFQU9IOztTQUVHLEVBS0o7RUFyQkQ7Ozs7SUFVSSxtQkFBbUI7SUFDbkIsV0FBVyxFQUNaO0VBWkg7Ozs7SUFtQkksK0JBQStCLEVBQ2hDOztBQUdIOztPQUVHO0FBRUg7RUFDRSxrQkFBa0IsRUFDbkI7O0FBRUQ7OztPQUdHO0FGM01QOztFRStNTSx1QkFBdUI7RUFBRSxPQUFPO0VBQ2hDLFdBQVc7RUFBRSxPQUFPLEVBQ3JCOztBQUVEOztPQUVHO0FGM01QOztFRStNTSxhQUFhLEVBQ2Q7O0FBRUQ7OztPQUdHO0FGN01QO0VFZ05NLDhCQUE4QjtFQUFFLE9BQU87RUFDdkMscUJBQXFCO0VBQUUsT0FBTztFQUU5Qjs7U0FFRyxFQU1KO0VGbk5IO0lFaU5NLHlCQUF5QixFQUMxQjs7QUFHSDs7O09BR0c7QUFFSDtFQUNFLDJCQUEyQjtFQUFFLE9BQU87RUFDcEMsY0FBYztFQUFFLE9BQU8sRUFDeEI7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLDBCQUEwQjtFQUMxQixjQUFjO0VBQ2QsK0JBQStCLEVBQ2hDOztBQUVEOzs7OztPQUtHO0FBRUg7RUFDRSx1QkFBdUI7RUFBRSxPQUFPO0VBQ2hDLGVBQWU7RUFBRSxPQUFPO0VBQ3hCLGdCQUFnQjtFQUFFLE9BQU87RUFDekIsV0FBVztFQUFFLE9BQU87RUFDcEIsZUFBZTtFQUFFLE9BQU87RUFDeEIsb0JBQW9CO0VBQUUsT0FBTyxFQUM5Qjs7QUFFRDs7O09BR0c7QUFFSDtFQUNFLHNCQUFzQjtFQUFFLE9BQU87RUFDL0IseUJBQXlCO0VBQUUsT0FBTyxFQUNuQzs7QUFFRDs7T0FFRztBQUVIO0VBQ0UsZUFBZSxFQUNoQjs7QUFJRDtvRkFDZ0Y7QUFFaEY7O09BRUc7QUFFSDtFQUNFLGVBQWUsRUFDaEI7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLG1CQUFtQixFQUNwQjs7QUFFRDs7T0FFRztBQUVIO0VBQ0UsZUFBZSxFQXFCaEI7O0FBSUQ7b0ZBQ2dGO0FBRWhGOztPQUVHO0FBRUg7RUFDRSxzQkFBc0IsRUFDdkI7O0FBRUQ7O09BRUc7QUFFSDtFQUNFLGNBQWMsRUFDZjs7QUFJRDtvRkFDZ0Y7QUFFaEY7O09BRUc7QUZ4UFA7RUUyUE0sY0FBYyxFQUNmOztBRzlpQkg7RUFDRSx5RUFBZ0QsRUFDakQ7O0FBRUQ7RUFDRSx1QkFBdUI7RUFDdkIsZ0JDdERtQixFRHVEcEI7O0FBR0Q7OztFQUdFLG9CQUFvQixFQUNyQjs7QUFHRDtFQUNFLFVBQVU7RUFDVixXQUFXO0VBRVgsb0JDdkRXO0VEeURYLG9FQ3REcUU7RUR1RHJFLG9CQ2xEeUI7RURtRHpCLGlCQ3ZFbUI7RUR3RW5CLGVDN0RXO0VEZ0VULG9DQUFvQztFQUNwQyxtQ0FBbUMsRUFFdEM7O0FBRUQ7RUFFRSxzQkFBc0I7RUFDdEIsdUJBQXVCO0VBR3ZCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZ0NBQWdDLEVBQ2pDOztBQUdEO0VBQ0UsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixpQkN6RWEsRUQwRWQ7O0FBR0Q7RUFDRSx1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGlCQ2hGYSxFRGlGZDs7QUFJRDs7Ozs7O0VBS0ksMkJBQTJCLEVBQzVCOztBQUlIO0VBR0UsV0FBVztFQUVYLHlCQUFpQjtLQUFqQixzQkFBaUI7VUFBakIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixpQkN0R2E7RUR1R2Isd0JBQXdCO0VBRXhCLGVBQWUsRUFDaEI7RUwwUkQ7SU85U0UsV0FBVyxFQUNaOztBRnNCRDtFQUNFLGVBQWUsRUFDaEI7O0FBR0Q7RUFDRSwwQkFBMEIsRUFDM0I7O0FBRUQ7RUFDRSx5QkFBeUIsRUFDMUI7O0FHeExEO0VDc0VBLGlCQ1RvQjtFRDFCbEIsbUJBQW1CO0VBQ25CLGtCQUFrQixFRFNuQjtFQTdDRDtJRHdIRSxlQUFlO0lBQ2YsYUFBYTtJQUdYLHNCQUFjO1FBQWQsMkJBQWM7WUFBZCxjQUFjO0lBQ2QsaUJBQVM7UUFBVCxrQkFBUztZQUFULFNBQVMsRUFFWjtFQy9IRDtJRGtJRSxZQUFZLEVBQ2I7RUNuSUQ7SUdMRSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVIY2Y7RUFQTDtJQ3lERSx3QkFGaUI7SUFHakIsdUJBSGlCLEVEckNoQjtJSThHQztNSmhJSjtRQ3lERSx5QkFGaUI7UUFHakIsd0JBSGlCLEVEckNoQixFQUFBO0lJOEdDO01KaElKO1FDeURFLHlCQUZpQjtRQUdqQix3QkFIaUIsRURyQ2hCLEVBQUE7SUFsQkg7TUFlTSxnQkFBZ0I7TUFDaEIsZUFBZSxFQUNoQjtFQWpCTDtJQ3NFQSxnQkFIYSxFRHZDVjtJQTVCSDtNQXlCTSxtQkFBbUI7TUFDbkIsa0JBQWtCLEVBQ25CO0VBM0JMO0lDc0VBLGdCQUhhLEVEbkNWO0VBaENIO0lHTEUsd0JBRmtCO0lBR2xCLHVCQUhrQixFSGdEWDtFQXpDVDtJR0xFLHlCQUZrQjtJQUdsQix3QkFIa0IsRUhnRFg7O0FBT1Q7RUs3REEsWUNlc0I7RUErQnRCLFlUeUN5RDtFTS9FdkQsd0JBRmtCO0VBR2xCLHVCQUhrQixFSCtEbkI7RUl3RUc7SUpoRko7TUdyREUseUJBRmtCO01BR2xCLHdCQUhrQixFSCtEbkIsRUFBQTtFQVJEO0lNUEksYVRrQ3NELEVTakN2RDtFTk1IO0lPMUJFLFlWb0R1RCxFVW5EeEQ7O0FQcUNEO0VBQ0UsWUFBWSxFQUNiOztBQUdEO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCLEVBQ2pCOztBQUtHO0VLeEZKLGdCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGVBSG1CLEVQaUdkOztBQUVEO0VPakdKLG1CQUFtQjtFQUNuQixnQkFIbUIsRVBxR2Q7O0FBTUg7RU85RUosZ0JEaEJzQixFTmdHakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHNCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLFdDZXNCLEVOMkVqQjs7QUFJQztFTzdGSixtQkFBbUI7RUFDbkIsVUFIbUIsRVBpR2Q7O0FBRUQ7RU9qR0osbUJBQW1CO0VBQ25CLFdBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLGlCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLFdDZXNCLEVOMkVqQjs7QUFJQztFTzdGSixtQkFBbUI7RUFDbkIsVUFIbUIsRVBpR2Q7O0FBRUQ7RU9qR0osbUJBQW1CO0VBQ25CLFdBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLGlCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLFdDZXNCLEVOMkVqQjs7QUFJQztFTzdGSixtQkFBbUI7RUFDbkIsVUFIbUIsRVBpR2Q7O0FBRUQ7RU9qR0osbUJBQW1CO0VBQ25CLFdBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLGlCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLGlCQ2VzQixFTjJFakI7O0FBSUM7RU83RkosbUJBQW1CO0VBQ25CLGdCQUhtQixFUGlHZDs7QUFFRDtFT2pHSixtQkFBbUI7RUFDbkIsaUJBSG1CLEVQcUdkOztBQU1IO0VPOUVKLHVCRGJzQixFTjZGakI7O0FBcEJEO0VLeEZKLFlDZXNCLEVOMkVqQjs7QUFnQkQ7RU85RUosdUJEYnNCLEVONkZqQjs7QUFLRDtFUXpHRixZWCtFdUQ7RVc5RXZELFlBQWlCLEVBaUNsQjtFUnVFRztJUWpGQSxZQUFZLEVBQ2I7RVJnRkM7SVE3RUEsWUFBWSxFQUNiO0VSNEVDO0lRekVBLFlYK0NxRCxFVzlDdEQ7O0FSd0VDO0VRekdGLFlYK0V1RDtFVzlFdkQsV0FBaUIsRUFpQ2xCO0VSdUVHO0lRakZBLFlBQVksRUFDYjtFUmdGQztJUTdFQSxZQUFZLEVBQ2I7RVI0RUM7SVF6RUEsWVgrQ3FELEVXOUN0RDs7QVJ3RUM7RVF6R0YsWVgrRXVEO0VXOUV2RCxpQkFBaUIsRUFpQ2xCO0VSdUVHO0lRakZBLFlBQVksRUFDYjtFUmdGQztJUTdFQSxZQUFZLEVBQ2I7RVI0RUM7SVF6RUEsWVgrQ3FELEVXOUN0RDs7QVJ3RUM7RVF6R0YsWVgrRXVEO0VXOUV2RCxXQUFpQixFQWlDbEI7RVJ1RUc7SVFqRkEsWUFBWSxFQUNiO0VSZ0ZDO0lRN0VBLFlBQVksRUFDYjtFUjRFQztJUXpFQSxZWCtDcUQsRVc5Q3REOztBUndFQztFUXpHRixZWCtFdUQ7RVc5RXZELFdBQWlCLEVBaUNsQjtFUnVFRztJUWpGQSxZQUFZLEVBQ2I7RVJnRkM7SVE3RUEsWUFBWSxFQUNiO0VSNEVDO0lRekVBLFlYK0NxRCxFVzlDdEQ7O0FSd0VDO0VRekdGLFlYK0V1RDtFVzlFdkQsaUJBQWlCLEVBaUNsQjtFUnVFRztJUWpGQSxZQUFZLEVBQ2I7RVJnRkM7SVE3RUEsWUFBWSxFQUNiO0VSNEVDO0lRekVBLFlYK0NxRCxFVzlDdEQ7O0FSd0VDO0VRekdGLFlYK0V1RDtFVzlFdkQsaUJBQWlCLEVBaUNsQjtFUnVFRztJUWpGQSxZQUFZLEVBQ2I7RVJnRkM7SVE3RUEsWUFBWSxFQUNiO0VSNEVDO0lRekVBLFlYK0NxRCxFVzlDdEQ7O0FSd0VDO0VRekdGLFlYK0V1RDtFVzlFdkQsYUFBaUIsRUFpQ2xCO0VSdUVHO0lRakZBLFlBQVksRUFDYjtFUmdGQztJUTdFQSxZQUFZLEVBQ2I7RVI0RUM7SVF6RUEsWVgrQ3FELEVXOUN0RDs7QVI4RUQ7RUcvR0EsaUJBRmtCO0VBR2xCLGdCQUhrQixFSGtIZ0I7O0FBRGxDO0VBSUksZ0JBQWdCO0VBQ2hCLGVBQWUsRUFDaEI7O0FBR0g7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZSxFQUNoQjs7QUFFRDtFRzdIQSx3QkFGa0I7RUFHbEIsdUJBSGtCLEVIZ0l5Qjs7QUFJM0M7RU9qSUEsbUJBQW1CO0VBQ25CLGtCQUFrQixFUGtJakI7RUFGRDtJT3BJRSxZQUFZO0lBQ1osWUFBWSxFQUNiOztBUHVJRDs7O0VPNUhGLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGVBQWUsRVAySFo7O0FJSkM7RUpyREE7SUt4RkosZ0JDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixlQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixnQkRoQnNCLEVOZ0dqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixzQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFdDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixVQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixXQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosaUJDZXNCLEVOMkVqQjtFQUlDO0lPN0ZKLG1CQUFtQjtJQUNuQixnQkFIbUIsRVBpR2Q7RUFFRDtJT2pHSixtQkFBbUI7SUFDbkIsaUJBSG1CLEVQcUdkO0VBTUg7SU85RUosaUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSix1QkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLFlDZXNCLEVOMkVqQjtFQWdCRDtJTzlFSix1QkRic0IsRU42RmpCO0VBS0Q7SVF6R0YsWVgrRXVEO0lXOUV2RCxZQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVgrQ3FELEVXOUN0RDtFUndFQztJUXpHRixZWCtFdUQ7SVc5RXZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVgrQ3FELEVXOUN0RDtFUndFQztJUXpHRixZWCtFdUQ7SVc5RXZELFdBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlYK0NxRCxFVzlDdEQ7RVJ3RUM7SVF6R0YsWVgrRXVEO0lXOUV2RCxpQkFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVgrQ3FELEVXOUN0RDtFUndFQztJUXpHRixZWCtFdUQ7SVc5RXZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsYUFBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVgrQ3FELEVXOUN0RDtFUjhFRDtJRy9HQSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVIa0hnQjtFQURsQztJQUlJLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2hCO0VBR0g7SUFDRSxnQkFBZ0I7SUFDaEIsZUFBZSxFQUNoQjtFQUVEO0lHN0hBLHlCQUZrQjtJQUdsQix3QkFIa0IsRUhnSXlCO0VBSTNDO0lPaklBLG1CQUFtQjtJQUNuQixrQkFBa0IsRVBrSWpCO0lBRkQ7TU9wSUUsWUFBWTtNQUNaLFlBQVksRUFDYjtFUHVJRDs7O0lPNUhGLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGVBQWUsRVAySFosRUFBQTs7QUlKQztFSnJEQTtJS3hGSixnQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGVBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLGdCQUhtQixFUHFHZDtFQU1IO0lPOUVKLGdCRGhCc0IsRU5nR2pCO0VBcEJEO0lLeEZKLGlCQ2VzQixFTjJFakI7RUFJQztJTzdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFUHFHZDtFQU1IO0lPOUVKLHNCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosV0Nlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVQcUdkO0VBTUg7SU85RUosdUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixpQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLGlCQ2VzQixFTjJFakI7RUFJQztJTzdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosV0Nlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVQcUdkO0VBTUg7SU85RUosdUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixpQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLGlCQ2VzQixFTjJFakI7RUFJQztJTzdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosV0Nlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLFVBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLFdBSG1CLEVQcUdkO0VBTUg7SU85RUosdUJEYnNCLEVONkZqQjtFQXBCRDtJS3hGSixpQkNlc0IsRU4yRWpCO0VBSUM7SU83RkosbUJBQW1CO0lBQ25CLGdCQUhtQixFUGlHZDtFQUVEO0lPakdKLG1CQUFtQjtJQUNuQixpQkFIbUIsRVBxR2Q7RUFNSDtJTzlFSixpQkRic0IsRU42RmpCO0VBcEJEO0lLeEZKLGlCQ2VzQixFTjJFakI7RUFJQztJTzdGSixtQkFBbUI7SUFDbkIsZ0JBSG1CLEVQaUdkO0VBRUQ7SU9qR0osbUJBQW1CO0lBQ25CLGlCQUhtQixFUHFHZDtFQU1IO0lPOUVKLHVCRGJzQixFTjZGakI7RUFwQkQ7SUt4RkosWUNlc0IsRU4yRWpCO0VBZ0JEO0lPOUVKLHVCRGJzQixFTjZGakI7RUFLRDtJUXpHRixZWCtFdUQ7SVc5RXZELFlBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlYK0NxRCxFVzlDdEQ7RVJ3RUM7SVF6R0YsWVgrRXVEO0lXOUV2RCxXQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsaUJBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlYK0NxRCxFVzlDdEQ7RVJ3RUM7SVF6R0YsWVgrRXVEO0lXOUV2RCxXQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsV0FBaUIsRUFpQ2xCO0lSdUVHO01RakZBLFlBQVksRUFDYjtJUmdGQztNUTdFQSxZQUFZLEVBQ2I7SVI0RUM7TVF6RUEsWVgrQ3FELEVXOUN0RDtFUndFQztJUXpHRixZWCtFdUQ7SVc5RXZELGlCQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSd0VDO0lRekdGLFlYK0V1RDtJVzlFdkQsaUJBQWlCLEVBaUNsQjtJUnVFRztNUWpGQSxZQUFZLEVBQ2I7SVJnRkM7TVE3RUEsWUFBWSxFQUNiO0lSNEVDO01RekVBLFlYK0NxRCxFVzlDdEQ7RVJ3RUM7SVF6R0YsWVgrRXVEO0lXOUV2RCxhQUFpQixFQWlDbEI7SVJ1RUc7TVFqRkEsWUFBWSxFQUNiO0lSZ0ZDO01RN0VBLFlBQVksRUFDYjtJUjRFQztNUXpFQSxZWCtDcUQsRVc5Q3REO0VSOEVEO0lHL0dBLGlCQUZrQjtJQUdsQixnQkFIa0IsRUhrSGdCO0VBRGxDO0lBSUksZ0JBQWdCO0lBQ2hCLGVBQWUsRUFDaEI7RUFHSDtJQUNFLGdCQUFnQjtJQUNoQixlQUFlLEVBQ2hCO0VBRUQ7SUc3SEEseUJBRmtCO0lBR2xCLHdCQUhrQixFSGdJeUI7RUFJM0M7SU9qSUEsbUJBQW1CO0lBQ25CLGtCQUFrQixFUGtJakI7SUFGRDtNT3BJRSxZQUFZO01BQ1osWUFBWSxFQUNiO0VQdUlEOzs7SU81SEYsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZSxFUDJIWixFQUFBOztBQUlIO0VHeEZFLHVCRGFrQixFRjZFbkI7RUd4Rkc7SUFDQSxpQkFBaUIsRUFDbEI7RUM0RUM7SUpRSjtNR3hGRSx3QkRha0IsRUY2RW5CO01HeEZHO1FBQ0EsaUJBQWlCLEVBQ2xCLEVBQUE7O0FNZ0xIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFLFVBQVU7RUFDVixXQUFXLEVBQ1o7O0FBR0Q7RUFDRSxvQlh2SDBCO0VXeUgxQixtQkFBbUI7RUFDbkIsaUJYM0hzQjtFVzRIdEIsbUNYMUh5QyxFVzJIMUM7O0FBR0Q7O0VBRUUsbUJBQW1CO0VBQ25CLHFCQUFxQixFQUN0Qjs7QUFHRDs7RUFFRSxrQlgvTXFCO0VXZ05yQixxQkFBcUIsRUFDdEI7O0FBR0Q7RUFDRSxlWGpKaUI7RVdrSmpCLHFCQUFxQixFQUN0Qjs7QUFHRDs7Ozs7O0VBTUUsb0VYdE9xRTtFV3VPckUsbUJYckxzQjtFV3NMdEIsb0JYbk95QjtFV29PekIsZVhyTGtCO0VXc0xsQixtQ1hqS3NDLEVXdUt2QztFQWhCRDs7Ozs7O0lBYUksZUFBZTtJQUNmLGVYcFBlLEVXcVBoQjs7QUFRRztFQUlJLGtCUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBQWpDRDtFQUlJLG1CUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBQWpDRDtFQUlJLHFCUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBQWpDRDtFQUlJLG9CUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBQWpDRDtFQUlJLHFCUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBQWpDRDtFQUlJLGdCUHZQVTtFT21RVixpQlhsTlc7RVcwTlgsY0FBYztFQU9kLHNCWGhPaUIsRVdrT3BCOztBTGpOSDtFS2dMRTtJQUlJLGdCUHZQVSxFT29SYjtFQWpDRDtJQUlJLGtCUHZQVSxFT29SYjtFQWpDRDtJQUlJLHFCUHZQVSxFT29SYjtFQWpDRDtJQUlJLHFCUHZQVSxFT29SYjtFQWpDRDtJQUlJLG1CUHZQVSxFT29SYjtFQWpDRDtJQUlJLGdCUHZQVSxFT29SYixFQUFBOztBQU1QO0VBQ0UscUJBQXFCO0VBQ3JCLGVYN1NjO0VXOFNkLHNCWDFNeUI7RVc0TXpCLGdCQUFnQixFQWFqQjtFQWxCRDtJQVNJLGVYak4wQixFV3FOM0I7RUFiSDtJQWdCSSxVQUFVLEVBQ1g7O0FBSUg7RUFDRSxZQUFZO0VBRVosaUJQbFRrQjtFT21UbEIsVUFBVTtFQUNWLHFCWDdOeUI7RVcrTnpCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsaUNYbFVpQjtFV21VakIsZUFBZSxFQUNoQjs7QUFHRDs7O0VBR0Usb0JYdlAwQjtFV3dQMUIsNkJYdE95QjtFV3VPekIsaUJYMVBzQixFVzJQdkI7O0FBR0Q7RUFDRSxtQkFBbUIsRUFDcEI7O0FBR0Q7RUFDRSxxQlhoUHNCO0VXaVB0QixzQlhuUGtCLEVXb1BuQjs7QUFHRDtFQUNFLHFCWHRQc0IsRVd1UHZCOztBQUdEO0VBRUkscUJYM1AyQjtFVzRQM0IsaUJBQWlCLEVBQ2xCOztBQUlIO0VBQ0Usb0JYalF5QixFV3VRMUI7RUFQRDtJQUlJLHNCWGxROEI7SVdtUTlCLGtCWGpXbUIsRVdrV3BCOztBQUlIO0VBQ0UsaUJYaFMwQjtFV2lTMUIsdUNQMVdrQjtFTzJXbEIsK0JYclhpQixFVzJYbEI7RUFURDtJQU1JLGlCWHRTb0I7SVd1U3BCLGVYeFhhLEVXeVhkOztBQUlIO0VBQ0UsZUFBZTtFQUNmLHFCUHRYa0I7RU91WGxCLGVYaFllLEVXcVloQjtFQVJEO0lBTUksY1hwUmdCLEVBQWE7O0FXeVJqQztFQUNFLGtDWHhZVztFV3lZWCxlWHpZVztFVzBZWCxhQUFhLEVBQ2Q7O0FBR0Q7RUFDRSxVQUFVLEVBQ1g7O0FBR0Q7RUFDRSxzQ1A1WWtCO0VPOFlsQiwwQlh4WmlCO0VXeVpqQiwwQlgxWmdCO0VXNFpoQiw2RFhsV21FO0VXbVduRSxvQlhqWnlCO0VXa1p6QixlWDNaVyxFVzRaWjs7QUFHRDtFQUNFLFVBQVU7RUFDViw0QlBwWlM7RU9zWlQsMEJYdGFnQjtFV3dhaEIsNkRYOVdtRTtFVytXbkUsZVh0YVcsRVcyYVo7O0FDNWNEO0VBQ0UsbUJaOEp5QjtFWTdKekIsc0JaOEo0QjtFWTVKNUIsb0Jac0N5QjtF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QXdDO0VBQXhDLDJEQUF3QztFQUcxQyxvQ0FBNEI7VUFBNUIsNEJBQTRCLEVDUjNCOztBSk5IO0VFb0NFLHFDQUZpQjtNQUVqQixpQ0FGaUI7VUFFakIsNkJBRmlCLEVFaEJoQjs7QUpqQkg7RUFmQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VDdkJmLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0FKTEg7RUVtQ0UscUNBRmlCO01BRWpCLGlDQUZpQjtVQUVqQiw2QkFGaUIsRUVoQmhCOztBSmRIO0VBbEJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsV0ZoQ2tDO0VLQWxDLDZCQUE2QixFREU1Qjs7QUpGSDtFRWdDRSxXRmhDcUMsRUljcEM7O0FKYkg7RUFuQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixXRi9Ca0M7RUtEbEMsNkJBQTZCLEVERTVCOztBSkRIO0VFK0JFLFdGL0JxQyxFSWFwQzs7QUpWSDtFQXRCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUpxQ1osOEJBRmlCO01BRWpCLDBCQUZpQjtVQUVqQixzQkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKRUg7RUU0QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpUSDtFQXZCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUpvQ2QsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKR0g7RUUyQkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpSSDtFQXhCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHNESW5DZTtVSm1DZiw4Q0luQ2U7RUptQ2YsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKSUg7RUUwQkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpQSDtFQXpCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHNESWxDYTtVSmtDYiw4Q0lsQ2E7RUprQ2IsK0JBRmlCO01BRWpCLDJCQUZpQjtVQUVqQix1QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKS0g7RUV5QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpOSDtFQTFCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVESXJDWTtVSnFDWiwrQ0lyQ1k7RUpxQ1osaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKTUg7RUV3QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpMSDtFQTNCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHVESXBDYztVSm9DZCwrQ0lwQ2M7RUpvQ2QsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKT0g7RUV1QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpKSDtFQTVCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsOEJBRmlCO01BRWpCLDBCQUZpQjtVQUVqQixzQkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKUUg7RUVzQkUsdURJckNZO1VKcUNaLCtDSXJDWTtFQ3VCVixXQUE4QixFSEovQjs7QUpISDtFQTdCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsZ0NBRmlCO01BRWpCLDRCQUZpQjtVQUVqQix3QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKU0g7RUVxQkUsdURJcENjO1VKb0NkLCtDSXBDYztFQ3NCWixXQUE4QixFSEovQjs7QUpGSDtFQTlCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKVUg7RUVvQkUsc0RJbkNlO1VKbUNmLDhDSW5DZTtFQ3FCYixXQUE4QixFSEovQjs7QUpESDtFQS9CQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsK0JBRmlCO01BRWpCLDJCQUZpQjtVQUVqQix1QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKV0g7RUVtQkUsc0RJbENhO1VKa0NiLDhDSWxDYTtFQ29CWCxXQUE4QixFSEovQjs7QUpBSDtFQWhDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLG9ESVJ3QztVSlF4Qyw0Q0lSd0M7RUpReEMsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUt2QmYsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKWUg7RUVrQkUsdURJckNZO1VKcUNaLCtDSXJDWTtF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QVFJLDRCQUFvQztJQUNwQyxlQUFlLEVBOEVoQjtJQXZGSDtNQVdNLG1CQUFrQixFQWNuQjtNQXpCTDtRYitCRSwyQkFBMkI7UWFqQnJCLGtCbEYwRWM7UWtGekVkLHFCbEZ5RWM7UWtGeEVkLDBCQUF5QjtRQUN6QixlQUFjO1FBQ2Qsa0JsRjJFSyxFa0ZyRU47UWhGbUlEO1VnRjNKTjtZQW9CVSxrQmxGb0VZO1lrRm5FWixzQmxGbUVZO1lrRmxFWixpQmxGdUVHLEVrRnJFTixFQUFBO0lBeEJQO01BMkJNLG9CQUFtQjtNQUNuQixxQkFBb0I7TUFDcEIsd0JsRjJEZ0IsRWtGRmpCO01BdEZMO1FBK0JRLG9CQUFtQixFQVNwQjtRQXhDUDs7OztVQXFDWSxZQUFXLEVBQ1o7TUF0Q1g7UUEyQ1UsbUJsRjZDWTtRa0Y1Q1osWUFBVztRQUNYLGtCQUFpQixFQUNsQjtNQTlDVDtRQWlEUSwwQmxGdUNjO1FrRnRDZCxtQkFBa0IsRUFtQ25CO1FBckZQO1ViK0JFLDJCQUEyQjtVYXNCbkIsb0JsRm1DWTtVa0ZsQ1osb0JsRmtDWTtVa0ZqQ1osWUFBVztVQUNYLDBCQUF5QixFQUsxQjtVaEY4Rkg7WWdGM0pOO2NBMERZLGdCbEY4QlU7Y2tGN0JWLHFCbEY2QlUsRWtGM0JiLEVBQUE7UUE3RFQ7VWIrQkUsMkJBQTJCO1VhaUNuQixtQmxGd0JZO1VrRnZCWixzQmxGdUJZO1VrRnRCWiwwQkFBeUIsRUFRMUI7VWhGaUZIO1lnRjNKTjtjQW9FWSxvQmxGb0JVO2NrRm5CVixzQmxGbUJVLEVrRmRiLEVBQUE7VUExRVQ7WUF3RVksZUFBYyxFQUNmO1FBekVYO1VibUNFLDBCQUEwQjtVYTBDbEIsb0JsRldZO1VrRlZaLHFCbEZVWTtVa0ZUWixZQUFXLEVBS1o7VWhGdUVIO1lnRjNKTjtjQWlGWSxnQmxGT1U7Y2tGTlYscUJsRk1VLEVrRkpiLEVBQUE7O0FDcEZUO0VBRUksY25Gc0ZrQixFbUYvRW5CO0VqRmtKRztJaUYzSk47TUFJTSxpQm5Gb0ZnQixFbUYvRW5CLEVBQUE7RWpGa0pHO0lpRjNKTjtNQU9NLGNBQWEsRUFF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REQ7SUFNSSxrQkFBYTtJQUFiLGNBQWE7SUFDYiwyQkFBNkI7UUFBN0Isc0NBQTZCO0lBQzdCLFlBQVcsRUE0Q1o7SW5GdUdHO01tRjNKTjtRQVVNLDJCQUE2QjtZQUE3QixzQ0FBNkIsRUEwQ2hDLEVBQUE7SW5GdUdHO01tRjNKTjtRQWFNLDJCQUE2QjtZQUE3QixzQ0FBNkIsRUF1Q2hDLEVBQUE7SUFwREg7TUFpQlEsZ0NBQXVCO01BQXZCLHdCQUF1QjtNQUF2Qiw2Q0FBdUIsRUFDeEI7SUFsQlA7TUFxQlUsZ0NBQXlCO01BQVEsc0JBQXNCO01BQ3ZELHdCQUFpQixFQUNsQjtJQXZCVDtNQTBCUSxvQkFBbUI7TUFDbkIsbUJBQWtCO01BQ2xCLG1CQUFrQjtNQUNsQixZQUFXO01BQ1gscUJBQW9CLEVBb0JyQjtNQWxEUDtRQWdDVSxtQkFBa0I7UUFDbEIsU0FBUTtRQUNSLFVBQVM7UUFDVCx5Q0FBbUI7WUFBbkIscUNBQW1CO2dCQUFuQixpQ0FBbUIsRUFXcEI7UUE5Q1Q7VUFxQ1ksZ0JyRm1EVTtVcUZsRFYsZUFBYztVQUNkLHdCckZpRFUsRXFGaERYO1FBeENYO1VoQm1DRSwwQkFBMEI7VWdCUWhCLGdCckY2Q1U7VXFGNUNWLG9CckY0Q1UsRXFGM0NYO01BN0NYO1FBZ0RVLGlCQUFnQixFQUNqQiIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMy4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLyohIG5vcm1hbGl6ZS1zY3NzIHwgTUlUL0dQTHYyIExpY2Vuc2UgfCBiaXQubHkvbm9ybWFsaXplLXNjc3MgKi9cbi8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDMgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICAgICAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gICAgICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qIExpbmtzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgICAgKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gICAgICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0cztcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogaW5oZXJpdDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAgICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7IH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovIH1cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cbiAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi8gfVxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICAgICAgICovIH1cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAgICAgKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJm1lZGl1bT00OGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbmltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLm1hcF9jYW52YXMgaW1nLFxuLm1hcF9jYW52YXMgZW1iZWQsXG4ubWFwX2NhbnZhcyBvYmplY3QsXG4ubXFhLWRpc3BsYXkgaW1nLFxuLm1xYS1kaXNwbGF5IGVtYmVkLFxuLm1xYS1kaXNwbGF5IG9iamVjdCB7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnJvdyB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnJvdzo6YmVmb3JlLCAucm93OjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnJvdzo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfSB9XG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3cuZXhwYW5kZWQge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAgIC5yb3cuZXhwYW5kZWQgLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAucm93Om5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAucm93Lmd1dHRlci1zbWFsbCA+IC5jb2x1bW4sIC5yb3cuZ3V0dGVyLXNtYWxsID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbiwgLnJvdy5ndXR0ZXItbWVkaXVtID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfSB9XG4gIC5jb2x1bW46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSwgLmNvbHVtbnM6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5jb2x1bW4uZW5kOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCwgLmVuZC5jb2x1bW5zOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtMSB7XG4gIHdpZHRoOiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC0xIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXB1bGwtMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTE2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1wdXNoLTMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uc21hbGwtcHVsbC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC00IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICB3aWR0aDogNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC01IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNDEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1wdXNoLTYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTsgfVxuXG4uc21hbGwtcHVsbC02IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1wdXNoLTcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtcHVsbC03IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICB3aWR0aDogNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1wdXNoLTgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtcHVsbC04IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNjYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1wdXNoLTkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtcHVsbC05IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtcHVzaC0xMCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1wdWxsLTEwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtODMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cblxuLnNtYWxsLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtcHVzaC0xMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1wdWxsLTExIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKzEpLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTIgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDNuKzEpLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDNuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTMgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDRuKzEpLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDRuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDIwJTsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTUgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDZuKzEpLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDZuKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTYgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgY2xlYXI6IG5vbmU7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDduKzEpLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDduKzEpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLnNtYWxsLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4uc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEyLjUlOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAuc21hbGwtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5zbWFsbC11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG5cbi5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi5zbWFsbC1jb2xsYXBzZSAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZXhwYW5kZWQucm93IC5zbWFsbC1jb2xsYXBzZS5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG5cbi5zbWFsbC1jZW50ZXJlZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLnNtYWxsLWNlbnRlcmVkLCAuc21hbGwtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnNtYWxsLXVuY2VudGVyZWQsXG4uc21hbGwtcHVzaC0wLFxuLnNtYWxsLXB1bGwtMCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLXB1bGwtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0yNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLXB1bGwtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC01MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdXNoLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1wdWxsLTcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVzaC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLXB1bGwtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC03NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tcHVzaC0xMCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLXB1bGwtMTAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAtODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXB1c2gtMTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0xID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbisxKSwgLm1lZGl1bS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgybisxKSwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoM24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg0bisxKSwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTQgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg1bisxKSwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNm4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg3bisxKSwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubWVkaXVtLXVwLTcgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMi41JTsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubWVkaXVtLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDhuKzEpLCAubWVkaXVtLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSg4bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubWVkaXVtLWNvbGxhcHNlIC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZXhwYW5kZWQucm93IC5tZWRpdW0tY29sbGFwc2Uucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLm1lZGl1bS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTsgfVxuICAubWVkaXVtLWNlbnRlcmVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubWVkaXVtLWNlbnRlcmVkLCAubWVkaXVtLWNlbnRlcmVkOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAubWVkaXVtLXVuY2VudGVyZWQsXG4gIC5tZWRpdW0tcHVzaC0wLFxuICAubWVkaXVtLXB1bGwtMCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC0xIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTguMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXB1bGwtMiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC0xNi42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXB1c2gtMyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDI1JTsgfVxuICAubGFyZ2UtcHVsbC0zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC00IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTMzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtNSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC01IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTQxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXB1c2gtNiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDUwJTsgfVxuICAubGFyZ2UtcHVsbC02IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLXB1c2gtNyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtcHVsbC03IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTU4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLXB1c2gtOCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubGFyZ2UtcHVsbC04IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTY2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLXB1c2gtOSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtcHVsbC05IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdXNoLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1wdWxsLTEwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTgzLjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdXNoLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1wdWxsLTExIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTkxLjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmxhcmdlLXVwLTEgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSksIC5sYXJnZS11cC0xID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTEgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOm50aC1vZi10eXBlKDJuKzEpLCAubGFyZ2UtdXAtMiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDJuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTIgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC0yID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpudGgtb2YtdHlwZSgzbisxKSwgLmxhcmdlLXVwLTMgPiAuY29sdW1uczpudGgtb2YtdHlwZSgzbisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtMyA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMjUlOyB9XG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoNG4rMSksIC5sYXJnZS11cC00ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoNG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTQgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbjpudGgtb2YtdHlwZSgxbiksIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoMW4pIHtcbiAgICAgIGNsZWFyOiBub25lOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOm50aC1vZi10eXBlKDVuKzEpLCAubGFyZ2UtdXAtNSA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDVuKzEpIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLmxhcmdlLXVwLTUgPiAuY29sdW1uOmxhc3QtY2hpbGQsIC5sYXJnZS11cC01ID4gLmNvbHVtbnM6bGFzdC1jaGlsZCB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW46bnRoLW9mLXR5cGUoMW4pLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOm50aC1vZi10eXBlKDFuKSB7XG4gICAgICBjbGVhcjogbm9uZTsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpudGgtb2YtdHlwZSg2bisxKSwgLmxhcmdlLXVwLTYgPiAuY29sdW1uczpudGgtb2YtdHlwZSg2bisxKSB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbjpsYXN0LWNoaWxkLCAubGFyZ2UtdXAtNiA+IC5jb2x1bW5zOmxhc3QtY2hpbGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmxhcmdlLXVwLTcgPiAuY29sdW1uLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bnRoLW9mLXR5cGUoN24rMSksIC5sYXJnZS11cC03ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoN24rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtNyA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTcgPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEyLjUlOyB9XG4gICAgLmxhcmdlLXVwLTggPiAuY29sdW1uOm50aC1vZi10eXBlKDFuKSwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bnRoLW9mLXR5cGUoOG4rMSksIC5sYXJnZS11cC04ID4gLmNvbHVtbnM6bnRoLW9mLXR5cGUoOG4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAubGFyZ2UtdXAtOCA+IC5jb2x1bW46bGFzdC1jaGlsZCwgLmxhcmdlLXVwLTggPiAuY29sdW1uczpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAubGFyZ2UtY29sbGFwc2UgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5leHBhbmRlZC5yb3cgLmxhcmdlLWNvbGxhcHNlLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG4gIC5sYXJnZS1jZW50ZXJlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgLmxhcmdlLWNlbnRlcmVkLCAubGFyZ2UtY2VudGVyZWQ6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5sYXJnZS11bmNlbnRlcmVkLFxuICAubGFyZ2UtcHVzaC0wLFxuICAubGFyZ2UtcHVsbC0wIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfSB9XG5cbi5jb2x1bW4tYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb2x1bW4tYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgICAgIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnAge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuZW0sXG5pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogI2NhY2FjYTsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4xODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuaDUge1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICBoMiB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS45Mzc1cmVtOyB9XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuNTYyNXJlbTsgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIGg2IHtcbiAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjMTc3OWJhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzE0NjhhMDsgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiAwOyB9XG5cbmhyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAxLjI1cmVtIGF1dG87XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxubGkge1xuICBmb250LXNpemU6IGluaGVyaXQ7IH1cblxudWwge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxudWwgdWwsIG9sIHVsLCB1bCBvbCwgb2wgb2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgZGwgZHQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTsgfVxuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuY2l0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgY29sb3I6ICM4YThhOGE7IH1cbiAgY2l0ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbmFiYnIge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbmNvZGUge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxua2JkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uc3ViaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjOGE4YThhOyB9XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi5zdGF0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIHAgKyAuc3RhdCB7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxuLm5vLWJ1bGxldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDAuODVlbSAxZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ2NzllO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24udGlueSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24ubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEyNjE5NTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZTVlNWU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhNTNiMmE7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE3NzliYTtcbiAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgIC5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGMzZDVkO1xuICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNzc5YmE7XG4gICAgICBjb2xvcjogIzE3NzliYTsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzBjM2Q1ZDtcbiAgICAgICAgY29sb3I6ICMwYzNkNWQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc2NzY3NjtcbiAgICAgIGNvbG9yOiAjNzY3Njc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNiM2IzYjtcbiAgICAgICAgY29sb3I6ICMzYjNiM2I7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5hbGVydCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2M0YjM3O1xuICAgICAgY29sb3I6ICNjYzRiMzc7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzY3MjUxYTtcbiAgICAgICAgY29sb3I6ICM2NzI1MWE7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQsIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF06Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3NzliYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3NzliYTtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5IHtcbiAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAuYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NjtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3Mge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZyB7XG4gICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi5kaXNhYmxlZC5hbGVydCwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQge1xuICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgIC5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC40ZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5wcmltYXJ5OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzE3NzliYTsgfVxuICAuYnV0dG9uLmRyb3Bkb3duLmhvbGxvdy5zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzY3Njc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LnN1Y2Nlc3M6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93Lndhcm5pbmc6OmFmdGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZhZTAwOyB9XG4gIC5idXR0b24uZHJvcGRvd24uaG9sbG93LmFsZXJ0OjphZnRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2NjNGIzNzsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICB0b3A6IC0wLjFlbTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMTAsIDEwLCAxMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2NhY2FjYTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhOyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuW3R5cGU9J2ZpbGUnXSxcblt0eXBlPSdjaGVja2JveCddLFxuW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cblt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWxbZm9yXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuW3R5cGU9J2ZpbGUnXSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6ICMwYTBhMGE7IH1cbiAgbGFiZWwubWlkZGxlIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNTYyNXJlbSAwOyB9XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgLmlucHV0LWdyb3VwID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpsYXN0LWNoaWxkID4gKiB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gIC5pbnB1dC1ncm91cC1sYWJlbDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDAgMCBhdXRvOyB9XG4gIC5pbnB1dC1ncm91cC1idXR0b24gYSxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4gIC5pbnB1dC1ncm91cC1idXR0b24gbGFiZWwge1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5maWVsZHNldCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTsgfVxuICAuZmllbGRzZXQgbGVnZW5kIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTsgfSB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAjY2FjYWNhO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIHNlbGVjdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gIHNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBzZWxlY3RbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2NjNGIzNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZWNlYTsgfVxuICAuaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjY2M0YjM3OyB9XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNjYzRiMzc7IH1cblxuLmZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2NjNGIzNzsgfVxuICAuZm9ybS1lcnJvci5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYWNjb3JkaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24taXRlbTpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5hY2NvcmRpb24tdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxLjI1cmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMTc3OWJhOyB9XG4gIDpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKSA+IC5hY2NvcmRpb24tdGl0bGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmFjY29yZGlvbi10aXRsZTpob3ZlciwgLmFjY29yZGlvbi10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMXJlbTtcbiAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcrJzsgfVxuICAuaXMtYWN0aXZlID4gLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFwyMDEzJzsgfVxuXG4uYWNjb3JkaW9uLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICA6bGFzdC1jaGlsZCA+IC5hY2NvcmRpb24tY29udGVudDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICByaWdodDogMXJlbTsgfVxuXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMi4xZW07XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjMTc3OWJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Njc2NzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5icmVhZGNydW1icyB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuYnJlYWRjcnVtYnM6OmJlZm9yZSwgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgY29sb3I6ICNjYWNhY2E7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjYWNhY2E7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgICAuYnV0dG9uLWdyb3VwIC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24ge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAubGFyZ2UgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI2MTk1O1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC5zZWNvbmRhcnkgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU1ZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gICAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICAgICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E1M2IyYTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc3RhY2tlZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24ge1xuICAgICAgZmxleDogMCAwIDEwMCU7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbC5leHBhbmRlZCAuYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG5cbi5jYWxsb3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuY2FsbG91dCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jYWxsb3V0LnByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkN2VjZmE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFlYWVhO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jYWxsb3V0LnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMWZhZWE7XG4gICAgY29sb3I6ICMwYTBhMGE7IH1cbiAgLmNhbGxvdXQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNkOTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5hbGVydCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZTRlMTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FsbG91dC5zbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAuY2FsbG91dC5sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICAuY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jYXJkLWRpdmlkZXIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAuY2FyZC1kaXZpZGVyID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmNhcmQtc2VjdGlvbiB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtOyB9XG4gIC5jYXJkLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogIzhhOGE4YTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIC5jbG9zZS1idXR0b24uc21hbGwge1xuICAgIHJpZ2h0OiAwLjY2cmVtO1xuICAgIHRvcDogMC4zM2VtO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICAubWVudSA+IGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSA+IGxpIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgLm1lbnUgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5tZW51IGlucHV0LFxuICAubWVudSBzZWxlY3QsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZmxleC1mbG93OiByb3cgbm93cmFwOyB9XG4gICAgLm1lbnUgPiBsaSA+IGEgaW1nLFxuICAgIC5tZW51ID4gbGkgPiBhIGksXG4gICAgLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTsgfVxuICAubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAubWVudSA+IGxpLCAubWVudS5ob3Jpem9udGFsID4gbGkge1xuICAgICAgZmxleDogMCAwIGF1dG87IH1cbiAgLm1lbnUuZXhwYW5kZWQgPiBsaSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAubWVudS5leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51LnZlcnRpY2FsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVudS52ZXJ0aWNhbCA+IGxpIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLm1lbnUudmVydGljYWwgPiBsaSA+IGEge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAubWVudS5tZWRpdW0taG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgICAgLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLm1lbnUubWVkaXVtLWV4cGFuZGVkID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgfVxuICAgIC5tZW51Lm1lZGl1bS1leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAubWVudS5tZWRpdW0tdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgPiBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUubGFyZ2UtZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9IH1cbiAgLm1lbnUuc2ltcGxlIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAubWVudS5zaW1wbGUgYSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWVudS5zaW1wbGUgbGkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudS5zaW1wbGUuYWxpZ24tcmlnaHQgbGkge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudS5hbGlnbi1yaWdodCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAubWVudS5pY29uLXRvcCA+IGxpID4gYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIGksXG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51Lmljb24tdG9wLnZlcnRpY2FsIGEgPiBzcGFuIHtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLm1lbnUubmVzdGVkIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudSAuYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudS5tZW51LWJvcmRlcmVkIGxpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gICAgLm1lbnUubWVudS1ib3JkZXJlZCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItdG9wOiAwOyB9XG4gIC5tZW51Lm1lbnUtaG92ZXIgbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cblxuLm1lbnUtdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjYWNhY2E7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjY2FjYWNhLCAwIDE0cHggMCAjY2FjYWNhOyB9XG5cbi5tZW51LWljb24uZGFyayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMwYTBhMGE7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjMGEwYTBhLCAwIDE0cHggMCAjMGEwYTBhO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4YThhOGE7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjOGE4YThhLCAwIDE0cHggMCAjOGE4YThhOyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfSB9XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICB3aWR0aDogMTAwcHg7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJlc3BvbnNpdmUtZW1iZWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgb2JqZWN0LFxuICAucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4gIC5mbGV4LXZpZGVvIGlmcmFtZSxcbiAgLmZsZXgtdmlkZW8gb2JqZWN0LFxuICAuZmxleC12aWRlbyBlbWJlZCxcbiAgLmZsZXgtdmlkZW8gdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbixcbiAgLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzc2NzY3NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAubGFiZWwuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNjYzRiMzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5tZWRpYS1vYmplY3QgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWFpbi1zZWN0aW9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjU0LCAyNTQsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7IH1cbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzLWFic29sdXRlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogMTM7IH1cbiAgICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLnBvc2l0aW9uLWxlZnQge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAucG9zaXRpb24tbGVmdC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTtcbiAgICBjb250ZW50OiBcIiBcIjsgfVxuICAucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucG9zaXRpb24tcmlnaHQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAucG9zaXRpb24tcmlnaHQuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpO1xuICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucG9zaXRpb24tdG9wIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7XG4gICAgY29udGVudDogXCIgXCI7IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ucG9zaXRpb24tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAucG9zaXRpb24tYm90dG9tLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAucG9zaXRpb24tYm90dG9tLmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7XG4gICAgY29udGVudDogXCIgXCI7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyNTBweDsgfVxuICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9IH1cblxuLm9yYml0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5vcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5vcmJpdC1zbGlkZS5uby1tb3Rpb251aS5pcy1hY3RpdmUge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5vcmJpdC1wcmV2aW91cywgLm9yYml0LW5leHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LXByZXZpb3VzLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LW5leHQge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LXByZXZpb3VzOmhvdmVyLCAub3JiaXQtbmV4dDpob3ZlciwgLm9yYml0LXByZXZpb3VzOmFjdGl2ZSwgLm9yYml0LW5leHQ6YWN0aXZlLCAub3JiaXQtcHJldmlvdXM6Zm9jdXMsIC5vcmJpdC1uZXh0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNSk7IH1cblxuLm9yYml0LXByZXZpb3VzIHtcbiAgbGVmdDogMDsgfVxuXG4ub3JiaXQtbmV4dCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi5vcmJpdC1idWxsZXRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtYnVsbGV0cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgaGVpZ2h0OiAxLjJyZW07XG4gICAgbWFyZ2luOiAwLjFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhOGE4YTsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5wYWdpbmF0aW9uOjpiZWZvcmUsIC5wYWdpbmF0aW9uOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnaW5hdGlvbiBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjA2MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucGFnaW5hdGlvbiBsaTpsYXN0LWNoaWxkLCAucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjY2FjYWNhO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJzsgfVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYmInOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzY7IH1cbiAgLnByb2dyZXNzLnN1Y2Nlc3MgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2OyB9XG4gIC5wcm9ncmVzcy53YXJuaW5nIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWUwMDsgfVxuICAucHJvZ3Jlc3MuYWxlcnQgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M0YjM3OyB9XG5cbi5wcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc3OWJhOyB9XG5cbi5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMC41cmVtO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhY2FjYTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLnNsaWRlci1maWxsLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNHJlbTtcbiAgaGVpZ2h0OiAxLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzc5YmE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnNsaWRlci1oYW5kbGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLnNsaWRlci1oYW5kbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxNDY3OWU7IH1cbiAgLnNsaWRlci1oYW5kbGUuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7IH1cblxuLnNsaWRlci5kaXNhYmxlZCxcbi5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uc2xpZGVyLnZlcnRpY2FsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC41cmVtO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAuc2xpZGVyLnZlcnRpY2FsIC5zbGlkZXItaGFuZGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMS40cmVtO1xuICAgIGhlaWdodDogMS40cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC10b3Age1xuICAgIHRvcDogMDsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5zdGlja3kuaXMtYW5jaG9yZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiBhdXRvOyB9XG4gIC5zdGlja3kuaXMtYW5jaG9yZWQuaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuaHRtbC5pcy1yZXZlYWwtb3Blbixcbmh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuXG4ucmV2ZWFsIHtcbiAgei1pbmRleDogMTAwNjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5yZXZlYWwge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7IH0gfVxuICAucmV2ZWFsIC5jb2x1bW4sIC5yZXZlYWwgLmNvbHVtbnMge1xuICAgIG1pbi13aWR0aDogMDsgfVxuICAucmV2ZWFsID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5yZXZlYWwgLnJldmVhbCB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIC5yZXZlYWwuY29sbGFwc2Uge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucmV2ZWFsLnRpbnkge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5yZXZlYWwubGFyZ2Uge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICAucmV2ZWFsLmZ1bGwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDsgfSB9XG4gIC5yZXZlYWwud2l0aG91dC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLnN3aXRjaCB7XG4gIGhlaWdodDogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgICBjb250ZW50OiAnJzsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICMxNzc5YmE7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkge1xuICBoZWlnaHQ6IDEuNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cbiAgLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtOyB9XG4gIC5zd2l0Y2gudGlueSBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwge1xuICBoZWlnaHQ6IDEuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDMuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMS4yNXJlbTtcbiAgICBoZWlnaHQ6IDEuMjVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICBsZWZ0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2Uge1xuICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0YWJsZSB0aGVhZCxcbiAgdGFibGUgdGJvZHksXG4gIHRhYmxlIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgdGFibGUgY2FwdGlvbiB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIHRhYmxlIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG4gIHRhYmxlIHRoZWFkIHRyLFxuICB0YWJsZSB0Zm9vdCB0ciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgdGFibGUgdGhlYWQgdGgsXG4gIHRhYmxlIHRoZWFkIHRkLFxuICB0YWJsZSB0Zm9vdCB0aCxcbiAgdGFibGUgdGZvb3QgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRhYmxlIHRib2R5IHRoLFxuICB0YWJsZSB0Ym9keSB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG4gIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTsgfVxuICAgIHRhYmxlLnVuc3RyaXBlZCB0Ym9keSB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMWYxZjE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICB0YWJsZS5zdGFjayB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0Zm9vdCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICB0YWJsZS5zdGFjayB0cixcbiAgdGFibGUuc3RhY2sgdGgsXG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfSB9XG5cbnRhYmxlLnNjcm9sbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuXG50YWJsZS5ob3ZlciB0aGVhZCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7IH1cblxudGFibGUuaG92ZXIgdGZvb3QgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOyB9XG5cbnRhYmxlLmhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgfVxuXG50YWJsZS5ob3Zlcjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjOyB9XG5cbi50YWJsZS1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC50YWJsZS1zY3JvbGwgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAudGFiczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRhYnMuc2ltcGxlID4gbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzE3NzliYTsgfVxuICAudGFicy5wcmltYXJ5ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzE2NzNiMTsgfVxuXG4udGFicy10aXRsZSB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC50YWJzLXRpdGxlID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjMTc3OWJhOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgICBjb2xvcjogIzE0NjhhMDsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xuICAgICAgY29sb3I6ICMxNzc5YmE7IH1cblxuLnRhYnMtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWxbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXI6IHNvbGlkIDRweCAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgxMCwgMTAsIDEwLCAwLjIpO1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG5hLnRodW1ibmFpbCB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7IH1cbiAgYS50aHVtYm5haWw6aG92ZXIsIGEudGh1bWJuYWlsOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4IDFweCByZ2JhKDIzLCAxMjEsIDE4NiwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCxcbi50aXRsZS1iYXItcmlnaHQge1xuICBmbGV4OiAxIDEgMHB4OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLnRvcDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87IH1cbiAgLnRvb2x0aXAubGVmdDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMGEwYTBhO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMGEwYTBhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4udG9wLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAudG9wLWJhciAudG9wLWJhci1yaWdodCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbjogMC41cmVtIDFyZW0gMC41cmVtIDA7IH1cblxuLnRvcC1iYXItbGVmdCxcbi50b3AtYmFyLXJpZ2h0IHtcbiAgZmxleDogMCAwIGF1dG87IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLnNob3ctZm9yLXNyLFxuLnNob3ctb24tZm9jdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87IH1cblxuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oaWRlLWZvci1sYW5kc2NhcGUsXG4uc2hvdy1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmNsZWFyZml4OjpiZWZvcmUsIC5jbGVhcmZpeDo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogJyAnO1xuICBmbGV4LWJhc2lzOiAwO1xuICBvcmRlcjogMTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zOyB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBib2R5Lm1lbnUtZXhwYW5kZWQgLm1vYmlsZS1tZW51IHtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICAuc2xpY2stbGlzdDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuc2xpY2stbGlzdC5kcmFnZ2luZyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGN1cnNvcjogaGFuZDsgfVxuXG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnNsaWNrLXRyYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC5zbGljay10cmFjazpiZWZvcmUsIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuc2xpY2stdHJhY2s6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay10cmFjayB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGljay1zbGlkZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBbZGlyPVwicnRsXCJdIC5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5zbGljay1zbGlkZSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdCB7XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi8uLi9pbWcvYWpheC1sb2FkZXIuZ2lmXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyOyB9XG5cbi8qIEljb25zICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwic2xpY2tcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9zbGljay5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvc2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc2xpY2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zbGljay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL3NsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIHdpZHRoOiAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zbGljay1wcmV2LFxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiAwLjkzNzVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuc2xpY2stcHJldiB7XG4gICAgICBsZWZ0OiAtMS4yNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgbGVmdDogLTIuNXJlbTsgfSB9XG4gIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGVhMTJcIjtcbiAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogMC45Mzc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgcmlnaHQ6IC0xLjI1cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICByaWdodDogLTIuNXJlbTsgfSB9XG4gIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGVhMTFcIjtcbiAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLyogRG90cyAqL1xuLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbi5zbGljay1kb3RzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0yNXB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNsaWNrLWRvdHMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5zbGljay1kb3RzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMHB4O1xuICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3ZlciwgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAgICAgICAuc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLCAuc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXM6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAuc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuICAgIC5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDAuNzU7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dvdGhhbUJsYWNrLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1CbGFjay5lb3RcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL0dvdGhhbUJsYWNrLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9Hb3RoYW1CbGFjay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL0dvdGhhbUJsYWNrLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvR290aGFtQmxhY2suc3ZnI0dvdGhhbUJsYWNrXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1Cb29rLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1Cb29rLmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvR290aGFtQm9vay53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvR290aGFtQm9vay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL0dvdGhhbUJvb2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9Hb3RoYW1Cb29rLnN2ZyNHb3RoYW1Cb29rXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJRkNJTlNBTkVST0RFT0JPTERCT0xEJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9JRkNJTlNBTkVST0RFT0JPTERCT0xELmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9JRkNJTlNBTkVST0RFT0JPTERCT0xELmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL0lGQ0lOU0FORVJPREVPQk9MREJPTEQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9JRkNJTlNBTkVST0RFT0JPTERCT0xELnN2ZyNJRkNJTlNBTkVST0RFT0JPTERCT0xEXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL3Nwcy5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvc3BzLmVvdFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvc3BzLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9zcHMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9zcHMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9zcHMuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGJhc2UgY2xhc3MgZGVmaW5pdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMWVtLzEgJ3Nwcyc7XG4gIHNwZWFrOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNoYW5nZSBpY29uIHNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogcmVsYXRpdmUgdW5pdHMgKi9cbi5pY29uLXNtIHtcbiAgZm9udC1zaXplOiAwLjhlbTsgfVxuXG4uaWNvbi1sZyB7XG4gIGZvbnQtc2l6ZTogMS4yZW07IH1cblxuLyogYWJzb2x1dGUgdW5pdHMgKi9cbi5pY29uLTE2IHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5pY29uLTMyIHtcbiAgZm9udC1zaXplOiAzMnB4OyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBhZGQgYSBzcXVhcmUvY2lyY2xlIGJhY2tncm91bmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLWJnLXNxdWFyZSxcbi5pY29uLWJnLWNpcmNsZSB7XG4gIHBhZGRpbmc6IDAuMzVlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsgfVxuXG4uaWNvbi1iZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgdXNlIGljb25zIGFzIGxpc3QgaXRlbSBtYXJrZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLXVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cblxuLmljb24tdWwgPiBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbi5pY29uLXVsID4gbGkgPiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMC40ZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHNwaW5uaW5nIGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLWlzLXNwaW5uaW5nIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGljb24tc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbkAtbW96LWtleWZyYW1lcyBpY29uLXNwaW4ge1xuICAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGljb24tc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcm90YXRlZC9mbGlwcGVkIGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLXJvdGF0ZS05MCB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cblxuLmljb24tcm90YXRlLTE4MCB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxuXG4uaWNvbi1yb3RhdGUtMjcwIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG5cbi5pY29uLWZsaXAteSB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgLW8tdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpOyB9XG5cbi5pY29uLWZsaXAteCB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLWxpbmtlZGluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwNlwiOyB9XG5cbi5pY29uLWluc3RhZ3JhbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMDdcIjsgfVxuXG4uaWNvbi1mYWNlYm9vazo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMDhcIjsgfVxuXG4uaWNvbi10d2l0dGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwOVwiOyB9XG5cbi5pY29uLWRvd24tYXJyb3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTBhXCI7IH1cblxuLmljb24tbGVmdC1hcnJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGJcIjsgfVxuXG4uaWNvbi1yaWdodC1hcnJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGNcIjsgfVxuXG4uaWNvbi11cC1hcnJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGRcIjsgfVxuXG4uaWNvbi16b29tOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwZVwiOyB9XG5cbi5pY29uLXJpZ2h0LWFycm93LTItMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTFcIjsgfVxuXG4uaWNvbi1sZWZ0LWFycm93LTItMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTJcIjsgfVxuXG4uaWNvbi1sb2dvLWxpbmtlZGluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExM1wiOyB9XG5cbi5pY29uLW1vdXNlLWFuaW1hdGVkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExNFwiOyB9XG5cbi5pY29uLXBpbi0zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExNVwiOyB9XG5cbi5pY29uLXNtYWxsLXVwOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExNlwiOyB9XG5cbi5pY29uLXNtYWxsLWRvd246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE3XCI7IH1cblxuLmljb24tY2FsZW5kYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE4XCI7IH1cblxuLmljb24tY2xvc2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE5XCI7IH1cblxuLmljb24taGFtYnVyZ2VyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExYVwiOyB9XG5cbi5pY29uLWJlZHJvb206OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFiXCI7IH1cblxuLmljb24tY29mZmVlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExY1wiOyB9XG5cbi5pY29uLXN0YW5kaW5nLW1hbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMWRcIjsgfVxuXG4uaWNvbi1leWU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFlXCI7IH1cblxuLmljb24tem9vbS0xMDA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFmXCI7IH1cblxuLmljb24tdGFnOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEyMFwiOyB9XG5cbi5hbGlnbmZ1bGwge1xuICBtYXJnaW4tbGVmdDogY2FsYyggLTEwMHZ3IC8gMiArIDEwMCUgLyAyKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKCAtMTAwdncgLyAyICsgMTAwJSAvIDIpO1xuICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG5cbmJvZHkgLm1waGItY2FsZW5kYXIgLm1waGItZGF0ZXBpY2tlci1kYXJrLWdyZWVuLmRhdGVwaWNrIHtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICBib2R5IC5tcGhiLWNhbGVuZGFyIC5tcGhiLWRhdGVwaWNrZXItZGFyay1ncmVlbi5kYXRlcGljayAuZGF0ZXBpY2stbmF2IHtcbiAgICBiYWNrZ3JvdW5kOiAjNTJCOTY3OyB9XG4gICAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW5hdiBhIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW5hdiBhOmhvdmVyLFxuICAgIGJvZHkgLm1waGItY2FsZW5kYXIgLm1waGItZGF0ZXBpY2tlci1kYXJrLWdyZWVuLmRhdGVwaWNrIC5kYXRlcGljay1uYXYgYS5kYXRlcGljay1kaXNhYmxlZDpob3ZlciB7XG4gICAgICBjb2xvcjogIzUyQjk2NztcbiAgICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cbiAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoIHtcbiAgICBib3JkZXItY29sb3I6ICNjY2M7IH1cbiAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoLWhlYWRlcixcbiAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoLWhlYWRlciBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgY29sb3I6ICM1MkI5Njc7IH1cbiAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoIHRoIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIGJvZHkgLm1waGItY2FsZW5kYXIgLm1waGItZGF0ZXBpY2tlci1kYXJrLWdyZWVuLmRhdGVwaWNrIC5kYXRlcGljay1tb250aCB0ZCB7XG4gICAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICAgIGJvZHkgLm1waGItY2FsZW5kYXIgLm1waGItZGF0ZXBpY2tlci1kYXJrLWdyZWVuLmRhdGVwaWNrIC5kYXRlcGljay1tb250aCB0ZCAubXBoYi1wYXN0LWRhdGUsXG4gICAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoIHRkIC5tcGhiLW5vdC1hdmFpbGFibGUtZGF0ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gICAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoIHRkIC5kYXRlcGljay1vdGhlci1tb250aCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZGRkOyB9XG4gICAgYm9keSAubXBoYi1jYWxlbmRhciAubXBoYi1kYXRlcGlja2VyLWRhcmstZ3JlZW4uZGF0ZXBpY2sgLmRhdGVwaWNrLW1vbnRoIHRkIC5tcGhiLWF2YWlsYWJsZS1kYXRlIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgYmFja2dyb3VuZDogIzUyQjk2NzsgfVxuXG4uaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzEzMTIxMzsgfVxuICAuaGVhZGVyIC5oZWFkZXItY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDk5OTsgfVxuICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIHtcbiAgICAgIGhlaWdodDogNi4yNXJlbTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgei1pbmRleDogOTk5OTsgfVxuICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3Auc3RpY2t5LWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMzEyMTM7IH1cbiAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5sb2dvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41NjI1cmVtOyB9XG4gICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5sb2dvIGEgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IDIuMjVyZW07IH1cbiAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfVxuICAgICAgICAuaGVhZGVyIC5oZWFkZXItY29udGVudCAuaGVhZGVyLXRvcCAubWFpbi1tZW51ID4gdWwgPiBsaSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkgPiBhIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuOTM3NXJlbSAwLjMxMjVyZW0gMC45Mzc1cmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpID4gYTphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4NzVyZW07XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zczsgfVxuICAgICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICNlZWVlZWU7IH1cbiAgICAgICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkgPiBhOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgICAuaGVhZGVyIC5oZWFkZXItY29udGVudCAuaGVhZGVyLXRvcCAubWFpbi1tZW51ID4gdWwgPiBsaSAuZHJvcGRvd24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMS4yNXJlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxMzEyMTM7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTByZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjkzNzVyZW0gMDsgfVxuICAgICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkgLmRyb3Bkb3duIGxpIGEge1xuICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuOTM3NXJlbTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMC42MjVyZW0gMS4yNXJlbTtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwLjMxMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgICAgICAgICAgLmhlYWRlciAuaGVhZGVyLWNvbnRlbnQgLmhlYWRlci10b3AgLm1haW4tbWVudSA+IHVsID4gbGkgLmRyb3Bkb3duIGxpIGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZWVlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzZEQTIzNDsgfVxuICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpOmhvdmVyIC5kcm9wZG93biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC40Mzc1cmVtOyB9XG4gICAgICAgICAgICAuaGVhZGVyIC5oZWFkZXItY29udGVudCAuaGVhZGVyLXRvcCAubWFpbi1tZW51ID4gdWwgPiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYTphZnRlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpLmJvb2stYnV0dG9uIGEge1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNTJCOTY3O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjU2MjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgICAgICAgIC5oZWFkZXIgLmhlYWRlci1jb250ZW50IC5oZWFkZXItdG9wIC5tYWluLW1lbnUgPiB1bCA+IGxpLmJvb2stYnV0dG9uIGE6YWZ0ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgICAgICAgICAuaGVhZGVyIC5oZWFkZXItY29udGVudCAuaGVhZGVyLXRvcCAubWFpbi1tZW51ID4gdWwgPiBsaS5ib29rLWJ1dHRvbiBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIC5oZWFkZXIgLnNlYXJjaC1mb3JtIHtcbiAgICBwYWRkaW5nOiA3LjVyZW0gMC42MjVyZW0gMCAwLjYyNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5mb3JtLWRldGFpbHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gICAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuZm9ybS1kZXRhaWxzIGgzIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMi4xODc1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmZvcm0tZGV0YWlscyBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi44MTI1cmVtOyB9IH1cbiAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5mb3JtLWRldGFpbHMgcCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5mb3JtLWRldGFpbHMgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07IH0gfVxuICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBsYWJlbCxcbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1jaGVjay1vdXQtZGF0ZSA+IGxhYmVsLFxuICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWFkdWx0cyA+IGxhYmVsIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTYyNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBsYWJlbCBhYmJyLFxuICAgICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtY2hlY2stb3V0LWRhdGUgPiBsYWJlbCBhYmJyLFxuICAgICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtYWR1bHRzID4gbGFiZWwgYWJiciB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtY2hlY2staW4tZGF0ZSA+IGlucHV0LFxuICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBzZWxlY3QsXG4gICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtY2hlY2stb3V0LWRhdGUgPiBpbnB1dCxcbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1jaGVjay1vdXQtZGF0ZSA+IHNlbGVjdCxcbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1hZHVsdHMgPiBpbnB1dCxcbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1hZHVsdHMgPiBzZWxlY3Qge1xuICAgICAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICAgICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgIzcwNzA3MDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1jaGVjay1pbi1kYXRlID4gbGFiZWwsXG4gICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtY2hlY2stb3V0LWRhdGUgPiBsYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBsYWJlbDphZnRlcixcbiAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWNoZWNrLW91dC1kYXRlID4gbGFiZWw6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcZWExOFwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6ICM3MDcwNzA7IH1cbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1hZHVsdHMgPiBzZWxlY3Qge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLWFkdWx0cyA+IGxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmhlYWRlciAuc2VhcmNoLWZvcm0gLmFkdmFuY2VkLXNlYXJjaCAubXBoYl9zY19zZWFyY2gtZm9ybSAubXBoYl9zY19zZWFyY2gtYWR1bHRzID4gbGFiZWw6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6ICM3MDcwNzA7IH1cbiAgICAuaGVhZGVyIC5zZWFyY2gtZm9ybSAuYWR2YW5jZWQtc2VhcmNoIC5tcGhiX3NjX3NlYXJjaC1mb3JtIC5tcGhiX3NjX3NlYXJjaC1zdWJtaXQtYnV0dG9uLXdyYXBwZXIgPiBpbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNTJCOTY3O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjNTJCOTY3O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgIC5oZWFkZXIgLnNlYXJjaC1mb3JtIC5hZHZhbmNlZC1zZWFyY2ggLm1waGJfc2Nfc2VhcmNoLWZvcm0gLm1waGJfc2Nfc2VhcmNoLXN1Ym1pdC1idXR0b24td3JhcHBlciA+IGlucHV0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgI2ZmZjsgfVxuICAuaGVhZGVyLmxhbmRpbmctaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4taGVpZ2h0OiAyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuaGVhZGVyLmxhbmRpbmctaGVhZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG4gICAgLmhlYWRlci5sYW5kaW5nLWhlYWRlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIHotaW5kZXg6IDM7IH1cbiAgICAuaGVhZGVyLmxhbmRpbmctaGVhZGVyIHZpZGVvIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IC0wLjMxMjVyZW07XG4gICAgICByaWdodDogLTAuMzEyNXJlbTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIHdpZHRoOiAxMDF2dztcbiAgICAgIG1pbi1oZWlnaHQ6IDI1cmVtO1xuICAgICAgaGVpZ2h0OiAyNXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmhlYWRlci5sYW5kaW5nLWhlYWRlciB2aWRlbyB7XG4gICAgICAgICAgaGVpZ2h0OiAzMS4yNXJlbTsgfSB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuaGVhZGVyLmxhbmRpbmctaGVhZGVyIHZpZGVvIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOyB9IH1cbiAgICAuaGVhZGVyLmxhbmRpbmctaGVhZGVyID4gaW1nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IDI1cmVtO1xuICAgICAgaGVpZ2h0OiAyNXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmhlYWRlci5sYW5kaW5nLWhlYWRlciA+IGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAzMS4yNXJlbTsgfSB9XG5cbmJvZHkubm90LWxhbmRpbmcge1xuICBwYWRkaW5nLXRvcDogNC4zNzVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBib2R5Lm5vdC1sYW5kaW5nIHtcbiAgICAgIHBhZGRpbmctdG9wOiA2LjI1cmVtOyB9IH1cbiAgYm9keS5ub3QtbGFuZGluZyAuaGVhZGVyIC5oZWFkZXItdG9wIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTMxMjEzOyB9XG5cbi5tb2JpbGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5tb2JpbGUtaGVhZGVyIC5tb2JpbGUtaGVhZGVyLXRvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDQuMzc1cmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIGJhY2tncm91bmQ6ICMxMzEyMTM7IH1cbiAgICAubW9iaWxlLWhlYWRlciAubW9iaWxlLWhlYWRlci10b3AgLmxvZ28ge1xuICAgICAgbWFyZ2luOiAwLjkzNzVyZW0gMCAwIDAuOTM3NXJlbTsgfVxuICAgICAgLm1vYmlsZS1oZWFkZXIgLm1vYmlsZS1oZWFkZXItdG9wIC5sb2dvIGltZyB7XG4gICAgICAgIGhlaWdodDogMS44NzVyZW07IH1cbiAgICAubW9iaWxlLWhlYWRlciAubW9iaWxlLWhlYWRlci10b3AgLm1lbnUtYnRuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMS41NjI1cmVtO1xuICAgICAgcmlnaHQ6IDAuOTM3NXJlbTsgfVxuICAgICAgLm1vYmlsZS1oZWFkZXIgLm1vYmlsZS1oZWFkZXItdG9wIC5tZW51LWJ0biAuaGFtYnVyZ2VyIHtcbiAgICAgICAgd2lkdGg6IDEuODc1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNzVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAubW9iaWxlLWhlYWRlciAubW9iaWxlLWhlYWRlci10b3AgLm1lbnUtYnRuIC5oYW1idXJnZXI6aG92ZXIgc3BhbiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmOyB9XG4gICAgICAgIC5tb2JpbGUtaGVhZGVyIC5tb2JpbGUtaGVhZGVyLXRvcCAubWVudS1idG4gLmhhbWJ1cmdlciBzcGFuIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwLjEyNXJlbSBzb2xpZCAjZmZmO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAgICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAgICAgICAtby10cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2U7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlOyB9XG4gICAgICAgICAgLm1vYmlsZS1oZWFkZXIgLm1vYmlsZS1oZWFkZXItdG9wIC5tZW51LWJ0biAuaGFtYnVyZ2VyIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICB0b3A6IDA7IH1cbiAgICAgICAgICAubW9iaWxlLWhlYWRlciAubW9iaWxlLWhlYWRlci10b3AgLm1lbnUtYnRuIC5oYW1idXJnZXIgc3BhbjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgICAgIC5tb2JpbGUtaGVhZGVyIC5tb2JpbGUtaGVhZGVyLXRvcCAubWVudS1idG4gLmhhbWJ1cmdlciBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICB0b3A6IDFyZW07IH1cbiAgICAgICAgICAubW9iaWxlLWhlYWRlciAubW9iaWxlLWhlYWRlci10b3AgLm1lbnUtYnRuIC5oYW1idXJnZXIgc3BhbjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5tb2JpbGUtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTk7XG4gIGxlZnQ6IC02Mi41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMTMxMjEzO1xuICB3aWR0aDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgLm1vYmlsZS1tZW51IC5sb2dvIHtcbiAgICBtYXJnaW46IDAuOTM3NXJlbSAwIDAgMC45Mzc1cmVtOyB9XG4gICAgLm1vYmlsZS1tZW51IC5sb2dvIGltZyB7XG4gICAgICBoZWlnaHQ6IDEuODc1cmVtOyB9XG4gIC5tb2JpbGUtbWVudSAubWVudS1idG4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuNTYyNXJlbTtcbiAgICByaWdodDogMC45Mzc1cmVtOyB9XG4gIC5tb2JpbGUtbWVudSAubW9iaWxlLW5hdiB7XG4gICAgbWFyZ2luLXRvcDogMS44NzVyZW07IH1cbiAgICAubW9iaWxlLW1lbnUgLm1vYmlsZS1uYXYgPiB1bCA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjkzNzVyZW07XG4gICAgICBib3JkZXItbGVmdDogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAgICAgLm1vYmlsZS1tZW51IC5tb2JpbGUtbmF2ID4gdWwgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzUyQjk2NztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTJCOTY3OyB9XG4gICAgLm1vYmlsZS1tZW51IC5tb2JpbGUtbmF2ID4gdWwgPiBsaS5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMS44NzVyZW07XG4gICAgICB0b3A6IDAuOTM3NXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgLm1vYmlsZS1tZW51IC5tb2JpbGUtbmF2ID4gdWwgPiBsaS5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gPiBhIHtcbiAgICAgIGNvbG9yOiAjNTJCOTY3O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNTJCOTY3OyB9XG4gICAgICAubW9iaWxlLW1lbnUgLm1vYmlsZS1uYXYgPiB1bCA+IGxpLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSA+IGE6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEwZFwiOyB9XG4gICAgLm1vYmlsZS1tZW51IC5tb2JpbGUtbmF2ID4gdWwgPiBsaSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgPiBsaSBhIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMC45Mzc1cmVtOyB9XG4gICAgICAubW9iaWxlLW1lbnUgLm1vYmlsZS1uYXYgPiB1bCA+IGxpIC5pcy1hY2NvcmRpb24tc3VibWVudSA+IGxpIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzUyQjk2NzsgfVxuXG4uaGFtYnVyZ2VyIHtcbiAgd2lkdGg6IDEuODc1cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaGFtYnVyZ2VyOmhvdmVyIHNwYW4ge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjsgfVxuICAuaGFtYnVyZ2VyIHNwYW4ge1xuICAgIGJvcmRlci10b3A6IDAuMTI1cmVtIHNvbGlkICNmZmY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2U7IH1cbiAgICAuaGFtYnVyZ2VyIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICB0b3A6IDA7IH1cbiAgICAuaGFtYnVyZ2VyIHNwYW46bnRoLW9mLXR5cGUoMikge1xuICAgICAgdG9wOiAwLjVyZW07IH1cbiAgICAuaGFtYnVyZ2VyIHNwYW46bGFzdC1vZi10eXBlIHtcbiAgICAgIHRvcDogMXJlbTsgfVxuICAgIC5oYW1idXJnZXIgc3BhbjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWV4cGFuZGVkIC5oYW1idXJnZXIgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1leHBhbmRlZCAuaGFtYnVyZ2VyIHNwYW46bnRoLW9mLXR5cGUoMikge1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAvKiBJRSA5ICovXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB0b3A6IDAuNzVyZW07IH1cblxuLm1lbnUtZXhwYW5kZWQgLmhhbWJ1cmdlciBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAvKiBJRSA5ICovXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgLyogQ2hyb21lLCBTYWZhcmksIE9wZXJhICovXG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHRvcDogMC43NXJlbTsgfVxuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbWFyZ2luOiAwO1xuICBtaW4td2lkdGg6IDEwMCU7IH1cbiAgLmZvb3RlciAucGFyYWxheC1mb290ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmZvb3RlciAucGFyYWxheC1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzMi44MTI1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9saW1lLXRyZWVzLnBuZ1wiKSBuby1yZXBlYXQgY2VudGVyIGJvdHRvbTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9IH1cbiAgICAuZm9vdGVyIC5wYXJhbGF4LWZvb3RlciAuZ3JlZW4tdHJlZXMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAuZm9vdGVyIC5wYXJhbGF4LWZvb3RlciAuZ3JlZW4tdHJlZXMgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cblxuLmdyZWVuLWJveCB7XG4gIGJhY2tncm91bmQ6ICMxNzM2MTY7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHBhZGRpbmc6IDMuMTI1cmVtIDAuNjI1cmVtO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA2MDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmVlbi1ib3gge1xuICAgICAgcGFkZGluZzogMCAwIDIuNXJlbSAwOyB9IH1cbiAgLmdyZWVuLWJveCAuZm9vdGVyLWxvZ28ge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICAuZ3JlZW4tYm94IC5mb290ZXItbG9nbyBhIGltZyB7XG4gICAgICBoZWlnaHQ6IDIuMjVyZW07IH1cbiAgLmdyZWVuLWJveCAuY29udGFjdCBzcGFuIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMC45Mzc1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5ncmVlbi1ib3ggLmNvbnRhY3Qgc3BhbiBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgIC5ncmVlbi1ib3ggLmNvbnRhY3Qgc3BhbiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjOEM5QTJBOyB9XG4gIC5ncmVlbi1ib3ggLmxvY2F0aW9ucyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdyZWVuLWJveCAubG9jYXRpb25zIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuICAgIC5ncmVlbi1ib3ggLmxvY2F0aW9ucyAubG9jYXRpb24ge1xuICAgICAgbWFyZ2luLXRvcDogMS41NjI1cmVtOyB9XG4gICAgICAuZ3JlZW4tYm94IC5sb2NhdGlvbnMgLmxvY2F0aW9uIGgxIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS42ODc1cmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgICAgLmdyZWVuLWJveCAubG9jYXRpb25zIC5sb2NhdGlvbiBoMTpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTE1XCI7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAtMS41NjI1cmVtO1xuICAgICAgICAgIGNvbG9yOiAjOEM5QTJBO1xuICAgICAgICAgIHRvcDogLTAuMTI1cmVtOyB9XG4gICAgICAuZ3JlZW4tYm94IC5sb2NhdGlvbnMgLmxvY2F0aW9uIHAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuOTM3NXJlbTsgfVxuICAgICAgICAuZ3JlZW4tYm94IC5sb2NhdGlvbnMgLmxvY2F0aW9uIHAgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICM4QzlBMkE7IH1cbiAgLmdyZWVuLWJveCAuc29jaWFsIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAzLjEyNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZ3JlZW4tYm94IC5zb2NpYWwge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfVxuICAgIC5ncmVlbi1ib3ggLnNvY2lhbCB1bCB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuZ3JlZW4tYm94IC5zb2NpYWwgdWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07IH1cbiAgICAgICAgLmdyZWVuLWJveCAuc29jaWFsIHVsIGxpIGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgICAgY29sb3I6ICNlZWU7IH1cbiAgICAgICAgICAuZ3JlZW4tYm94IC5zb2NpYWwgdWwgbGkgYTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzhDOUEyQTsgfVxuICAuZ3JlZW4tYm94IC5ib3JkZXJlZCB7XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgICBib3JkZXItdG9wOiAwLjA2MjVyZW0gc29saWQgIzIxNDQyMDtcbiAgICBtYXJnaW4tdG9wOiAxLjI1cmVtOyB9XG4gICAgLmdyZWVuLWJveCAuYm9yZGVyZWQgLmNvcHlyaWdodHMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJvb2snO1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmdyZWVuLWJveCAuYm9yZGVyZWQgLmNvcHlyaWdodHMge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgLmdyZWVuLWJveCAuYm9yZGVyZWQgLmNvcHlyaWdodHMgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAuZ3JlZW4tYm94IC5ib3JkZXJlZCAuY29weXJpZ2h0cyBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzhDOUEyQTsgfVxuICAgIC5ncmVlbi1ib3ggLmJvcmRlcmVkIC5mb290ZXItbGlua3Mge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuZ3JlZW4tYm94IC5ib3JkZXJlZCAuZm9vdGVyLWxpbmtzIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgICAuZ3JlZW4tYm94IC5ib3JkZXJlZCAuZm9vdGVyLWxpbmtzIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5ncmVlbi1ib3ggLmJvcmRlcmVkIC5mb290ZXItbGlua3MgdWwgbGkge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAuZ3JlZW4tYm94IC5ib3JkZXJlZCAuZm9vdGVyLWxpbmtzIHVsIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAgICAgICAgIC5ncmVlbi1ib3ggLmJvcmRlcmVkIC5mb290ZXItbGlua3MgdWwgbGk6Zmlyc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgICAuZ3JlZW4tYm94IC5ib3JkZXJlZCAuZm9vdGVyLWxpbmtzIHVsIGxpIGEge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjkzNzVyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgICAgICAgIC5ncmVlbi1ib3ggLmJvcmRlcmVkIC5mb290ZXItbGlua3MgdWwgbGkgYTphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4NzVyZW07XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zczsgfVxuICAgICAgICAgICAgLmdyZWVuLWJveCAuYm9yZGVyZWQgLmZvb3Rlci1saW5rcyB1bCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6ICNlZWVlZWU7IH1cbiAgICAgICAgICAgICAgLmdyZWVuLWJveCAuYm9yZGVyZWQgLmZvb3Rlci1saW5rcyB1bCBsaSBhOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuXG4ubWFpbi13cmFwcGVyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyMS44NzVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1haW4td3JhcHBlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMS44NzVyZW07IH0gfVxuXG4uZml4ZWQtZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjEuOTM3NXJlbTtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2JlYWNoLWZvb3Rlci5qcGdcIikgNTAlIDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAtMTAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuZml4ZWQtZm9vdGVyIC5maXhlZC1mb290ZXItZGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmZpeGVkLWZvb3RlciAuZml4ZWQtZm9vdGVyLWRldGFpbHMgaDMge1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuZml4ZWQtZm9vdGVyIC5maXhlZC1mb290ZXItZGV0YWlscyBoMyB7XG4gICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMuMTI1cmVtOyB9IH1cbiAgICAuZml4ZWQtZm9vdGVyIC5maXhlZC1mb290ZXItZGV0YWlscyBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmZpeGVkLWZvb3RlciAuZml4ZWQtZm9vdGVyLWRldGFpbHMgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgfSB9XG4gICAgLmZpeGVkLWZvb3RlciAuZml4ZWQtZm9vdGVyLWRldGFpbHMgYSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGhlaWdodDogMi43NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICNmZmY7XG4gICAgICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50IDUwJSwgIzZEQTIzNCA1MCUpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAzMDAlIDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuNnMgZWFzZSwgY29sb3IgIDAuNXMgZWFzZTsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmZpeGVkLWZvb3RlciAuZml4ZWQtZm9vdGVyLWRldGFpbHMgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAgIC5maXhlZC1mb290ZXIgLmZpeGVkLWZvb3Rlci1kZXRhaWxzIGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzZEQTIzNDsgfVxuXG4uc2lkZWJhciAud2lkZ2V0IC53aWRnZXQtdGl0bGUge1xuICBjb2xvcjogIzMzMztcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMTg3NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBsYWJlbCxcbi5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtY2hlY2stb3V0LWRhdGUgPiBsYWJlbCxcbi5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtYWR1bHRzID4gbGFiZWwge1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU2MjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1pbi1kYXRlID4gbGFiZWwgYWJicixcbiAgLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1vdXQtZGF0ZSA+IGxhYmVsIGFiYnIsXG4gIC5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtYWR1bHRzID4gbGFiZWwgYWJiciB7XG4gICAgY29sb3I6ICNBNzNCMzg7IH1cblxuLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1pbi1kYXRlID4gaW5wdXQsXG4uc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLWluLWRhdGUgPiBzZWxlY3QsXG4uc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLW91dC1kYXRlID4gaW5wdXQsXG4uc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLW91dC1kYXRlID4gc2VsZWN0LFxuLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1hZHVsdHMgPiBpbnB1dCxcbi5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtYWR1bHRzID4gc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjNzA3MDcwO1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtY2hlY2staW4tZGF0ZSA+IGxhYmVsLFxuLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1vdXQtZGF0ZSA+IGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtY2hlY2staW4tZGF0ZSA+IGxhYmVsOmFmdGVyLFxuICAuc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLW91dC1kYXRlID4gbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxlYTE4XCI7XG4gICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMC42MjVyZW07XG4gICAgdG9wOiAycmVtO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzcwNzA3MDsgfVxuXG4uc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWFkdWx0cyA+IHNlbGVjdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1hZHVsdHMgPiBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuc2lkZWJhciAud2lkZ2V0IC5tcGhiX3dpZGdldF9zZWFyY2gtZm9ybSAubXBoYl93aWRnZXRfc2VhcmNoLWFkdWx0cyA+IGxhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHRvcDogMnJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgY29sb3I6ICM3MDcwNzA7IH1cblxuLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1zdWJtaXQtYnV0dG9uLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07IH1cbiAgLnNpZGViYXIgLndpZGdldCAubXBoYl93aWRnZXRfc2VhcmNoLWZvcm0gLm1waGJfd2lkZ2V0X3NlYXJjaC1zdWJtaXQtYnV0dG9uLXdyYXBwZXIgPiBpbnB1dCB7XG4gICAgYmFja2dyb3VuZDogIzUyQjk2NztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgIzUyQjk2NztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5zaWRlYmFyIC53aWRnZXQgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIC5tcGhiX3dpZGdldF9zZWFyY2gtc3VibWl0LWJ1dHRvbi13cmFwcGVyID4gaW5wdXQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICM1MkI5Njc7XG4gICAgICBjb2xvcjogIzUyQjk2NzsgfVxuXG4uZ2FsbGVyaWVzLXdyYXBwZXIge1xuICBwYWRkaW5nOiAxMi41cmVtIDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLmdhbGxlcmllcy13cmFwcGVyIC5maWx0ZXJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfVxuICAgIC5nYWxsZXJpZXMtd3JhcHBlciAuZmlsdGVycyAuZmlsdGVycy1saXN0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmdhbGxlcmllcy13cmFwcGVyIC5maWx0ZXJzIC5maWx0ZXJzLWxpc3QgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgLmdhbGxlcmllcy13cmFwcGVyIC5maWx0ZXJzIC5maWx0ZXJzLWxpc3QgdWwgbGkge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAuMzEyNXJlbTsgfVxuICAgICAgICAgIC5nYWxsZXJpZXMtd3JhcHBlciAuZmlsdGVycyAuZmlsdGVycy1saXN0IHVsIGxpIGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzhDOUEyQTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMC45Mzc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMC40Mzc1cmVtIDAuOTM3NXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cbiAgICAgICAgICAgIC5nYWxsZXJpZXMtd3JhcHBlciAuZmlsdGVycyAuZmlsdGVycy1saXN0IHVsIGxpIGE6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTczNjE2OyB9XG4gICAgICAgICAgLmdhbGxlcmllcy13cmFwcGVyIC5maWx0ZXJzIC5maWx0ZXJzLWxpc3QgdWwgbGkuYWN0aXZlIGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzE3MzYxNjsgfVxuICAuZ2FsbGVyaWVzLXdyYXBwZXIgLmdhbGxlcmllcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xuICAgIGdyaWQtZ2FwOiAxLjg3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZ2FsbGVyaWVzLXdyYXBwZXIgLmdhbGxlcmllcyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuZ2FsbGVyaWVzLXdyYXBwZXIgLmdhbGxlcmllcyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7IH0gfVxuXG4uZ2FsbGVyeS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogOTk5OTk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOyB9XG4gIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA5OTk5OTk7IH1cbiAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTk5OTk5O1xuICAgIG1hcmdpbjogNXJlbSAwLjYyNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEuMjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICAgICAgbWFyZ2luOiA2LjI1cmVtIDEuODc1cmVtOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICAgICAgbWFyZ2luOiA2LjI1cmVtIGF1dG87XG4gICAgICAgIHdpZHRoOiA4MCU7IH0gfVxuICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAudGl0bGUgaDMge1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICAgICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnRpdGxlIGgzIGEge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC50aXRsZSBoMyBhOmhvdmVyIGkge1xuICAgICAgICAgIGNvbG9yOiAjMjIyOyB9XG4gICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGlkZXItZm9yIHtcbiAgICAgIG1hcmdpbjogMCAwIDEuMjVyZW0gMDtcbiAgICAgIGhlaWdodDogMTguNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAuc2xpZGVyLWZvciB7XG4gICAgICAgICAgaGVpZ2h0OiAzNy41cmVtOyB9IH1cbiAgICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAuc2xpZGVyLWZvciAuZnVsbCB7XG4gICAgICAgIGhlaWdodDogMTguNzVyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1mb3IgLmZ1bGwge1xuICAgICAgICAgICAgaGVpZ2h0OiAzNy41cmVtOyB9IH1cbiAgICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGlkZXItZm9yIC5mdWxsIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxOC43NXJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAuc2xpZGVyLWZvciAuZnVsbCBpbWcge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDM3LjVyZW07XG4gICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9IH1cbiAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1uYXYge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1uYXYgLnRodW1iIHtcbiAgICAgICAgbWFyZ2luOiAwIDEuMjVyZW0gMCAwO1xuICAgICAgICBoZWlnaHQ6IDQuMzc1cmVtO1xuICAgICAgICB3aWR0aDogNC4zNzVyZW07IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1uYXYgLnRodW1iIHtcbiAgICAgICAgICAgIGhlaWdodDogMTIuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMi41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1uYXYgLnRodW1iIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiA0LjM3NXJlbTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgIHdpZHRoOiA0LjM3NXJlbTsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWRlci1uYXYgLnRodW1iIGltZyB7XG4gICAgICAgICAgICAgIGhlaWdodDogMTIuNXJlbTtcbiAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMi41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAuc2xpY2stcHJldiB7XG4gICAgICBsZWZ0OiAwLjkzNzVyZW07XG4gICAgICB6LWluZGV4OiA5OTk5OTk7XG4gICAgICB0b3A6IDQwJTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbiAgICAgIFtkaXI9XCJydGxcIl0gLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGljay1wcmV2IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0yNXB4OyB9XG4gICAgICAuZ2FsbGVyeS1jb250YWluZXIgLmdhbGxlcnktaXRlbXMgLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogXCJcXGU4NzNcIjtcbiAgICAgICAgY29sb3I6ICNmZmM3MmM7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4wNjI1cmVtOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNjg3NXJlbTsgfSB9XG4gICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGljay1uZXh0IHtcbiAgICAgIHJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICB0b3A6IDQwJTsgfVxuICAgICAgLmdhbGxlcnktY29udGFpbmVyIC5nYWxsZXJ5LWl0ZW1zIC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlODczXCI7XG4gICAgICAgIGNvbG9yOiAjZmZjNzJjO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmb250LXNpemU6IDIuMDYyNXJlbTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5nYWxsZXJ5LWNvbnRhaW5lciAuZ2FsbGVyeS1pdGVtcyAuc2xpY2stbmV4dDpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjY4NzVyZW07IH0gfVxuXG4ubGFyZ2UtaW1hZ2U6aG92ZXIgfiAuY29udHJvbHMsXG4uY29udHJvbHM6aG92ZXIge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5jb250cm9scyB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNSU7XG4gIHRyYW5zaXRpb246IGFsbCAuMTVzIGVhc2UtaW4tb3V0O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb250cm9scyB7XG4gICAgICB0b3A6IDMwJTsgfSB9XG5cbi5jb250cm9scyAucHJldi1idXR0b24sXG4uY29udHJvbHMgLm5leHQtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jb250cm9scyAucHJldi1idXR0b24gc3ZnLFxuICAuY29udHJvbHMgLm5leHQtYnV0dG9uIHN2ZyB7XG4gICAgZmlsbDogI0ZGQzcyQzsgfVxuXG4uY29udHJvbHMgLnByZXYtYnV0dG9uOmhvdmVyLFxuLmNvbnRyb2xzIC5uZXh0LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5jb250cm9scyAucHJldi1idXR0b24ge1xuICBsZWZ0OiAwOyB9XG5cbi5jb250cm9scyAubmV4dC1idXR0b24ge1xuICByaWdodDogMDsgfVxuXG4uY29udHJvbHMgLnByZXYtYnV0dG9uLmluYWN0aXZlLFxuLmNvbnRyb2xzIC5uZXh0LWJ1dHRvbi5pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIzLCAxMjMsIDEyMywgMCk7IH1cblxuLmNvbnRyb2xzIC5wcmV2LWJ1dHRvbi5pbmFjdGl2ZTpob3Zlcixcbi5jb250cm9scyAubmV4dC1idXR0b24uaW5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyMywgMTIzLCAxMjMsIDApOyB9XG5cbi5jb250cm9scyBzdmcge1xuICBmaWxsOiAjZmZmOyB9XG5cbi50aHVtYm5haWxzIHtcbiAgY3Vyc29yOiBncmFiO1xuICBjdXJzb3I6IC1vLWdyYWI7XG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfVxuICAudGh1bWJuYWlscyAuZ2FsbGVyeS1pdGVtIHtcbiAgICBtYXJnaW46IDAgNXB4OyB9XG5cbi5sYXJnZS1pbWFnZSB7XG4gIG1pbi1oZWlnaHQ6IDEyLjVyZW07IH1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXM6YWZ0ZXIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1czphZnRlcixcbi5mb3RvcmFtYV9faHRtbCxcbi5mb3RvcmFtYV9faW1nLFxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lOmZvY3VzIC5mb3RvcmFtYV9fZG90OmFmdGVyLFxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lOmZvY3VzIC5mb3RvcmFtYV9fdGh1bWI6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlX19mcmFtZSxcbi5mb3RvcmFtYV9fc3RhZ2VfX3NoYWZ0LFxuLmZvdG9yYW1hX192aWRlbyBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDsgfVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4sXG4uZm90b3JhbWFfX2ltZyB7XG4gIG1heC13aWR0aDogOTk5OTlweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA5OTk5OXB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX193cmFwIC5mb3RvcmFtYV9fZ3JhYiB7XG4gIGN1cnNvcjogbW92ZTtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogLW8tZ3JhYjtcbiAgY3Vyc29yOiAtbXMtZ3JhYjtcbiAgY3Vyc29yOiBncmFiOyB9XG5cbi5mb3RvcmFtYV9fZ3JhYmJpbmcgKiB7XG4gIGN1cnNvcjogbW92ZTtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IC1vLWdyYWJiaW5nO1xuICBjdXJzb3I6IC1tcy1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxuXG4uZm90b3JhbWFfX3NwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fYXJyLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fbmF2X19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3N0YWdlX19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3RodW1iLWJvcmRlcixcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fdmlkZW8tcGxheSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uZm90b3JhbWFfX2NhcHRpb24sXG4uZm90b3JhbWFfX25hdjphZnRlcixcbi5mb3RvcmFtYV9fbmF2OmJlZm9yZSxcbi5mb3RvcmFtYV9fc3RhZ2U6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlOmJlZm9yZSxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX2h0bWwsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19zcGlubmVyLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fc3RhZ2UsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19zdGFnZSAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7IH1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXMsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1cyxcbi5mb3RvcmFtYV9fbmF2X19mcmFtZSB7XG4gIG91dGxpbmU6IDA7XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07IH1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXM6YWZ0ZXIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1czphZnRlcixcbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX2RvdDphZnRlcixcbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX3RodW1iOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc1LCAyMzQsIDAuNSk7IH1cblxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlLFxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8sXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLS12aWRlbyAuZm90b3JhbWFfX2h0bWwsXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLS12aWRlbyAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19zdGFnZV9fc2hhZnQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19uYXZfX3NoYWZ0LFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fc3RhZ2VfX3NoYWZ0LFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fdGh1bWItYm9yZGVyIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIHdpZHRoO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIHdpZHRoO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMSwgMCwgMC4yNSwgMSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBtczsgfVxuXG4uZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX19uby1zZWxlY3QsXG4uZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuLmZvdG9yYW1hX192aWRlby1wbGF5LFxuLmZvdG9yYW1hX193cmFwIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuXG4uZm90b3JhbWFfX3NlbGVjdCB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tcy11c2VyLXNlbGVjdDogdGV4dDtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7IH1cblxuLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX25hdl9fZnJhbWUge1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDA7IH1cblxuLmZvdG9yYW1hX19jYXB0aW9uX193cmFwLFxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lLFxuLmZvdG9yYW1hX19uYXZfX3NoYWZ0IHtcbiAgLW1vei1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAqZGlzcGxheTogaW5saW5lO1xuICAqem9vbTogMTsgfVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWUsXG4uZm90b3JhbWFfX3RodW1iLWJvcmRlciB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG5cbi5mb3RvcmFtYV9fY2FwdGlvbl9fd3JhcCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmZvdG9yYW1hLS1oaWRkZW4sXG4uZm90b3JhbWFfX2xvYWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTk5OXB4O1xuICB0b3A6IC05OTk5OXB4O1xuICB6LWluZGV4OiAtMTsgfVxuXG4uZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX25hdl9fZnJhbWUsXG4uZm90b3JhbWFfX25hdl9fc2hhZnQsXG4uZm90b3JhbWFfX3N0YWdlX19mcmFtZSxcbi5mb3RvcmFtYV9fc3RhZ2VfX3NoYWZ0LFxuLmZvdG9yYW1hX192aWRlby1jbG9zZSxcbi5mb3RvcmFtYV9fdmlkZW8tcGxheSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbixcbi5mb3RvcmFtYV9fdmlkZW8tY2xvc2UsXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ZvdG9yYW1hLnBuZykgbm8tcmVwZWF0OyB9XG5cbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gIC5mb3RvcmFtYV9fYXJyLFxuICAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbixcbiAgLmZvdG9yYW1hX192aWRlby1jbG9zZSxcbiAgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ZvdG9yYW1hQDJ4LnBuZykgMCAwLzk2cHggMTYwcHggbm8tcmVwZWF0OyB9IH1cblxuLmZvdG9yYW1hX190aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZjdmN2Y7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI3LCAxMjcsIDEyNywgMC4yKTsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAuZm90b3JhbWFfX2FycixcbiAgLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24sXG4gIC5mb3RvcmFtYV9fdGh1bWItYm9yZGVyLFxuICAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuICAuZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5mb3RvcmFtYSB7XG4gIG1pbi13aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS11bm9idHJ1c2l2ZSkgPiAqOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZnVsbHNjcmVlbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLmZvdG9yYW1hLS1mdWxsc2NyZWVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19zdGFnZSB7XG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLmZvdG9yYW1hX193cmFwIHtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpcmVjdGlvbjogbHRyO1xuICB6LWluZGV4OiAwOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tcnRsIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lIHtcbiAgZGlyZWN0aW9uOiBydGw7IH1cblxuLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX3N0YWdlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmZvdG9yYW1hX193cmFwLS1wYW4teSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15OyB9XG5cbi5mb3RvcmFtYV9fd3JhcCAuZm90b3JhbWFfX3BvaW50ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZvdG9yYW1hX193cmFwLS1zbGlkZSAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4uZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUuZm90b3JhbWFfX2FjdGl2ZSB7XG4gIHotaW5kZXg6IDg7IH1cblxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWZhZGUgLmZvdG9yYW1hX19mYWRlLWZyb250LFxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fZmFkZS1yZWFyLFxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLmZvdG9yYW1hX19hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGVmdDogMDtcbiAgdG9wOiAwOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX2ZhZGUtZnJvbnQge1xuICB6LWluZGV4OiA4OyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX2ZhZGUtcmVhciB7XG4gIHotaW5kZXg6IDc7IH1cblxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fZmFkZS1yZWFyLmZvdG9yYW1hX19hY3RpdmUge1xuICB6LWluZGV4OiA5OyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX3N0YWdlIC5mb3RvcmFtYV9fc2hhZG93IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX2ltZyB7XG4gIC1tcy1maWx0ZXI6IFwiYWxwaGEoT3BhY2l0eT0wKVwiO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gIG9wYWNpdHk6IDA7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5mb3RvcmFtYV9fZXJyb3IgLmZvdG9yYW1hX19pbWcsXG4uZm90b3JhbWFfX2xvYWRlZCAuZm90b3JhbWFfX2ltZyB7XG4gIC1tcy1maWx0ZXI6IFwiYWxwaGEoT3BhY2l0eT0xMDApXCI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX2xvYWRlZC0tZnVsbCAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9faW1nLS1mdWxsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19sb2FkZWQtLWZ1bGwgLmZvdG9yYW1hX19pbWctLWZ1bGwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLW9ubHktYWN0aXZlIC5mb3RvcmFtYV9fbmF2LFxuLmZvdG9yYW1hX193cmFwLS1vbmx5LWFjdGl2ZSAuZm90b3JhbWFfX3N0YWdlIHtcbiAgbWF4LXdpZHRoOiA5OTk5OXB4ICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX193cmFwLS1vbmx5LWFjdGl2ZSAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLW9ubHktYWN0aXZlIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLmZvdG9yYW1hX19hY3RpdmUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5mb3RvcmFtYV9fbmF2IHtcbiAgZm9udC1zaXplOiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiA1OyB9XG5cbi5mb3RvcmFtYV9fbmF2X19zaGFmdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5mb3RvcmFtYV9fbmF2LS1kb3RzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMzBweDsgfVxuXG4uZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLXRodW1iLFxuLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX190aHVtYi1ib3JkZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZSB7XG4gIG1hcmdpbjogMC42MjVyZW07IH1cblxuLmZvdG9yYW1hX19uYXYtLXRodW1icyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5mb3RvcmFtYV9fbmF2LS10aHVtYnMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX19uYXYtLXRodW1icyAuZm90b3JhbWFfX25hdl9fZnJhbWU6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4uZm90b3JhbWFfX25hdi0tdGh1bWJzIC5mb3RvcmFtYV9fbmF2X19mcmFtZS0tZG90IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX2RvdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEycHg7XG4gIGxlZnQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjN2Y3ZjdmOyB9XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX2RvdDphZnRlciB7XG4gIHBhZGRpbmc6IDFweDtcbiAgdG9wOiAtMXB4O1xuICBsZWZ0OiAtMXB4OyB9XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZS5mb3RvcmFtYV9fYWN0aXZlIC5mb3RvcmFtYV9fZG90IHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7IH1cblxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lLmZvdG9yYW1hX19hY3RpdmUgLmZvdG9yYW1hX19kb3Q6YWZ0ZXIge1xuICBwYWRkaW5nOiAzcHg7XG4gIHRvcDogLTNweDtcbiAgbGVmdDogLTNweDsgfVxuXG4uZm90b3JhbWFfX3RodW1iIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX3RodW1iIHtcbiAgei1pbmRleDogMjsgfVxuXG4uZm90b3JhbWFfX3RodW1iLWJvcmRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmZvdG9yYW1hX19jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi5mb3RvcmFtYV9fY2FwdGlvbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuXG4uZm90b3JhbWFfX2NhcHRpb24gYTpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC41KTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLXJ0bCAuZm90b3JhbWFfX2NhcHRpb24ge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLW5vLWNhcHRpb25zIC5mb3RvcmFtYV9fY2FwdGlvbixcbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19jYXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX2NhcHRpb25fX3dyYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIHBhZGRpbmc6IDVweCAxMHB4OyB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHNwaW5uZXIge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3NwaW5uZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbm5lciAyNHMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHNwaW5uZXIgMjRzIGluZmluaXRlIGxpbmVhcjsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19odG1sLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fc3RhZ2UgLmZvdG9yYW1hX19pbWcge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7IH1cblxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8gLmZvdG9yYW1hX19odG1sLFxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8gLmZvdG9yYW1hX19pbWcge1xuICAtbXMtZmlsdGVyOiBcImFscGhhKE9wYWNpdHk9MClcIjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mb3RvcmFtYV9fc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvOyB9XG5cbi5mb3RvcmFtYV9fdmlkZW8ge1xuICB0b3A6IDMycHg7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7IH1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgLmZvdG9yYW1hX19hY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIHRyYW5zcGFyZW50OyB9IH1cblxuLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbixcbi5mb3RvcmFtYV9fdmlkZW8tY2xvc2UsXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDExO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmZvdG9yYW1hX19hcnIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTZweDsgfVxuXG4uZm90b3JhbWFfX2Fyci0tcHJldiB7XG4gIGxlZnQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG5cbi5mb3RvcmFtYV9fYXJyLS1uZXh0IHtcbiAgcmlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMDsgfVxuXG4uZm90b3JhbWFfX2Fyci0tZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAqZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogLjE7IH1cblxuLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB0b3A6IDJweDtcbiAgcmlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzJweDtcbiAgei1pbmRleDogMjA7IH1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXMsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1cyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMzJweDsgfVxuXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICB3aWR0aDogOTZweDtcbiAgaGVpZ2h0OiA5NnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQ4cHg7XG4gIG1hcmdpbi10b3A6IC00OHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMiAuZm90b3JhbWFfX3ZpZGVvLXBsYXksXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2UgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX2Vycm9yIC5mb3RvcmFtYV9fdmlkZW8tcGxheSxcbi5mb3RvcmFtYV9fbG9hZGVkIC5mb3RvcmFtYV9fdmlkZW8tcGxheSxcbi5mb3RvcmFtYV9fbmF2X19mcmFtZSAuZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBvcGFjaXR5OiAxO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWUgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHg7IH1cblxuLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IDA7XG4gIHotaW5kZXg6IDIwO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMiAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMnB4LCAtMzJweCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzJweCwgLTMycHgsIDApOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMy5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fYXJyLFxuLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbiB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Fycjpmb2N1cyxcbi5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb246Zm9jdXMge1xuICBvcGFjaXR5OiAxOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMi5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX3dyYXAtLWNzczIuZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczIuZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fYXJyOmZvY3VzLFxuLmZvdG9yYW1hX193cmFwLS1jc3MyLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1cyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX3dyYXAtLWNzczIuZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMy5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXNsaWRlLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uOm5vdCg6Zm9jdXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMycHgsIC0zMnB4LCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMnB4LCAtMzJweCwgMCk7IH1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tc2xpZGUuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19hcnItLXByZXY6bm90KDpmb2N1cykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQ4cHgsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00OHB4LCAwLCAwKTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMuZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS1zbGlkZS5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Fyci0tbmV4dDpub3QoOmZvY3VzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0OHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0OHB4LCAwLCAwKTsgfVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMuZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMycHgsIC0zMnB4LCAwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMycHgsIC0zMnB4LCAwKSAhaW1wb3J0YW50OyB9XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMy5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19hcnItLXByZXYge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQ4cHgsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQ4cHgsIDAsIDApICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX2Fyci0tbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0OHB4LCAwLCAwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQ4cHgsIDAsIDApICFpbXBvcnRhbnQ7IH1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fYXJyOm5vdCg6Zm9jdXMpLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uOm5vdCg6Zm9jdXMpLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fdmlkZW8tY2xvc2U6bm90KDpmb2N1cyksXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX192aWRlby1wbGF5Om5vdCg6Zm9jdXMpIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjNzOyB9XG5cbi5mb3RvcmFtYV9fbmF2OmFmdGVyLFxuLmZvdG9yYW1hX19uYXY6YmVmb3JlLFxuLmZvdG9yYW1hX19zdGFnZTphZnRlcixcbi5mb3RvcmFtYV9fc3RhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgei1pbmRleDogMTA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDFweCAxMDAlLCA1cHggMTAwJTsgfVxuXG4uZm90b3JhbWFfX25hdjpiZWZvcmUsXG4uZm90b3JhbWFfX3N0YWdlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjIpIDI1JSwgcmdiYSgwLCAwLCAwLCAwLjMpIDc1JSwgdHJhbnNwYXJlbnQpLCByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCAwIDUwJSwgcmdiYSgwLCAwLCAwLCAwLjQpLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMCAwO1xuICBsZWZ0OiAtMTBweDsgfVxuXG4uZm90b3JhbWFfX25hdi5mb3RvcmFtYV9fc2hhZG93cy0tbGVmdDpiZWZvcmUsXG4uZm90b3JhbWFfX3N0YWdlLmZvdG9yYW1hX19zaGFkb3dzLS1sZWZ0OmJlZm9yZSB7XG4gIGxlZnQ6IDA7IH1cblxuLmZvdG9yYW1hX19uYXY6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuMikgMjUlLCByZ2JhKDAsIDAsIDAsIDAuMykgNzUlLCB0cmFuc3BhcmVudCksIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDEwMCUgNTAlLCByZ2JhKDAsIDAsIDAsIDAuNCksIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwLCAxMDAlIDA7XG4gIHJpZ2h0OiAtMTBweDsgfVxuXG4uZm90b3JhbWFfX25hdi5mb3RvcmFtYV9fc2hhZG93cy0tcmlnaHQ6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlLmZvdG9yYW1hX19zaGFkb3dzLS1yaWdodDphZnRlciB7XG4gIHJpZ2h0OiAwOyB9XG5cbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX25hdjphZnRlcixcbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX25hdjpiZWZvcmUsXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19zdGFnZTphZnRlcixcbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX3N0YWdlOmJlZm9yZSxcbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX3N0YWdlOmFmdGVyLFxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fc3RhZ2U6YmVmb3JlLFxuLmZvdG9yYW1hX193cmFwLS1uby1zaGFkb3dzIC5mb3RvcmFtYV9fbmF2OmFmdGVyLFxuLmZvdG9yYW1hX193cmFwLS1uby1zaGFkb3dzIC5mb3RvcmFtYV9fbmF2OmJlZm9yZSxcbi5mb3RvcmFtYV9fd3JhcC0tbm8tc2hhZG93cyAuZm90b3JhbWFfX3N0YWdlOmFmdGVyLFxuLmZvdG9yYW1hX193cmFwLS1uby1zaGFkb3dzIC5mb3RvcmFtYV9fc3RhZ2U6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucGFnZS13cmFwcGVyIHtcbiAgcGFkZGluZzogMCAwIDEyLjVyZW0gMDtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4ucGFnZS13cmFwcGVyIC5pbnRybyB7XG4gIGhlaWdodDogMjVyZW07XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogNXJlbTtcbiAgei1pbmRleDogMjsgfVxuICAucGFnZS13cmFwcGVyIC5pbnRybzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgLnBhZ2Utd3JhcHBlciAuaW50cm8gLmludHJvLWRldGFpbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgei1pbmRleDogNDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAucGFnZS13cmFwcGVyIC5pbnRybyAuaW50cm8tZGV0YWlscyBoMSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi4yNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5wYWdlLXdyYXBwZXIgLmludHJvIC5pbnRyby1kZXRhaWxzIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07IH0gfVxuICAgIC5wYWdlLXdyYXBwZXIgLmludHJvIC5pbnRyby1kZXRhaWxzIHAge1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucGFnZS13cmFwcGVyIC5pbnRybyAuaW50cm8tZGV0YWlscyBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtOyB9IH1cblxuLnNpbmdsZS1yb29tLXdyYXBwZXIsXG4ubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1yb29tLXR5cGUtdGl0bGUsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItcm9vbS10eXBlLXRpdGxlIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICBmb250LXNpemU6IDEuNjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjE4NzVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLXBvc3QtdGh1bWJuYWlsIGEgaW1nLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtcG9zdC10aHVtYm5haWwgYSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTsgfVxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWdhbGxlcnktd3JhcHBlciAuZ2FsbGVyeS1pdGVtLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtZ2FsbGVyeS13cmFwcGVyIC5nYWxsZXJ5LWl0ZW0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWdhbGxlcnktd3JhcHBlciAuZ2FsbGVyeS1pdGVtIGltZyxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtZ2FsbGVyeS13cmFwcGVyIC5nYWxsZXJ5LWl0ZW0gaW1nIHtcbiAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwLjYyNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtZ2FsbGVyeS13cmFwcGVyIC5nYWxsZXJ5LWl0ZW0gLmdhbGxlcnktY2FwdGlvbixcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtZ2FsbGVyeS13cmFwcGVyIC5nYWxsZXJ5LWl0ZW0gLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuc2luZ2xlLXJvb20td3JhcHBlciAucm9vbS1kZXRhaWxzLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5yb29tLWRldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAucm9vbS1kZXRhaWxzIHAsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAucm9vbS1kZXRhaWxzIHAge1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuc2luZ2xlLXJvb20td3JhcHBlciAucm9vbS1kZXRhaWxzIHAsXG4gICAgICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLnJvb20tZGV0YWlscyBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtOyB9IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItZGV0YWlscy10aXRsZSxcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItcm9vbS10eXBlLWRldGFpbHMtdGl0bGUsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItZGV0YWlscy10aXRsZSxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUtZGV0YWlscy10aXRsZSB7XG4gICAgY29sb3I6ICM1MkI5Njc7XG4gICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyxcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDAgMCAxLjg3NXJlbSAwOyB9XG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGEsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyBhLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGEsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGEge1xuICAgICAgY29sb3I6ICM1MkI5Njc7IH1cbiAgICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyBhOmhvdmVyLFxuICAgICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyBhOmhvdmVyLFxuICAgICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgYTpob3ZlcixcbiAgICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICMwYTBhMGE7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGxpOmJlZm9yZSxcbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGxpOmJlZm9yZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyBsaTpiZWZvcmUsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIGxpOmJlZm9yZSB7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjM3NXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMC4xMjVyZW07IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWFkdWx0cy1jYXBhY2l0eTpiZWZvcmUsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYWR1bHRzLWNhcGFjaXR5OmJlZm9yZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYWR1bHRzLWNhcGFjaXR5OmJlZm9yZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWFkdWx0cy1jYXBhY2l0eTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGVhMWRcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtZmFjaWxpdGllczpiZWZvcmUsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtZmFjaWxpdGllczpiZWZvcmUsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWZhY2lsaXRpZXM6YmVmb3JlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtZmFjaWxpdGllczpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGVhMWNcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtdmlldzpiZWZvcmUsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtdmlldzpiZWZvcmUsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLXZpZXc6YmVmb3JlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtdmlldzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGVhMWVcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtc2l6ZTpiZWZvcmUsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtc2l6ZTpiZWZvcmUsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLXNpemU6YmVmb3JlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtc2l6ZTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGVhMWZcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYmVkLXR5cGU6YmVmb3JlLFxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWJlZC10eXBlOmJlZm9yZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYmVkLXR5cGU6YmVmb3JlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYmVkLXR5cGU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxlYTFiXCI7XG4gICAgICBmb250LWZhbWlseTogJ3Nwcyc7IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWNhdGVnb3JpZXM6YmVmb3JlLFxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWNhdGVnb3JpZXM6YmVmb3JlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLXJvb20tdHlwZS1jYXRlZ29yaWVzOmJlZm9yZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItcm9vbS10eXBlLWNhdGVnb3JpZXM6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxlYTIwXCI7XG4gICAgICBmb250LWZhbWlseTogJ3Nwcyc7IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1zaW5nbGUtcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItYXR0cmlidXRlLXRpdGxlLFxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItYXR0cmlidXRlLXRpdGxlLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLWF0dHJpYnV0ZS10aXRsZSxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItYXR0cmlidXRlLXRpdGxlIHtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICB3aWR0aDogNy41cmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWNhbGVuZGFyLXRpdGxlLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWNhbGVuZGFyLXRpdGxlIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItY2FsZW5kYXIsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItY2FsZW5kYXIge1xuICAgIG1hcmdpbjogMCAwIDEuODc1cmVtIDA7IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItcmVzZXJ2YXRpb24tZm9ybS10aXRsZSxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1yZXNlcnZhdGlvbi1mb3JtLXRpdGxlIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLWluLWRhdGUtd3JhcHBlciBicixcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIgYnIsXG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciBicixcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2staW4tZGF0ZS13cmFwcGVyIGJyLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1vdXQtZGF0ZS13cmFwcGVyIGJyLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciBiciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2staW4tZGF0ZS13cmFwcGVyID4gbGFiZWwsXG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1vdXQtZGF0ZS13cmFwcGVyID4gbGFiZWwsXG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciA+IGxhYmVsLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBsYWJlbCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlciA+IGxhYmVsLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciA+IGxhYmVsIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU2MjVyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBsYWJlbCBhYmJyLFxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1vdXQtZGF0ZS13cmFwcGVyID4gbGFiZWwgYWJicixcbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBsYWJlbCBhYmJyLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLWluLWRhdGUtd3JhcHBlciA+IGxhYmVsIGFiYnIsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlciA+IGxhYmVsIGFiYnIsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBsYWJlbCBhYmJyIHtcbiAgICAgIGNvbG9yOiAjQTczQjM4OyB9XG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBpbnB1dCxcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLWluLWRhdGUtd3JhcHBlciA+IHNlbGVjdCxcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIgPiBpbnB1dCxcbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIgPiBzZWxlY3QsXG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciA+IGlucHV0LFxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBzZWxlY3QsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLWluLWRhdGUtd3JhcHBlciA+IGlucHV0LFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBzZWxlY3QsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIgPiBpbnB1dCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlciA+IHNlbGVjdCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBpbnB1dCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBzZWxlY3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCAjNzA3MDcwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLWluLWRhdGUtd3JhcHBlciA+IGxhYmVsLFxuICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlciA+IGxhYmVsLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBsYWJlbCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlciA+IGxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItY2hlY2staW4tZGF0ZS13cmFwcGVyID4gbGFiZWw6YWZ0ZXIsXG4gICAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIgPiBsYWJlbDphZnRlcixcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIgPiBsYWJlbDphZnRlcixcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1jaGVjay1vdXQtZGF0ZS13cmFwcGVyID4gbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcXGVhMThcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHRvcDogMnJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIGNvbG9yOiAjNzA3MDcwOyB9XG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciA+IHNlbGVjdCxcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItYWR1bHRzLXdyYXBwZXIgPiBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgLnNpbmdsZS1yb29tLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWFkdWx0cy13cmFwcGVyID4gbGFiZWwsXG4gIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWFkdWx0cy13cmFwcGVyID4gbGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1hZHVsdHMtd3JhcHBlciA+IGxhYmVsOmFmdGVyLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLWFkdWx0cy13cmFwcGVyID4gbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcXGVhMGFcIjtcbiAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgIHRvcDogMnJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIGNvbG9yOiAjNzA3MDcwOyB9XG4gIC5zaW5nbGUtcm9vbS13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1yZXNlcnZlLWJ0bi13cmFwcGVyLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLWJvb2tpbmctZm9ybSAubXBoYi1yZXNlcnZlLWJ0bi13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwLjkzNzVyZW07IH1cbiAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItcmVzZXJ2ZS1idG4td3JhcHBlciA+IGlucHV0LFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItYm9va2luZy1mb3JtIC5tcGhiLXJlc2VydmUtYnRuLXdyYXBwZXIgPiBpbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNTJCOTY3O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjNTJCOTY3O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc2luZ2xlLXJvb20td3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItcmVzZXJ2ZS1idG4td3JhcHBlciA+IGlucHV0OmhvdmVyLFxuICAgICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1ib29raW5nLWZvcm0gLm1waGItcmVzZXJ2ZS1idG4td3JhcHBlciA+IGlucHV0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgIzUyQjk2NztcbiAgICAgICAgY29sb3I6ICM1MkI5Njc7IH1cblxuLnNpbmdsZS1yb29tLXdyYXBwZXIge1xuICBwYWRkaW5nOiA2LjI1cmVtIDAgMTIuNXJlbSAwOyB9XG5cbi5tcGhiLXJvb20tdHlwZXMgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtaW5mbyxcbi5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtaW5mbyB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICBjb2xvcjogIzUyQjk2NztcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cbi5tcGhiLXJvb20tdHlwZXMgLm1waGItcm9vbS10eXBlIC5tcGhiLWxvb3Atcm9vbS10aHVtYm5haWwgYSBpbWcsXG4ubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdGh1bWJuYWlsIGEgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtOyB9XG5cbi5tcGhiLXJvb20tdHlwZXMgLm1waGItcm9vbS10eXBlIC5tcGhiLXJvb20tdHlwZS10aXRsZSBhLFxuLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUgLm1waGItcm9vbS10eXBlLXRpdGxlIGEge1xuICBjb2xvcjogIzUyQjk2NztcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMi4xODc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtOyB9XG5cbi5tcGhiLXJvb20tdHlwZXMgLm1waGItcm9vbS10eXBlIHAsXG4ubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSBwIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIGNvbG9yOiAjMzMzOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLm1waGItcm9vbS10eXBlcyAubXBoYi1yb29tLXR5cGUgcCxcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgfSB9XG4gIC5tcGhiLXJvb20tdHlwZXMgLm1waGItcm9vbS10eXBlIHAubXBoYi1yZWd1bGFyLXByaWNlLFxuICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSBwLm1waGItcmVndWxhci1wcmljZSB7XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgICAubXBoYi1yb29tLXR5cGVzIC5tcGhiLXJvb20tdHlwZSBwLm1waGItcmVndWxhci1wcmljZSBzdHJvbmcsXG4gICAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUgcC5tcGhiLXJlZ3VsYXItcHJpY2Ugc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLm1waGItcm9vbS10eXBlcyAubXBoYi12aWV3LWRldGFpbHMtYnV0dG9uLFxuLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi12aWV3LWRldGFpbHMtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBoZWlnaHQ6IDIuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICM2REEyMzQ7XG4gIGJvcmRlcjogMC4xMjVyZW0gc29saWQgI2NjYztcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAxLjg3NXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50IDUwJSwgIzZEQTIzNCA1MCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUgMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgYm90dG9tO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtcG9zaXRpb24gMC42cyBlYXNlLCBjb2xvciAgMC41cyBlYXNlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLm1waGItcm9vbS10eXBlcyAubXBoYi12aWV3LWRldGFpbHMtYnV0dG9uLFxuICAgIC5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIgLm1waGItdmlldy1kZXRhaWxzLWJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIC5tcGhiLXJvb20tdHlwZXMgLm1waGItdmlldy1kZXRhaWxzLWJ1dHRvbjpob3ZlcixcbiAgLm1waGJfc2Nfc2VhcmNoX3Jlc3VsdHMtd3JhcHBlciAubXBoYi12aWV3LWRldGFpbHMtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBib3JkZXItY29sb3I6ICM2REEyMzQ7IH1cblxuLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyB7XG4gIHBhZGRpbmc6IDMuNzVyZW0gMC42MjVyZW07XG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFwiLi4vaW1nL2xlYWYtcGF0dGVybi5wbmdcIik7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIHtcbiAgICAgIHBhZGRpbmc6IDExLjI1cmVtIDAgMTEuMjVyZW0gMDsgfSB9XG4gIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiA3NXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5pbnRyby1kZXRhaWxzIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5pbnRyby1kZXRhaWxzIC5mdWxsLWxvZ28ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzLjc1cmVtOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5pbnRyby1kZXRhaWxzIC5mdWxsLWxvZ28ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAuaW50cm8tZGV0YWlscyAuZnVsbC1sb2dvIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiAxMS4yNXJlbTtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLmludHJvLWRldGFpbHMgLmZ1bGwtbG9nbyBpbWcge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDE1LjYyNXJlbTsgfSB9XG4gICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLmludHJvLWRldGFpbHMgaDEge1xuICAgICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogIzZEQTIzNDtcbiAgICAgICAgbWFyZ2luOiAxLjI1cmVtIDA7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLmludHJvLWRldGFpbHMgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDIuNXJlbSAwOyB9IH1cbiAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAuaW50cm8tZGV0YWlscyBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgICAgIGNvbG9yOiAjMDAxRjAwOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5pbnRyby1kZXRhaWxzIHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMnJlbTsgfSB9XG4gICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyB7XG4gICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgICAgIGdyaWQtZ2FwOiAxLjg3NXJlbTsgfVxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLnJvb21zIC5tcGhiX3NjX3Jvb21zLXdyYXBwZXIge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG4gICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAuMzEyNXJlbSAwLjMxMjVyZW07XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwLjI1cmVtIDJyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdGh1bWJuYWlsIGEgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbSAwLjMxMjVyZW0gMCAwOyB9XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1yb29tLXR5cGUtdGl0bGUgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07IH1cbiAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLnJvb21zIC5tcGhiX3NjX3Jvb21zLXdyYXBwZXIgLm1waGItcm9vbS10eXBlIHAge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjI1cmVtOyB9XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxLjg3NXJlbSAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjI1cmVtOyB9XG4gICAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLnJvb21zIC5tcGhiX3NjX3Jvb21zLXdyYXBwZXIgLm1waGItcm9vbS10eXBlIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgbGk6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICM1MkI5Njc7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMzc1cmVtO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIHRvcDogMC4xMjVyZW07IH1cbiAgICAgICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtYWR1bHRzLWNhcGFjaXR5OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFkXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLXJvb20tdHlwZS1mYWNpbGl0aWVzOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFjXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLXJvb20tdHlwZS12aWV3OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFlXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLXJvb20tdHlwZS1zaXplOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFmXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJzsgfVxuICAgICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLXJvb20tdHlwZS1iZWQtdHlwZTpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWExYlwiO1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7IH1cbiAgICAgICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1yb29tLXR5cGUtY2F0ZWdvcmllczpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWEyMFwiO1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7IH1cbiAgICAgICAgICAgIC5sYXRlc3QtYWNjb21tb2RhdGlvbnMgLnJvdyAucm9vbXMgLm1waGJfc2Nfcm9vbXMtd3JhcHBlciAubXBoYi1yb29tLXR5cGUgLm1waGItbG9vcC1yb29tLXR5cGUtYXR0cmlidXRlcyAubXBoYi1hdHRyaWJ1dGUtdGl0bGUge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgICAubGF0ZXN0LWFjY29tbW9kYXRpb25zIC5yb3cgLnJvb21zIC5tcGhiX3NjX3Jvb21zLXdyYXBwZXIgLm1waGItcm9vbS10eXBlIC5tcGhiLWxvb3Atcm9vbS10eXBlLWF0dHJpYnV0ZXMgLm1waGItYXR0cmlidXRlLXZhbHVlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICM3Nzc7IH1cbiAgICAgICAgICAgICAgLmxhdGVzdC1hY2NvbW1vZGF0aW9ucyAucm93IC5yb29tcyAubXBoYl9zY19yb29tcy13cmFwcGVyIC5tcGhiLXJvb20tdHlwZSAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIC5tcGhiLWF0dHJpYnV0ZS12YWx1ZSBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzsgfVxuXG4udGVzdGltb25pYWxzLWJsb2NrIHtcbiAgcGFkZGluZzogMy4xMjVyZW0gMC42MjVyZW07XG4gIGJhY2tncm91bmQ6ICM1MkI5Njc7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAudGVzdGltb25pYWxzLWJsb2NrIHtcbiAgICAgIHBhZGRpbmc6IDcuNXJlbSAwIDcuNXJlbSAwOyB9IH1cbiAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnRlc3RpbW9uaWFscyAudGVzdGltb25pYWwge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnRlc3RpbW9uaWFscyAudGVzdGltb25pYWwgLnRlc3RpbW9uaWFsLXRleHQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC50ZXN0aW1vbmlhbHMgLnRlc3RpbW9uaWFsIC50ZXN0aW1vbmlhbC10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTsgfSB9XG4gICAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnRlc3RpbW9uaWFscyAudGVzdGltb25pYWwgLmNsaWVudC1uYW1lIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnRlc3RpbW9uaWFscyAudGVzdGltb25pYWwgLmNsaWVudC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07IH0gfVxuICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stZG90cyB7XG4gICAgICBib3R0b206IC0yLjE4NzVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC5zbGljay1kb3RzIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stcHJldixcbiAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnNsaWNrLW5leHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAxLjc1cmVtO1xuICAgICAgd2lkdGg6IDEuNzVyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stcHJldiB7XG4gICAgICBsZWZ0OiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stcHJldiB7XG4gICAgICAgICAgbGVmdDogLTEuMjVyZW07IH0gfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC5zbGljay1wcmV2IHtcbiAgICAgICAgICBsZWZ0OiAtMi41cmVtOyB9IH1cbiAgICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stcHJldjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWExMlwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC5zbGljay1wcmV2OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC5zbGljay1uZXh0IHtcbiAgICAgIHJpZ2h0OiAwLjkzNzVyZW07IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgcmlnaHQ6IC0xLjI1cmVtOyB9IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC50ZXN0aW1vbmlhbHMtYmxvY2sgLnJvdyAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgcmlnaHQ6IC0yLjVyZW07IH0gfVxuICAgICAgLnRlc3RpbW9uaWFscy1ibG9jayAucm93IC5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTExXCI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAudGVzdGltb25pYWxzLWJsb2NrIC5yb3cgLnNsaWNrLW5leHQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmxhdGVzdC1uZXdzIHtcbiAgcGFkZGluZzogMS44NzVyZW0gMC42MjVyZW0gMCAwLjYyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmxhdGVzdC1uZXdzIHtcbiAgICAgIHBhZGRpbmc6IDExLjI1cmVtIDAgMTEuMjVyZW0gMDsgfSB9XG4gIC5sYXRlc3QtbmV3cyAucm93IHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAubGF0ZXN0LW5ld3MgLnJvdyAuYmxvY2stdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAubGF0ZXN0LW5ld3MgLnJvdyAuYmxvY2stdGl0bGUgaDEge1xuICAgICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogIzZEQTIzNDtcbiAgICAgICAgbWFyZ2luOiAxLjI1cmVtIDA7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAubGF0ZXN0LW5ld3MgLnJvdyAuYmxvY2stdGl0bGUgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMy4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDIuNXJlbSAwOyB9IH1cbiAgICAubGF0ZXN0LW5ld3MgLnJvdyAuc2luZ2xlLXBvc3QtaXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuICAgICAgLmxhdGVzdC1uZXdzIC5yb3cgLnNpbmdsZS1wb3N0LWl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNkRBMjM0OyB9XG4gICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtOmhvdmVyIC5wb3N0LWRldGFpbHMgaDUsXG4gICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtOmhvdmVyIC5wb3N0LWRldGFpbHMgaDMsXG4gICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtOmhvdmVyIC5wb3N0LWRldGFpbHMgcCxcbiAgICAgICAgLmxhdGVzdC1uZXdzIC5yb3cgLnNpbmdsZS1wb3N0LWl0ZW06aG92ZXIgLnBvc3QtZGV0YWlscyBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmxhdGVzdC1uZXdzIC5yb3cgLnNpbmdsZS1wb3N0LWl0ZW0gLnBvc3QtdGh1bWJuYWlsIGltZyB7XG4gICAgICAgIGhlaWdodDogMTcuMTg3NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOyB9XG4gICAgICAubGF0ZXN0LW5ld3MgLnJvdyAuc2luZ2xlLXBvc3QtaXRlbSAucG9zdC1kZXRhaWxzIHtcbiAgICAgICAgcGFkZGluZzogMS44NzVyZW0gMS4yNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtIC5wb3N0LWRldGFpbHMgaDUge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICBjb2xvcjogIzg4ODtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtIC5wb3N0LWRldGFpbHMgaDUge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtOyB9IH1cbiAgICAgICAgLmxhdGVzdC1uZXdzIC5yb3cgLnNpbmdsZS1wb3N0LWl0ZW0gLnBvc3QtZGV0YWlscyBoMyB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtIC5wb3N0LWRldGFpbHMgaDMge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07IH0gfVxuICAgICAgICAgIC5sYXRlc3QtbmV3cyAucm93IC5zaW5nbGUtcG9zdC1pdGVtIC5wb3N0LWRldGFpbHMgaDMgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMUYwMDsgfVxuICAgICAgICAubGF0ZXN0LW5ld3MgLnJvdyAuc2luZ2xlLXBvc3QtaXRlbSAucG9zdC1kZXRhaWxzIHAge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICBjb2xvcjogIzY2NjsgfVxuICAgICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAubGF0ZXN0LW5ld3MgLnJvdyAuc2luZ2xlLXBvc3QtaXRlbSAucG9zdC1kZXRhaWxzIHAge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1cmVtOyB9IH1cblxuLmdvb2dsZS1tYXAtYmxvY2sgI21hcCB7XG4gIGhlaWdodDogMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ29vZ2xlLW1hcC1ibG9jayAjbWFwIHtcbiAgICAgIGhlaWdodDogMzEuMjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5nb29nbGUtbWFwLWJsb2NrICNtYXAge1xuICAgICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG5cbi5jb250YWN0LWZvcm0tYmxvY2sge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAxLjI1cmVtIDAuNjI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY29udGFjdC1mb3JtLWJsb2NrIHtcbiAgICAgIHBhZGRpbmc6IDYuMjVyZW0gMCA5LjM3NXJlbSAwOyB9IH1cbiAgLmNvbnRhY3QtZm9ybS1ibG9jayAucm93IHtcbiAgICBtYXgtd2lkdGg6IDc1cmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuY29udGFjdC1mb3JtLWJsb2NrIC5yb3cgLmZvcm0tZGV0YWlscyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfVxuICAgICAgLmNvbnRhY3QtZm9ybS1ibG9jayAucm93IC5mb3JtLWRldGFpbHMgaDMge1xuICAgICAgICBmb250LWZhbWlseTogJ0dvdGhhbUJsYWNrJztcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogIzZEQTIzNDtcbiAgICAgICAgbWFyZ2luOiAxLjI1cmVtIDA7IH1cbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY29udGFjdC1mb3JtLWJsb2NrIC5yb3cgLmZvcm0tZGV0YWlscyBoMyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTsgfSB9XG4gICAgICAuY29udGFjdC1mb3JtLWJsb2NrIC5yb3cgLmZvcm0tZGV0YWlscyBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHb3RoYW1Cb29rJztcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gICAgICAgIGNvbG9yOiAjNzc3OyB9XG4gICAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNvbnRhY3QtZm9ybS1ibG9jayAucm93IC5mb3JtLWRldGFpbHMgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44NzVyZW07IH0gfVxuXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlciAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2UsXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyIC5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBjb2xvcjogIzBhMGEwYTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyIC5nZm9ybV9jb25maXJtYXRpb25fbWVzc2FnZSxcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXIgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlLFxuICAgIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlciAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2UsXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV9jb25maXJtYXRpb25fd3JhcHBlciAuZ2Zvcm1fY29uZmlybWF0aW9uX21lc3NhZ2Uge1xuICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtOyB9IH1cblxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC52YWxpZGF0aW9uX2Vycm9yLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAudmFsaWRhdGlvbl9lcnJvcixcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLnZhbGlkYXRpb25fZXJyb3IsXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAudmFsaWRhdGlvbl9lcnJvciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS41cmVtO1xuICBjb2xvcjogI0VFNkQ3NjsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAudmFsaWRhdGlvbl9lcnJvcixcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC52YWxpZGF0aW9uX2Vycm9yLFxuICAgIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLnZhbGlkYXRpb25fZXJyb3IsXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLnZhbGlkYXRpb25fZXJyb3Ige1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNXJlbTsgfSB9XG5cbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwicGhvbmVcIl0sXG4gIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGRfZXJyb3IgLmdpbnB1dF9jb250YWluZXIgdGV4dGFyZWEsXG4gIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJwaG9uZVwiXSxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGRfZXJyb3IgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwicGhvbmVcIl0sXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYSxcbiAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkLmdmaWVsZF9lcnJvciAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwicGhvbmVcIl0sXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZC5nZmllbGRfZXJyb3IgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQuZ2ZpZWxkX2Vycm9yIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhIHtcbiAgICBib3JkZXItY29sb3I6ICNFRTZENzY7IH1cblxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2xhYmVsLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9sYWJlbCxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfbGFiZWwsXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gIGNvbG9yOiAjMDAxRjAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2xhYmVsLFxuICAgIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfbGFiZWwsXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9sYWJlbCxcbiAgICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9sYWJlbCB7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42MjVyZW07IH0gfVxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfbGFiZWwgLmdmaWVsZF9yZXF1aXJlZCxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9sYWJlbCAuZ2ZpZWxkX3JlcXVpcmVkLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2xhYmVsIC5nZmllbGRfcmVxdWlyZWQsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2xhYmVsIC5nZmllbGRfcmVxdWlyZWQge1xuICAgIGNvbG9yOiAjRUU2RDc2OyB9XG5cbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInRleHRcIl0sXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJwaG9uZVwiXSxcbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYSxcbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInBob25lXCJdLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgdGV4dGFyZWEsXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJwaG9uZVwiXSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIGlucHV0W3R5cGU9XCJwaG9uZVwiXSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgdGV4dGFyZWEge1xuICBoZWlnaHQ6IDIuNzVyZW07XG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjM3NXJlbTtcbiAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwicGhvbmVcIl06Zm9jdXMsXG4gIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhOmZvY3VzLFxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInBob25lXCJdOmZvY3VzLFxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4gIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhOmZvY3VzLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInBob25lXCJdOmZvY3VzLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhOmZvY3VzLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwicGhvbmVcIl06Zm9jdXMsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNkRBMjM0OyB9XG5cbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdpbnB1dF9jb250YWluZXIgdGV4dGFyZWEsXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lciB0ZXh0YXJlYSxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5naW5wdXRfY29udGFpbmVyIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9kZXNjcmlwdGlvbixcbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfZGVzY3JpcHRpb24sXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG4gIGNvbG9yOiAjRUU2RDc2OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuZ2ZpZWxkX2Rlc2NyaXB0aW9uLFxuICAgIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5nZmllbGRfZGVzY3JpcHRpb24sXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9kZXNjcmlwdGlvbixcbiAgICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmdmaWVsZF9kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07IH0gfVxuXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC52YWxpZGF0aW9uX21lc3NhZ2UsXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5pbnN0cnVjdGlvbnMsXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAudmFsaWRhdGlvbl9tZXNzYWdlLFxuYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmluc3RydWN0aW9ucyxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC52YWxpZGF0aW9uX21lc3NhZ2UsXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuaW5zdHJ1Y3Rpb25zLFxuYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC52YWxpZGF0aW9uX21lc3NhZ2UsXG5ib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmluc3RydWN0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIGJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLnZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC5pbnN0cnVjdGlvbnMsXG4gICAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLnZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9ib2R5IC5nZm9ybV9maWVsZHMgLmdmaWVsZCAuaW5zdHJ1Y3Rpb25zLFxuICAgIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyAuZ2ZpZWxkIC52YWxpZGF0aW9uX21lc3NhZ2UsXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmluc3RydWN0aW9ucyxcbiAgICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLnZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fYm9keSAuZ2Zvcm1fZmllbGRzIC5nZmllbGQgLmluc3RydWN0aW9ucyB7XG4gICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjVyZW07IH0gfVxuXG5ib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2Zvb3RlciBpbnB1dCxcbmJvZHkgLmNvbnRhY3QtZm9ybS1ibG9jayAuYm9va2luZy1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2Zvb3RlciBpbnB1dCxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2Zvb3RlciBpbnB1dCxcbmJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9mb290ZXIgaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGhlaWdodDogMi43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNzVyZW07XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzZEQTIzNDtcbiAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjY2NjO1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQgNTAlLCAjNkRBMjM0IDUwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMzAwJSAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjZzIGVhc2UsIGNvbG9yICAwLjVzIGVhc2U7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2Zvb3RlciBpbnB1dCxcbiAgICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9mb290ZXIgaW5wdXQsXG4gICAgYm9keSAuc2luZ2xlLXJvb20td3JhcHBlciAudGhlLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fZm9vdGVyIGlucHV0LFxuICAgIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9mb290ZXIgaW5wdXQge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICBib2R5IC5jb250YWN0LWZvcm0tYmxvY2sgLnRoZS1mb3JtIC5nZm9ybV93cmFwcGVyIGZvcm0gLmdmb3JtX2Zvb3RlciBpbnB1dDpob3ZlcixcbiAgYm9keSAuY29udGFjdC1mb3JtLWJsb2NrIC5ib29raW5nLWZvcm0gLmdmb3JtX3dyYXBwZXIgZm9ybSAuZ2Zvcm1fZm9vdGVyIGlucHV0OmhvdmVyLFxuICBib2R5IC5zaW5nbGUtcm9vbS13cmFwcGVyIC50aGUtZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9mb290ZXIgaW5wdXQ6aG92ZXIsXG4gIGJvZHkgLnNpbmdsZS1yb29tLXdyYXBwZXIgLmJvb2tpbmctZm9ybSAuZ2Zvcm1fd3JhcHBlciBmb3JtIC5nZm9ybV9mb290ZXIgaW5wdXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGJvcmRlci1jb2xvcjogIzZEQTIzNDsgfVxuXG4uaW5zdGFncmFtLWZlZWQge1xuICBwYWRkaW5nOiAwIDAgNi4yNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5pbnN0YWdyYW0tZmVlZCAuaW5zdGFncmFtX2dhbGxlcnkge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBncmlkLWdhcDogMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuaW5zdGFncmFtLWZlZWQgLmluc3RhZ3JhbV9nYWxsZXJ5IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5pbnN0YWdyYW0tZmVlZCAuaW5zdGFncmFtX2dhbGxlcnkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpOyB9IH1cbiAgICAuaW5zdGFncmFtLWZlZWQgLmluc3RhZ3JhbV9nYWxsZXJ5IGEgaW1nIHtcbiAgICAgIHRyYW5zaXRpb246IGZpbHRlciAwLjNzOyB9XG4gICAgLmluc3RhZ3JhbS1mZWVkIC5pbnN0YWdyYW1fZ2FsbGVyeSBhOmhvdmVyIGltZyB7XG4gICAgICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgICAgLyogU2FmYXJpIDYuMCAtIDkuMCAqL1xuICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7IH1cbiAgICAuaW5zdGFncmFtLWZlZWQgLmluc3RhZ3JhbV9nYWxsZXJ5IGEudmlldy1tb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICM1MkI5Njc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOyB9XG4gICAgICAuaW5zdGFncmFtLWZlZWQgLmluc3RhZ3JhbV9nYWxsZXJ5IGEudmlldy1tb3JlIC5pY29uLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbiAgICAgICAgLmluc3RhZ3JhbS1mZWVkIC5pbnN0YWdyYW1fZ2FsbGVyeSBhLnZpZXctbW9yZSAuaWNvbi1jb250YWluZXIgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiA1cmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG4gICAgICAgIC5pbnN0YWdyYW0tZmVlZCAuaW5zdGFncmFtX2dhbGxlcnkgYS52aWV3LW1vcmUgLmljb24tY29udGFpbmVyIHNwYW4ge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07IH1cbiAgICAgIC5pbnN0YWdyYW0tZmVlZCAuaW5zdGFncmFtX2dhbGxlcnkgYS52aWV3LW1vcmU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOyB9XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4zLjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnLi4vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIFNldHRpbmdzXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuXG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYWxsb3V0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FyZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2RyaWxsZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90aHVtYm5haWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZygkZmxleDogZmFsc2UpIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtZ3JpZDtcbiAgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5cbiAgQGlmICRmbGV4IHtcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbiAgfVxufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZsZXhib3ggVXRpbGl0aWVzXG4vLyAgMjAuIEZvcm1zXG4vLyAgMjEuIExhYmVsXG4vLyAgMjIuIE1lZGlhIE9iamVjdFxuLy8gIDIzLiBNZW51XG4vLyAgMjQuIE1ldGVyXG4vLyAgMjUuIE9mZi1jYW52YXNcbi8vICAyNi4gT3JiaXRcbi8vICAyNy4gUGFnaW5hdGlvblxuLy8gIDI4LiBQcm9ncmVzcyBCYXJcbi8vICAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAgMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAgMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gIDMyLiBQcm90b3R5cGUgQm9yZGVyZWRcbi8vICAzMy4gUHJvdG90eXBlIERpc3BsYXlcbi8vICAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gIDM1LiBQcm90b3R5cGUgTGlzdC1TdHlsZS1UeXBlXG4vLyAgMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vICAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vICAzOS4gUHJvdG90eXBlIFNlcGFyYXRvclxuLy8gIDQwLiBQcm90b3R5cGUgU2hhZG93XG4vLyAgNDEuIFByb3RvdHlwZSBTaXppbmdcbi8vICA0Mi4gUHJvdG90eXBlIFNwYWNpbmdcbi8vICA0My4gUHJvdG90eXBlIFRleHQtRGVjb3JhdGlvblxuLy8gIDQ0LiBQcm90b3R5cGUgVGV4dC1UcmFuc2Zvcm1hdGlvblxuLy8gIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vICA0Ni4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDQ3LiBSZXZlYWxcbi8vICA0OC4gU2xpZGVyXG4vLyAgNDkuIFN3aXRjaFxuLy8gIDUwLiBUYWJsZVxuLy8gIDUxLiBUYWJzXG4vLyAgNTIuIFRodW1ibmFpbFxuLy8gIDUzLiBUaXRsZSBCYXJcbi8vICA1NC4gVG9vbHRpcFxuLy8gIDU1LiBUb3AgQmFyXG4vLyAgNTYuIFh5IEdyaWRcblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8gMS4gR2xvYmFsXG4vLyAtLS0tLS0tLS1cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCU7XG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKTtcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xuJG1lZGl1bS1ncmF5OiAjY2FjYWNhO1xuJGRhcmstZ3JheTogIzhhOGE4YTtcbiRibGFjazogIzBhMGEwYTtcbiR3aGl0ZTogI2ZlZmVmZTtcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xuJGdsb2JhbC1wYWRkaW5nOiAxcmVtO1xuJGdsb2JhbC1wb3NpdGlvbjogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC1tZW51LXBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW07XG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3g6IHRydWU7XG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2U7XG4kZ2xvYmFsLWJ1dHRvbi1jdXJzb3I6IGF1dG87XG4kZ2xvYmFsLWNvbG9yLXBpY2stY29udHJhc3QtdG9sZXJhbmNlOiAwO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNzY4cHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pO1xuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlO1xuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XG5cbi8vIDMuIFRoZSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4kZ3JpZC1yb3ctd2lkdGg6ICRnbG9iYWwtd2lkdGg7XG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlcjogKFxuICBzbWFsbDogMjBweCxcbiAgbWVkaXVtOiAzMHB4LFxuKTtcbiRncmlkLWNvbHVtbi1hbGlnbi1lZGdlOiB0cnVlO1xuJGdyaWQtY29sdW1uLWFsaWFzOiAnY29sdW1ucyc7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuJHNtYWxsLWZvbnQtc2l6ZTogODAlO1xuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnO1xuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrO1xuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcblxuLy8gNS4gVHlwb2dyYXBoeSBIZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNDtcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbTtcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCk7XG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiRhY2NvcmRpb24taXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtO1xuJGFjY29yZGlvbi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmc7XG4kYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhY2NvcmRpb25tZW51LWl0ZW0tYmFja2dyb3VuZDogbnVsbDtcbiRhY2NvcmRpb25tZW51LWJvcmRlcjogbnVsbDtcbiRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLWJhY2tncm91bmQ6IG51bGw7XG4kYWNjb3JkaW9uLXN1Ym1lbnUtdG9nZ2xlLWJvcmRlcjogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtd2lkdGg6IDQwcHg7XG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJhZGdlLWNvbG9yOiAkd2hpdGU7XG4kYmFkZ2UtY29sb3ItYWx0OiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW07XG5cbi8vIDEwLiBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbiRicmVhZGNydW1icy1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwO1xuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50OiAkYmxhY2s7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xuJGJyZWFkY3J1bWJzLWl0ZW0tdXBwZXJjYXNlOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yOiB0cnVlO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWl0ZW06ICcvJztcbiRicmVhZGNydW1icy1pdGVtLXNlcGFyYXRvci1pdGVtLXJ0bDogJ1xcXFwnO1xuJGJyZWFkY3J1bWJzLWl0ZW0tc2VwYXJhdG9yLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdDtcbiRidXR0b24tcGFkZGluZzogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcbiRidXR0b24tZmlsbDogc29saWQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuJGJ1dHRvbi1jb2xvcjogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjaztcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRidXR0b24taG9sbG93LWJvcmRlci13aWR0aDogMXB4O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3M6IC01MCU7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xuJGJ1dHRvbi1yZXNwb25zaXZlLWV4cGFuZGVkOiBmYWxzZTtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMDtcbiRjYWxsb3V0LXBhZGRpbmc6IDFyZW07XG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQ7XG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJGNhcmQtZGl2aWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuJGNhcmQtc2hhZG93OiBub25lO1xuJGNhcmQtYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmc7XG4kY2FyZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcblxuLy8gMTUuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemU6IChcbiAgc21hbGw6IDEuNWVtLFxuICBtZWRpdW06IDJlbSxcbik7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNi4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlO1xuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcbiRkcmlsbGRvd24tbmVzdGVkLW1hcmdpbjogMDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGRyaWxsZG93bi1zdWJtZW51LXBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4O1xuXG4vLyAxNy4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW07XG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kZHJvcGRvd24tc2l6ZXM6IChcbiAgdGlueTogMTAwcHgsXG4gIHNtYWxsOiAyMDBweCxcbiAgbGFyZ2U6IDQwMHB4LFxuKTtcblxuLy8gMTguIERyb3Bkb3duIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4O1xuJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nOiAxLjVyZW07XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG4kZHJvcGRvd25tZW51LXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwO1xuJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGRyb3Bkb3duLW1lbnUtaXRlbS1jb2xvci1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRkcm9wZG93bi1tZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyAxOS4gRmxleGJveCBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDY7XG4kZmxleGJveC1yZXNwb25zaXZlLWJyZWFrcG9pbnRzOiB0cnVlO1xuXG4vLyAyMC4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpO1xuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xuJGhlbHB0ZXh0LWNvbG9yOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjaztcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjg7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kaW5wdXQtY29sb3I6ICRibGFjaztcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0O1xuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyMS4gTGFiZWxcbi8vIC0tLS0tLS0tLVxuXG4kbGFiZWwtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kbGFiZWwtY29sb3I6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjaztcbiRsYWJlbC1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlO1xuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIyLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIzLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1uZXN0ZWQtbWFyZ2luOiAkZ2xvYmFsLW1lbnUtbmVzdGVkLW1hcmdpbjtcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nO1xuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbTtcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW07XG4kbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJG1lbnUtc3RhdGUtYmFjay1jb21wYXQ6IHRydWU7XG4kbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdDogdHJ1ZTtcbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlO1xuXG4vLyAyNC4gTWV0ZXJcbi8vIC0tLS0tLS0tLVxuXG4kbWV0ZXItaGVpZ2h0OiAxcmVtO1xuJG1ldGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJG1ldGVyLWZpbGwtZ29vZDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW06ICR3YXJuaW5nLWNvbG9yO1xuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XG5cbi8vIDI1LiBPZmYtY2FudmFzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbik7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpO1xuJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZTogMjBweDtcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LWNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSk7XG4kb2ZmY2FudmFzLW92ZXJsYXktemluZGV4OiAxMTtcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDogMTM7XG4kb2ZmY2FudmFzLXJldmVhbC16aW5kZXg6IDEyO1xuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2U7XG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuXG4vLyAyNi4gT3JiaXRcbi8vIC0tLS0tLS0tLVxuXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW07XG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleDogMTA7XG5cbi8vIDI3LiBQYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrO1xuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogJHdoaXRlO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZDogJG1lZGl1bS1ncmF5O1xuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XG4kcGFnaW5hdGlvbi1tb2JpbGUtY3VycmVudC1pdGVtOiBmYWxzZTtcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcblxuLy8gMjguIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxcmVtO1xuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRwcm9ncmVzcy1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAyOS4gUHJvdG90eXBlIEFycm93XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtYXJyb3ctZGlyZWN0aW9uczogKFxuICBkb3duLFxuICB1cCxcbiAgcmlnaHQsXG4gIGxlZnRcbik7XG4kcHJvdG90eXBlLWFycm93LXNpemU6IDAuNDM3NXJlbTtcbiRwcm90b3R5cGUtYXJyb3ctY29sb3I6ICRibGFjaztcblxuLy8gMzAuIFByb3RvdHlwZSBCb3JkZXItQm94XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1ib3JkZXItYm94LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzEuIFByb3RvdHlwZSBCb3JkZXItTm9uZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlci1ub25lLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcblxuLy8gMzIuIFByb3RvdHlwZSBCb3JkZXJlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWJvcmRlcmVkLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtYm9yZGVyLXdpZHRoOiByZW0tY2FsYygxKTtcbiRwcm90b3R5cGUtYm9yZGVyLXR5cGU6IHNvbGlkO1xuJHByb3RvdHlwZS1ib3JkZXItY29sb3I6ICRtZWRpdW0tZ3JheTtcblxuLy8gMzMuIFByb3RvdHlwZSBEaXNwbGF5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1kaXNwbGF5LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtZGlzcGxheTogKFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIHRhYmxlLFxuICB0YWJsZS1jZWxsXG4pO1xuXG4vLyAzNC4gUHJvdG90eXBlIEZvbnQtU3R5bGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1mb250LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtd2lkZS1sZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoNCk7XG4kcHJvdG90eXBlLWZvbnQtbm9ybWFsOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kcHJvdG90eXBlLWZvbnQtYm9sZDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcblxuLy8gMzUuIFByb3RvdHlwZSBMaXN0LVN0eWxlLVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtbGlzdC1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXN0eWxlLXR5cGUtdW5vcmRlcmVkOiAoXG4gIGRpc2MsXG4gIGNpcmNsZSxcbiAgc3F1YXJlXG4pO1xuJHByb3RvdHlwZS1zdHlsZS10eXBlLW9yZGVyZWQ6IChcbiAgZGVjaW1hbCxcbiAgbG93ZXItYWxwaGEsXG4gIGxvd2VyLWxhdGluLFxuICBsb3dlci1yb21hbixcbiAgdXBwZXItYWxwaGEsXG4gIHVwcGVyLWxhdGluLFxuICB1cHBlci1yb21hblxuKTtcblxuLy8gMzYuIFByb3RvdHlwZSBPdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLW92ZXJmbG93LWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtb3ZlcmZsb3c6IChcbiAgdmlzaWJsZSxcbiAgaGlkZGVuLFxuICBzY3JvbGxcbik7XG5cbi8vIDM3LiBQcm90b3R5cGUgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1wb3NpdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXBvc2l0aW9uOiAoXG4gIHN0YXRpYyxcbiAgcmVsYXRpdmUsXG4gIGFic29sdXRlLFxuICBmaXhlZFxuKTtcbiRwcm90b3R5cGUtcG9zaXRpb24tei1pbmRleDogOTc1O1xuXG4vLyAzOC4gUHJvdG90eXBlIFJvdW5kZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXJvdW5kZWQtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcblxuLy8gMzkuIFByb3RvdHlwZSBTZXBhcmF0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc2VwYXJhdG9yLWJyZWFrcG9pbnRzOiAkZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50cztcbiRwcm90b3R5cGUtc2VwYXJhdG9yLWFsaWduOiBjZW50ZXI7XG4kcHJvdG90eXBlLXNlcGFyYXRvci1oZWlnaHQ6IHJlbS1jYWxjKDIpO1xuJHByb3RvdHlwZS1zZXBhcmF0b3Itd2lkdGg6IDNyZW07XG4kcHJvdG90eXBlLXNlcGFyYXRvci1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRwcm90b3R5cGUtc2VwYXJhdG9yLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luO1xuXG4vLyA0MC4gUHJvdG90eXBlIFNoYWRvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS1zaGFkb3ctYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS1ib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsMCwwLC4xNiksXG4gICAgICAgICAgICAgICAgICAgICAgIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7XG5cbi8vIDQxLiBQcm90b3R5cGUgU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLXNpemluZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNpemluZzogKFxuICB3aWR0aCxcbiAgaGVpZ2h0XG4pO1xuJHByb3RvdHlwZS1zaXplczogKFxuICAyNTogMjUlLFxuICA1MDogNTAlLFxuICA3NTogNzUlLFxuICAxMDA6IDEwMCVcbik7XG5cbi8vIDQyLiBQcm90b3R5cGUgU3BhY2luZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm90b3R5cGUtc3BhY2luZy1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXNwYWNlcnMtY291bnQ6IDM7XG5cbi8vIDQzLiBQcm90b3R5cGUgVGV4dC1EZWNvcmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvdG90eXBlLWRlY29yYXRpb24tYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LWRlY29yYXRpb246IChcbiAgb3ZlcmxpbmUsXG4gIHVuZGVybGluZSxcbiAgbGluZS10aHJvdWdoLFxuKTtcblxuLy8gNDQuIFByb3RvdHlwZSBUZXh0LVRyYW5zZm9ybWF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS10cmFuc2Zvcm1hdGlvbi1icmVha3BvaW50czogJGdsb2JhbC1wcm90b3R5cGUtYnJlYWtwb2ludHM7XG4kcHJvdG90eXBlLXRleHQtdHJhbnNmb3JtYXRpb246IChcbiAgbG93ZXJjYXNlLFxuICB1cHBlcmNhc2UsXG4gIGNhcGl0YWxpemVcbik7XG5cbi8vIDQ1LiBQcm90b3R5cGUgVGV4dC1VdGlsaXRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHByb3RvdHlwZS11dGlsaXRpZXMtYnJlYWtwb2ludHM6ICRnbG9iYWwtcHJvdG90eXBlLWJyZWFrcG9pbnRzO1xuJHByb3RvdHlwZS10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuLy8gNDYuIFJlc3BvbnNpdmUgRW1iZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KTtcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pO1xuXG4vLyA0Ny4gUmV2ZWFsXG4vLyAtLS0tLS0tLS0tXG5cbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlO1xuJHJldmVhbC13aWR0aDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRyZXZlYWwtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDQ4LiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbDogMC41cmVtO1xuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGg6IDEuNHJlbTtcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHNsaWRlci1vcGFjaXR5LWRpc2FibGVkOiAwLjI1O1xuJHNsaWRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA0OS4gU3dpdGNoXG4vLyAtLS0tLS0tLS0tXG5cbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodDogMnJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcbiRzd2l0Y2gtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRzd2l0Y2gtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDUwLiBUYWJsZVxuLy8gLS0tLS0tLS0tXG5cbiR0YWJsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApO1xuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSArICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaXMtc3RyaXBlZDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG4kdGFibGUtc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuXG4vLyA1MS4gVGFic1xuLy8gLS0tLS0tLS1cblxuJHRhYi1tYXJnaW46IDA7XG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuJHRhYi1leHBhbmQtbWF4OiA2O1xuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHRhYi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW07XG5cbi8vIDUyLiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XG4kdGh1bWJuYWlsLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHRodW1ibmFpbC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1My4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZDtcbiR0aXRsZWJhci1pY29uLWNvbG9yOiAkd2hpdGU7XG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbTtcblxuLy8gNTQuIFRvb2x0aXBcbi8vIC0tLS0tLS0tLS0tXG5cbiRoYXMtdGlwLWN1cnNvcjogaGVscDtcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW07XG4kdG9vbHRpcC1tYXgtd2lkdGg6IDEwcmVtO1xuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoOiAwLjc1cmVtO1xuJHRvb2x0aXAtcGlwLWhlaWdodDogJHRvb2x0aXAtcGlwLXdpZHRoICogMC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyA1NS4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW07XG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDA7XG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweDtcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW07XG5cbi8vIDU2LiBYeSBHcmlkXG4vLyAtLS0tLS0tLS0tLVxuXG4keHktZ3JpZDogdHJ1ZTtcbiRncmlkLWNvbnRhaW5lcjogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbnM6IDEyO1xuJGdyaWQtbWFyZ2luLWd1dHRlcnM6IChcbiAgc21hbGw6IDIwcHgsXG4gIG1lZGl1bTogMzBweFxuKTtcbiRncmlkLXBhZGRpbmctZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnM7XG4kZ3JpZC1jb250YWluZXItcGFkZGluZzogJGdyaWQtcGFkZGluZy1ndXR0ZXJzO1xuJGdyaWQtY29udGFpbmVyLW1heDogJGdsb2JhbC13aWR0aDtcbiR4eS1ibG9jay1ncmlkLW1heDogODtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnOyAgICBcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUgb3IgYnJlYWtwb2ludCBuYW1lIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIE91dHB1dHMgQ1NTIGNsYXNzZXMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIGZvdW5kYXRpb24tZ3JpZChcbiAgJHJvdzogJ3JvdycsXG4gICRjb2x1bW46ICdjb2x1bW4nLFxuICAkY29sdW1uLXJvdzogJ2NvbHVtbi1yb3cnLFxuICAkZ3V0dGVyOiAnZ3V0dGVyJyxcbiAgJHB1c2g6ICdwdXNoJyxcbiAgJHB1bGw6ICdwdWxsJyxcbiAgJGNlbnRlcjogJ2NlbnRlcmVkJyxcbiAgJHVuY2VudGVyOiAndW5jZW50ZXJlZCcsXG4gICRjb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgJHVuY29sbGFwc2U6ICd1bmNvbGxhcHNlJyxcbiAgJG9mZnNldDogJ29mZnNldCcsXG4gICRlbmQ6ICdlbmQnLFxuICAkZXhwYW5kZWQ6ICdleHBhbmRlZCcsXG4gICRibG9jazogJ2Jsb2NrJ1xuKSB7XG4gIC8vIFJvd1xuICAuI3skcm93fSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAvLyBDb2xsYXBzaW5nXG4gICAgJi4jeyRjb2xsYXBzZX0ge1xuICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lc3RpbmdcbiAgICAmIC4jeyRyb3d9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGdyaWQtY29sdW1uLWd1dHRlcik7XG5cbiAgICAgICYuI3skY29sbGFwc2V9IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeHBhbmRlZCAoZnVsbC13aWR0aCkgcm93XG4gICAgJi4jeyRleHBhbmRlZH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLiN7JGV4cGFuZGVkfSkgLiN7JHJvd30ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRncmlkLWNvbHVtbi1ndXR0ZXIpID09ICdtYXAnIHtcbiAgICAgIC8vIFN0YXRpYyAodW5yZXNwb25zaXZlKSByb3cgZ3V0dGVyc1xuICAgICAgLy9cbiAgICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGdyaWQtY29sdW1uLWd1dHRlciB7XG4gICAgICAgICYuI3skZ3V0dGVyfS0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgPiAuI3skY29sdW1ufSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLiN7JGNvbHVtbn0ge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sO1xuXG4gICAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAgICYuI3skZW5kfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLiN7JGNvbHVtbn0uI3skcm93fS4jeyRyb3d9IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAuI3skcm93fSAuI3skY29sdW1ufS4jeyRyb3d9LiN7JHJvd30ge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIENvbHVtbiB3aWR0aFxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXNpemUoJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgIEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLXBvcygkaSk7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoLSRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LSN7JG9mZnNldH0tI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1vZmYoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJsb2NrIGdyaWRcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XG4gICAgICAuI3skLXpmLXNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1sYXlvdXQoJGksICcuI3skY29sdW1ufScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9IHtcbiAgICAgID4gLiN7JGNvbHVtbn0geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuXG4gICAgICAuI3skcm93fSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLiN7JGV4cGFuZGVkfS4jeyRyb3d9IC4jeyQtemYtc2l6ZX0tI3skY29sbGFwc2V9LiN7JHJvd30ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS0jeyR1bmNvbGxhcHNlfSB7XG4gICAgICA+IC4jeyRjb2x1bW59IHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbmluZ1xuICAgIC4jeyQtemYtc2l6ZX0tI3skY2VudGVyfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbC1wb3MoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBHdXR0ZXIgYWRqdXN0bWVudFxuICAgIC4jeyQtemYtc2l6ZX0tI3skdW5jZW50ZXJ9LFxuICAgIC4jeyQtemYtc2l6ZX0tI3skcHVzaH0tMCxcbiAgICAuI3skLXpmLXNpemV9LSN7JHB1bGx9LTAge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtdW5wb3M7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC4jeyRjb2x1bW59LSN7JGJsb2NrfSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgQGlmICRjb2x1bW4gPT0gJ2NvbHVtbicgYW5kIGhhcy12YWx1ZSgkZ3JpZC1jb2x1bW4tYWxpYXMpIHtcbiAgICAuI3skZ3JpZC1jb2x1bW4tYWxpYXN9IHtcbiAgICAgIC8vIHNhc3MtbGludDpkaXNhYmxlLWJsb2NrIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuICAgICAgQGV4dGVuZCAuY29sdW1uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2hhbmdlIHRoZSBiZWhhdmlvciBvZiBjb2x1bW5zIGRlZmluZWQgaW5zaWRlIHRoaXMgbWl4aW4gdG8gdXNlIGEgZGlmZmVyZW50IGNvbHVtbiBjb3VudC5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHJvb3QgW2ZhbHNlXVxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cbi8vLyAgIElmIGB0cnVlYCwgc2VsZWN0b3JzIHdpbGwgbm90IG5lc3QuXG5AbWl4aW4gZ3JpZC1jb250ZXh0KFxuICAkY29sdW1ucyxcbiAgJHJvb3Q6IGZhbHNlXG4pIHtcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcbiAgJG9sZC1ncmlkLWNvbHVtbi1jb3VudDogJGdyaWQtY29sdW1uLWNvdW50O1xuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRjb2x1bW5zICFnbG9iYWw7XG5cbiAgQGlmICRyb290IHtcbiAgICBAYXQtcm9vdCB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgb2xkIGNvbHVtbiBjb3VudFxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQgIWdsb2JhbDtcbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIHJvdy5cbi8vLyBAY29udGVudFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIENvbHVtbiBjb3VudCBmb3IgdGhpcyByb3cuIGBudWxsYCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBjb2x1bW4gY291bnQuXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxuLy8vICAgTW9kaWZpY2F0aW9ucyB0byB0aGUgZGVmYXVsdCBncmlkIHN0eWxlcy4gYG5lc3RgIGluZGljYXRlcyB0aGUgcm93IHdpbGwgYmUgcGxhY2VkIGluc2lkZSBhbm90aGVyIHJvdy4gYGNvbGxhcHNlYCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29sdW1ucyBpbnNpZGUgdGhpcyByb3cgd2lsbCBub3QgaGF2ZSBwYWRkaW5nLiBgbmVzdCBjb2xsYXBzZWAgY29tYmluZXMgYm90aCBiZWhhdmlvcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNmIFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgYSBjbGVhcmZpeC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93KFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY2Y6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRjZiB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEludmVydHMgdGhlIG1hcmdpbnMgb2YgYSByb3cgdG8gbmVzdCBpdCBpbnNpZGUgb2YgYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtcm93LW5lc3QoJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgJG1hcmdpbjogcmVtLWNhbGMoLXpmLWdldC1icC12YWwoJGd1dHRlcnMsICQtemYtc2l6ZSkpIC8gMiAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgd2lkdGggb2YgYSBncmlkIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR3aWR0aCBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIHRvIG1ha2UgdGhlIGNvbHVtbi4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICB3aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tc2l6ZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tc2l6ZVxuQG1peGluIGdyaWQtY29sLXNpemUoXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNvbHVtbiddIC0gU2VsZWN0b3IocykgdG8gdXNlIGZvciBjaGlsZCBlbGVtZW50cy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZ3V0dGVyXG4vLy8gICBUaGUgZ3V0dGVyIHRvIGFwcGx5IHRvIGNoaWxkIGVsZW1lbnRzLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gJGdyaWQtY29sdW1uLWd1dHRlciB3aWxsIHVzZSB0aGUgdmFsdWVzIGluIHRoZSAkZ3JpZC1jb2x1bW4tZ3V0dGVyIG1hcCwgaW5jbHVkaW5nIGJyZWFrcG9pbnQgc2l6ZXMuXG4vLy8gICAtIEEgZml4ZWQgbnVtZXJpYyB2YWx1ZSB3aWxsIGFwcGx5IHRoaXMgZ3V0dGVyIHRvIGFsbCBicmVha3BvaW50cy5cbkBtaXhpbiBncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nLFxuICAkZ3V0dGVyOiBudWxsXG4pIHtcbiAgJiA+ICN7JHNlbGVjdG9yfSB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgxLyRuKTtcblxuICAgIC8vIElmIGEgJGd1dHRlciB2YWx1ZSBpcyBwYXNzZWRcbiAgICBAaWYoJGd1dHRlcikge1xuICAgICAgLy8gR3V0dGVyc1xuICAgICAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ21hcCcge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xuICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcbiAgICAgICAgJHBhZGRpbmc6IHJlbS1jYWxjKCRndXR0ZXIpIC8gMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgxbikge1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpudGgtb2YtdHlwZSgjeyRufW4rMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGV4dHJhIENTUyB0byBibG9jayBncmlkIGNoaWxkcmVuIHNvIHRoZSBsYXN0IGl0ZW1zIGluIHRoZSByb3cgY2VudGVyIGF1dG9tYXRpY2FsbHkuIEFwcGx5IHRoaXMgdG8gdGhlIGNvbHVtbnMsIG5vdCB0aGUgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXBwZWFyIGluIGVhY2ggcm93LlxuQG1peGluIGdyaWQtbGF5b3V0LWNlbnRlci1sYXN0KCRuKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRvICRuIHtcbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwIC0gMTAwLyRuICogJGkpIC8gMiAqIDElO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOm50aC1jaGlsZCgjeyRufW4rMSk6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICgxMDAgLSAxMDAvJG4gKiAkaSkgLyAyICogMSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTsgIFxuICAgIH1cbiAgICAkaGVhZGVyLXN0eWxlczogbWFwLW1lcmdlKCRoZWFkZXItc3R5bGVzLCAoJHNpemU6ICRoZWFkZXItbWFwKSk7XG4gIH1cbiAgQHJldHVybiAkaGVhZGVyLXN0eWxlcztcbn1cblxuLy8gSWYgaXQgZXhpc3RzICRoZWFkZXJzLXNpemVzIGlzIHVzZWQgdG8gYnVpbGQgJGhlYWRlci1zdHlsZXMuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbi5cbkBpZiB2YXJpYWJsZS1leGlzdHMoaGVhZGVyLXNpemVzKSB7XG4gICRoZWFkZXItc3R5bGVzOiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKTtcbn1cblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIGA8c21hbGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGA8c21hbGw+YCBlbGVtZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1zbWFsbC1mb250LWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIGZvciBwYXJhZ3JhcGggdGV4dC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlb2NyYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjayAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlIHtcbiAgLy8gVHlwb2dyYXBoeSByZXNldHNcbiAgZGl2LFxuICBkbCxcbiAgZHQsXG4gIGRkLFxuICB1bCxcbiAgb2wsXG4gIGxpLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwcmUsXG4gIGZvcm0sXG4gIHAsXG4gIGJsb2NrcXVvdGUsXG4gIHRoLFxuICB0ZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAvLyBQYXJhZ3JhcGhzXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuICB9XG5cbiAgLy8gRW1waGFzaXplZCB0ZXh0XG4gIGVtLFxuICBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTdHJvbmcgdGV4dFxuICBzdHJvbmcsXG4gIGIge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU21hbGwgdGV4dFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gSGVhZGluZ3NcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNiB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgc21hbGwge1xuICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICBjb2xvcjogJGhlYWRlci1zbWFsbC1mb250LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgc3R5bGVzXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGhlYWRlciwgJGhlYWRlci1kZWZzIGluICRoZWFkZXJzIHtcbiAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiAxcmVtO1xuICAgICAgICAjeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2l0YXRpb25zXG4gIGNpdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogaGVscDtcbiAgfVxuXG4gIC8vIEZpZ3VyZXNcbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgXG4gIC8vIENvZGVcbiAgY29kZSB7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcblxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVzZSB0byByZW1vdmUgdGhlIGJ1bGxldHMgZnJvbSBhbiB1bm9yZGVyZWQgbGlzdFxuICAubm8tYnVsbGV0IHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi10ZXh0LWFsaWdubWVudCB7XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRhbGlnbiBpbiAobGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAudGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgIC8vIERpc3BsYXkgdGhlIFVSTCBvZiBhIGxpbmsgYWZ0ZXIgdGhlIHRleHRcbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICBAaWYgJHByaW50LWhyZWZzIHtcbiAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIoaHJlZikgJyknOyB9XG4gICAgfVxuXG4gICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgVVJMIGZvciBpbWFnZXMgb3IgSmF2YVNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgIC5pciBhOmFmdGVyLFxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXG4gICAgYVtocmVmXj0nIyddOmFmdGVyIHsgY29udGVudDogJyc7IH1cblxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKHRpdGxlKSAnKSc7IH1cblxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIGg1YnAuY29tL3RcbiAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuXG4gICAgdHIsXG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIG9ycGhhbnM6IDM7XG4gICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAgLy8gSGVscGVyIHRvIHJlLWFsbG93IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgY2VydGFpbiBlbGVtZW50cyAoZS5nLiBwcmUsIGJsb2NrcXVvdGUsIHRyKVxuICAgIC5wcmludC1icmVhay1pbnNpZGUge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblxuICBAaWYgKHR5cGUtb2YoJGJ1dHRvbi1wYWRkaW5nKSA9PSAnbWFwJykge1xuICAgIEBlYWNoICRzaXplLCAkcGFkZGluZyBpbiAkYnV0dG9uLXBhZGRpbmcge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcbiAgfVxuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuICB0cmFuc2l0aW9uOiAkYnV0dG9uLXRyYW5zaXRpb247XG5cbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLyBFeHBhbmRzIGEgYnV0dG9uIHRvIG1ha2UgaXQgZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxuQG1peGluIGJ1dHRvbi1leHBhbmQoJGV4cGFuZDogdHJ1ZSkge1xuICBAaWYgJGV4cGFuZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgQGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogJGJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRwcmltYXJ5LWNvbG9yLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MsIFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRjb2xvcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQsIHJlc2V0aW5nIHRoZSBjdXJzb3IsIGFuZCBkaXNhYmxpbmcgcG9pbnRlciBldmVudHMuXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGJhY2tncm91bmQgWyRwcmltYXJ5LWNvbG9yXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAcGFyYW0gW0NvbG9yXSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoXG4gICRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAkY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yLWFsdCkpO1xuICB9XG5cbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgYWxsIHN0eWxlcyBmb3IgYSBidXR0b24uIEZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciBzdHlsZXMsIHVzZSB0aGUgaW5kaXZpZHVhbCBidXR0b24gbWl4aW5zLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBtYWtlIHRoZSBidXR0b24gZnVsbC13aWR0aC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxuQG1peGluIGJ1dHRvbihcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcbikge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcblxuICBAaWYgJHN0eWxlID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b247XG5cbiAgICAvLyBTaXplc1xuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XG4gICAgICAmLiN7JHNpemV9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cblxuICAgIC8vIENvbG9yc1xuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhvbGxvdyBzdHlsZVxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcbiAgICAgICYuaG9sbG93IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcbiAgICAmLmRpc2FibGVkLFxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcblxuICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQoJGNvbG9yLCBhdXRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERyb3Bkb3duIGFycm93XG4gICAgJi5kcm9wZG93biB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZHJvcGRvd247XG5cbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJhZGdlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBhIGJhZGdlLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIGJhZGdlLlxuQG1peGluIGJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYmFkZ2UtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkYmFkZ2UtY29sb3IsICRiYWRnZS1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBicmVhZGNydW1iIHNsYXNoLlxuLy8vIEB0eXBlIENvbG9yXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLCBhbG9uZyB3aXRoIHRoZSBzdHlsZXMgZm9yIHRoZSBgPGxpPmAgYW5kIGA8YT5gIGVsZW1lbnRzIGluc2lkZSBvZiBpdC5cbkBtaXhpbiBicmVhZGNydW1icy1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luOiAkYnJlYWRjcnVtYnMtbWFyZ2luO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIC8vIEl0ZW0gd3JhcHBlclxuICBsaSB7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcblxuICAgIGZvbnQtc2l6ZTogJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2Uge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBAaWYgJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2gge1xuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxuICAgICAgJHNsYXNoOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdsdHInLCAnLycsICdcXFxcJyk7XG5cbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBtYXJnaW46IDAgJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb250ZW50OiAkc2xhc2g7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzIHtcbiAgLmJyZWFkY3J1bWJzIHtcbiAgICBAaW5jbHVkZSBicmVhZGNydW1icy1jb250YWluZXI7XG5cbiAgICAuZGlzYWJsZWQge1xuICAgICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJ1dHRvbi1ncm91cFxuLy8vL1xuXG4vLy8gTWFyZ2luIGZvciBidXR0b24gZ3JvdXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtc3BhY2luZzogMXB4ICFkZWZhdWx0O1xuXG4vLy8gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYnV0dG9ucyB0aGF0IGNhbiBiZSBpbiBhbiBldmVuLXdpZHRoIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGV0ZXJtaW5lcyBpZiAkYnV0dG9uLXJhZGl1cyBpcyBhcHBsaWVkIHRvIGVhY2ggYnV0dG9uIG9yIHRoZSBidXR0b24gZ3JvdXAgYXMgYSB3aG9sZS4gVXNlICRnbG9iYWwtcmFkaXVzIGluIF9zZXR0aW5ncy5zY3NzIHRvIGNoYW5nZSByYWRpdXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkY2hpbGQtc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJHNwYWNpbmc6ICRidXR0b25ncm91cC1zcGFjaW5nXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1tYXJnaW47XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG5cbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgIH1cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXdpZHRoIGJ1dHRvbiBncm91cCwgbWFraW5nIGVhY2ggYnV0dG9uIGVxdWFsIHdpZHRoLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3BhY2luZyBbJGJ1dHRvbmdyb3VwLXNwYWNpbmddIC0gU3BhY2luZyBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3IsXG4gICRzcGFjaW5nOiAkYnV0dG9uZ3JvdXAtc3BhY2luZyxcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJHNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJVxuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRzcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1lbGVtZW50LW5lc3RpbmdcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGlubmVyIHBhZGRpbmcgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xuICAgIH1cblxuICAgICYubGFyZ2Uge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2FyZFxuLy8vL1xuXG4vLy8gRGVmdWFsdCBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhcmRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUuXG4vLy8gQHR5cGUgTGlzdFxuJGNhcmQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNhcmQgc2hhZG93LlxuLy8vIEB0eXBlIExpc3RcbiRjYXJkLXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBMaXN0XG4kY2FyZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbi5cbi8vLyBAdHlwZSBudW1iZXJcbiRjYXJkLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYXJkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gZm9udCBjb2xvciBvZiB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1hcmdpbiAtIEJvdHRvbSBtYXJnaW4gb2YgdGhlIGNhcmQuXG4vLy8gQHBhcmFtIHtMaXN0fSAkYm9yZGVyIC0gQm9yZGVyIGFyb3VuZCB0aGUgY2FyZC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRyYWRpdXMgLSBib3JkZXIgcmFkaXVzIG9mIHRoZSBjYXJkLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHNoYWRvdyAtIGJveCBzaGFkb3cgb2YgdGhlIGNhcmQuXG5AbWl4aW4gY2FyZC1jb250YWluZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRjYXJkLWZvbnQtY29sb3IsXG4gICRtYXJnaW46ICRjYXJkLW1hcmdpbixcbiAgJGJvcmRlcjogJGNhcmQtYm9yZGVyLFxuICAkcmFkaXVzOiAkY2FyZC1ib3JkZXItcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3dcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuXG4gIGJvcmRlcjogJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogJGNvbG9yO1xuXG4gICYgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FyZCBkaXZpZGVyLlxuQG1peGluIGNhcmQtZGl2aWRlcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWRpdmlkZXItYmFja2dyb3VuZCxcbiAgJHBhZGRpbmc6ICRjYXJkLXBhZGRpbmdcbikge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhcmQgc2VjdGlvbi5cbkBtaXhpbiBjYXJkLXNlY3Rpb24oXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICAmID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tY2FyZCB7XG4gIC5jYXJkIHtcbiAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5jYXJkLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgfVxuXG4gIC5jYXJkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGNhcmQtc2VjdGlvbjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBmb3IgYm9yZGVyZWQgbWVudVxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cblxuICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFNldCB0byBgbnVsbGAgdG8gZG8gbm90IGdlbmVyYXRlIHN0eWxlcyBmb3IgZGlyZWN0aW9uLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgQGlmICRkaXIgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXIpO1xuICB9XG59XG5cbi8vLyBEaXJlY3Rpb24gbW9kaWZpZXIgZm9yIGEgc2ltcGxlIE1lbnVcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnVcbkBtaXhpbiBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gICRuby1tYXJnaW4tZGlyOiAkZGlyO1xuICAkbWFyZ2luLWRpcjogZGlyZWN0aW9uLW9wcG9zaXRlKCRkaXIpO1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skbm8tbWFyZ2luLWRpcn06IDA7XG4gICAgbWFyZ2luLSN7JG1hcmdpbi1kaXJ9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRtYXJnaW4tZGlyKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICsgc3BhbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gc2lkZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWVudS1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuXG4gICAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGdsb2JhbC1yaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgaWNvbnNcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnModG9wLCAkYmFzZTogZmFsc2UpO1xuICAgICAgLy8gTWFrZSB2ZXJ0aWNhbCBtZW51IHdpdGggaWNvbnMgb24gdG9wIHdvcmtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBhID4gc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJvcmRlclxuICAgICYubWVudS1ib3JkZXJlZCB7XG4gICAgICBsaSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZW51LWJvcmRlcjtcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lbnUgd2l0aCBiYWNrZ3JvdW5kIGhvdmVyXG4gICAgJi5tZW51LWhvdmVyIHtcbiAgICAgIGxpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZW51LXRleHQge1xuICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgfVxuXG4gIC8vIEFsaWduIGNlbnRlclxuICAubWVudS1jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiAubWVudSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogY2VudGVyLCAkeTogdG9wKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcmlsbGRvd25cbi8vLy9cblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGRyaWxsZG93bi10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBhcnJvd3MgdG8gZHJpbGxkb3duIGl0ZW1zIHdpdGggc3VibWVudXMsIGFzIHdlbGwgYXMgdGhlIGJhY2sgYnV0dG9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1hcnJvdy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJpbGxkb3duLWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyaWxsZG93biBzdWJtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFwcGxpZWQgdG8gbmVzdGVkIDx1bD5zXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogLTE7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkZHJpbGxkb3duLWJhY2tncm91bmQ7XG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAtMTAwJSwgMTAwJSkpO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2luZyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XG4gICAgfVxuICB9XG5cbiAgLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgQGlmICRkcmlsbGRvd24tYXJyb3dzIHtcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogJGRyaWxsZG93bi1hcnJvdy1zaXplO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMC43NXJlbTsgLy8gQ3JlYXRlcyBzcGFjZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHRcblxuICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fS13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBMaXN0XG4kZHJvcGRvd24tcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi13aWR0aDogMzAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBTaXplcyBmb3IgZHJvcGRvd24gcGFuZXMuIEVhY2ggc2l6ZSBpcyBhIENTUyBjbGFzcyB5b3UgY2FuIGFwcGx5LlxuLy8vIEB0eXBlIE1hcFxuJGRyb3Bkb3duLXNpemVzOiAoXG4gIHRpbnk6IDEwMHB4LFxuICBzbWFsbDogMjAwcHgsXG4gIGxhcmdlOiA0MDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cbkBtaXhpbiBkcm9wZG93bi1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xuICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcblxuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG5cbiAgZm9udC1zaXplOiAkZHJvcGRvd24tZm9udC1zaXplO1xuXG4gICYuaXMtb3BlbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93biB7XG4gIC5kcm9wZG93bi1wYW5lIHtcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcbiAgICAuZHJvcGRvd24tcGFuZS4jeyRuYW1lfSB7XG4gICAgICB3aWR0aDogJHNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcmVzcG9uc2l2ZS1lbWJlZFxuLy8vL1xuXG4vLy8gTWFyZ2luIGJlbG93IGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBBc3BlY3QgcmF0aW9zIHVzZWQgdG8gZGV0ZXJtaW5lIHBhZGRpbmctYm90dG9tIG9mIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVycy5cbi8vLyBAdHlwZSBNYXBcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvczogKFxuICBkZWZhdWx0OiA0IGJ5IDMsXG4gIHdpZGVzY3JlZW46IDE2IGJ5IDksXG4pICFkZWZhdWx0O1xuXG4vLyBXQVJOSU5HOiBXaWxsIGJlIHJlbW92ZWQgaW4gdmVyc2lvbiA2LjRcbiRyZXNwb25zaXZlLWVtYmVkLXJhdGlvOiBkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7U3RyaW5nfExpc3R9ICRyYXRpbyBbZGVmYXVsdF0gLSBSYXRpbyBvZiB0aGUgY29udGFpbmVyLiBDYW4gYmUgYSBrZXkgZnJvbSB0aGUgYCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvc2AgbWFwIG9yIGEgbGlzdCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG5AbWl4aW4gcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpIHtcbiAgQGlmIHR5cGUtb2YoJHJhdGlvKSA9PSAnc3RyaW5nJyB7XG4gICAgJHJhdGlvOiBtYXAtZ2V0KCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcywgJHJhdGlvKTtcbiAgfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpZnJhbWUsXG4gIG9iamVjdCxcbiAgZW1iZWQsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZCB7XG4gIC5yZXNwb25zaXZlLWVtYmVkLFxuICAuZmxleC12aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW86IGRlZmF1bHQpO1xuXG4gICAgJHJhdGlvczogbWFwLXJlbW92ZSgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsZGVmYXVsdCk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJHJhdGlvIGluICRyYXRpb3Mge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtdmlkZW8ge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQoKS4gZm91bmRhdGlvbi1mbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbn1cblxuQG1peGluIGZsZXgtdmlkZW8oJHJhdGlvOiAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpbykge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSByZXNwb25zaXZlLWVtYmVkKCkuIGZsZXgtdmlkZW8oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1lbWJlZCgkcmF0aW8pO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMiA6IHBvdygxMCwgJHByZWMpO1xuICAgICRleHBvbmVudDogcm91bmQoJGV4cG9uZW50ICogJHByZWMyKTtcbiAgICAkZGVub21pbmF0b3I6IGdjZCgkZXhwb25lbnQsICRwcmVjMik7XG4gICAgQHJldHVybiBudGgtcm9vdChwb3coJGJhc2UsICRleHBvbmVudCAvICRkZW5vbWluYXRvciksICRwcmVjMiAvICRkZW5vbWluYXRvciwgJHByZWMpO1xuICB9XG5cbiAgJHZhbHVlOiAkYmFzZTtcbiAgQGlmICRleHBvbmVudCA+IDEge1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJGJhc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRleHBvbmVudCA8IDEge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRiYXNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bSwgJG46IDIsICRwcmVjOiAxMikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvTnRoX3Jvb3QjSmF2YVNjcmlwdFxuICAkeDogMTtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRwcmVjIHtcbiAgICAkeDogMSAvICRuICogKCgkbiAtIDEpICogJHggKyAoJG51bSAvIHBvdygkeCwgJG4gLSAxKSkpO1xuICB9XG5cbiAgQHJldHVybiAkeDtcbn1cblxuLy8vIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHdpZHRoIGZvciBhIGdpdmVuIHJhdGlvLlxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXG4vLy8gQHJldHVybiB7TnVtYmVyfSBBIHBlcmNlbnRhZ2UgdmFsdWUgZm9yIHRoZSBoZWlnaHQgcmVsYXRpdmUgdG8gdGhlIHdpZHRoIG9mIGEgcmVzcG9uc2l2ZSBjb250YWluZXIuXG5AZnVuY3Rpb24gcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pIHtcbiAgJHc6IG50aCgkcmF0aW8sIDEpO1xuICAkaDogbnRoKCRyYXRpbywgMyk7XG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBsYWJlbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIENvbG9yXG4kbGFiZWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0ZSB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGxhYmVsLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxhYmVsLWZvbnQtc2l6ZTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcGFkZGluZzogMC4zMzMzM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBvZiBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBiYXNlIHN0eWxlcyBmb3IgYSBsYWJlbC5cbkBtaXhpbiBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogJGxhYmVsLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJGxhYmVsLXJhZGl1cztcblxuICBmb250LXNpemU6ICRsYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWxhYmVsIHtcbiAgLmxhYmVsIHtcbiAgICBAaW5jbHVkZSBsYWJlbDtcblxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRsYWJlbC1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRjb2xvciwgKCRsYWJlbC1jb2xvciwgJGxhYmVsLWNvbG9yLWFsdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XG4vLy8vXG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gTGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvbiBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBvZiBpbWFnZXMgd2l0aGluIGEgbWVkaWEgb2JqZWN0LCB3aGVuIHRoZSBvYmplY3QgaXMgc3RhY2tlZCB2ZXJ0aWNhbGx5LiBTZXQgdG8gJ2F1dG8nIHRvIHVzZSB0aGUgaW1hZ2UncyBuYXR1cmFsIHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIGJsb2NrKTtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBzZWN0aW9ucyB3aXRoaW4gYSBtZWRpYSBvYmplY3QuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkaW5nIFskbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nXSAtIFBhZGRpbmcgYmV0d2VlbiBzZWN0aW9ucy5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAkcGFkZGluZztcbiAgfVxuXG4gICY6bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGluZztcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRvIHN0YWNrIHNlY3Rpb25zIG9mIGEgbWVkaWEgb2JqZWN0LiBBcHBseSB0aGlzIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnRzLCBub3QgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiBtZWRpYS1vYmplY3Qtc3RhY2sge1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZztcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZWRpYS1vYmplY3Qge1xuICAubWVkaWEtb2JqZWN0IHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xuXG4gICAgaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0gLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc3RhY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3Qtc2VjdGlvbjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5tYWluLXNlY3Rpb24ge1xuICAgICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmLm1pZGRsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgICYuYm90dG9tIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcbi8vLy9cblxuLy8vIFdpZHRoIG9mIGEgbGVmdC9yaWdodCBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHRvcC9ib3R0b20gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdmVydGljYWwtc2l6ZTogMjUwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGZvciB0aGUgb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgcHVzaGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcHVzaC16aW5kZXg6IDEgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMSAhZGVmYXVsdDtcblxuLy8vIExlbmd0aCBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzICFkZWZhdWx0O1xuXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhIHJldmVhbGVkIG9mZi1jYW52YXMgd2lsbCBiZSBmaXhlZC1wb3NpdGlvbiwgYW5kIHNjcm9sbCB3aXRoIHRoZSBzY3JlZW4uXG4vLy8gQHR5cGUgQm9vbFxuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIHBhbmVsIGlzIG9wZW4uXG4vLy8gQHR5cGUgQ29sb3JcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XG5cbi8vLyBDU1MgY2xhc3MgdXNlZCBmb3IgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGUgb2ZmLWNhbnZhcyBtaXhpbnMgdXNlIHRoaXMgdG8gdGFyZ2V0IHRoZSBwYWdlIGNvbnRlbnQuXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNlbGluZSBzdHlsZXMgZm9yIG9mZi1jYW52YXMuIFRoaXMgQ1NTIGlzIHJlcXVpcmVkIHRvIG1ha2UgdGhlIG90aGVyIHBpZWNlcyB3b3JrLlxuQG1peGluIG9mZi1jYW52YXMtYmFzaWNzIHtcbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLCB2aXNpYmlsaXR5ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcblxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICYuaXMtY2xvc2FibGUge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIFxuICAgICYuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHdyYXBwZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy13cmFwcGVyKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2UoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICR0cmFuc2l0aW9uOiAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsXG4gICRmaXhlZDogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICBAaWYgJGZpeGVkID09IHRydWUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZTogaWYoJG9yaWVudGF0aW9uID09IGhvcml6b250YWwsICRvZmZjYW52YXMtc2l6ZSwgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgICYuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgJG9mZmNhbnZhcy1zaGFkb3cgaXMgc2V0LCBhZGQgaXQgYXMgYSBwc2V1ZG8tZWxlbWVudC5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLXNoYWRvdyB7XG4gICAgJi5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3c7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICB9XG4gIH1cblxuICAvLyBObyB0cmFuc2Zvcm0gb24gb3ZlcmxhcCB0cmFuc2l0aW9uXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHN0eWxlcyBmb3IgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIG9mZi1jYW52YXMtY29udGVudCgpIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbkBtaXhpbiBvZmYtY2FudmFzLXJldmVhbChcbiRwb3NpdGlvbjogbGVmdCxcbiR6aW5kZXg6ICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCxcbiRjb250ZW50OiAkbWFpbmNvbnRlbnQtY2xhc3Ncbikge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHotaW5kZXg6ICR6aW5kZXg7XG5cbiAgQGlmIG5vdCAkb2ZmY2FudmFzLWZpeGVkLXJldmVhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogJG9mZmNhbnZhcy1zaXplO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xuICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2ljcztcblxuICAvLyBPZmYtY2FudmFzIHdyYXBwZXJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwcGVyO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXJcbiAgLm9mZi1jYW52YXMge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyIHdpdGggYWJzb2x1dGUgcG9zaXRpb25cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZSgkZml4ZWQ6IGZhbHNlKTtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgcG9zaXRpb24gY2xhc3Nlc1xuICAucG9zaXRpb24tbGVmdCAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCwgICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tcmlnaHQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24ocmlnaHQsICBob3Jpem9udGFsKTsgfVxuICAucG9zaXRpb24tdG9wICAgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24odG9wLCAgICB2ZXJ0aWNhbCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbSAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLXBvc2l0aW9uKGJvdHRvbSwgdmVydGljYWwpOyB9XG5cbiAgLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1jb250ZW50O1xuICB9XG5cbiAgLy8gUmV2ZWFsIG9mZi1jYW52YXMgcGFuZWwgb24gbGFyZ2VyIHNjcmVlbnNcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG5hbWUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChsZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGJvdHRvbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHBhZ2luYXRpb25cbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBvZiBwYWdpbmF0aW9uIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIHBhZ2luYXRpb24gb2JqZWN0LlxuLy8vIEB0eXBlIE51bWJlclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgbWFyZ2luIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW1zIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBwYWdpbmF0aW9uIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50OiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgZmFsc2VgLCBkb24ndCBkaXNwbGF5IHBhZ2UgbnVtYmVyIGxpbmtzIG9uIG1vYmlsZSwgb25seSBuZXh0L3ByZXZpb3VzIGxpbmtzXG4vLy8gYW5kIG9wdGlvbmFsbHkgY3VycmVudCBwYWdlIG51bWJlci5cbi8vLyBAdHlwZSBCb29sZWFuXG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9uIG1vYmlsZSBldmVuIGlmIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgZmFsc2VgLlxuLy8vIFRoaXMgcGFyYW1ldGVyIHdpbGwgb25seSBvdmVycmlkZSB0aGUgdmlzaWJpbGl0eSBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IGl0ZW0gZm9yIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO2AsXG4vLy8gaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIHZpc2liaWxpdHkgd2hlbiBgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zYCBpcyBzZXQgdG8gYHRydWVgLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW06IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHBhZ2luYXRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyIChcbiAgJG1hcmdpbi1ib3R0b206ICRwYWdpbmF0aW9uLW1hcmdpbi1ib3R0b20sXG4gICRmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZSxcbiAgJHNwYWNpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyxcbiAgJHJhZGl1czogJHBhZ2luYXRpb24tcmFkaXVzLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3IsXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXJcbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgLy8gTGlzdCBpdGVtXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJHNwYWNpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cblxuICAgICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1jdXJyZW50LWl0ZW0ge1xuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBsaW5rc1xuICBhLFxuICBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byBhbiBgPGE+YC5cbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRiYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50LFxuICAkY29sb3ItY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50XG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWN1cnJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItY3VycmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCAoXG4gICRwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmcsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvci1kaXNhYmxlZFxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cbkBtaXhpbiBwYWdpbmF0aW9uLWVsbGlwc2lzIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvclxuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBjb250ZW50OiAnXFwyMDI2JztcbiAgY29sb3I6ICRjb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcGFnaW5hdGlvbiB7XG4gIC5wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWNvbnRhaW5lcjtcblxuICAgIC5jdXJyZW50IHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1jdXJyZW50O1xuICAgIH1cblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLmVsbGlwc2lzOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGFnaW5hdGlvbi1hcnJvd3Mge1xuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjVyZW07XG4gICAgICBjb250ZW50OiAnXFwwMGFiJztcbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuICAgIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYmInO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxuQG1peGluIHByb2dyZXNzLWNvbnRhaW5lciB7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1iYWNrZ3JvdW5kO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBtZXRlciBvZiBhIHByb2dyZXNzIGJhci5cbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDtcblxuICBAaWYgaGFzLXZhbHVlKCRwcm9ncmVzcy1yYWRpdXMpIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyLXRleHQge1xuICBAaW5jbHVkZSBhYnNvbHV0ZS1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9ncmVzcy1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcbiAgLy8gUHJvZ3Jlc3MgYmFyXG4gIC5wcm9ncmVzcyB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyXG4gIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gIH1cblxuICAvLyBJbm5lciBtZXRlciB0ZXh0XG4gIC5wcm9ncmVzcy1tZXRlci10ZXh0IHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gW1RPRE9dIENoZWNrIGhvdyBwbHVnaW4gY29uZmlybXMgZGlzYWJsZWQgb3IgdmVydGljYWwgc3RhdHVzXG4vLyBbVE9ET10gQ2hlY2sgaWYgdHJhbnNpdGlvbjogYWxsOyBpcyBuZWNlc3NhcnlcblxuLy8vL1xuLy8vIEBncm91cCBzbGlkZXJcbi8vLy9cblxuLy8vIERlZmF1bHQgc2xpZGVyIHdpZHRoIG9mIGEgdmVydGljYWwgc2xpZGVyLiAoRG9lc24ndCBhcHBseSB0byB0aGUgbmF0aXZlIHNsaWRlci4pXG4vLy8gQHR5cGUgTnVtYmVyXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kc2xpZGVyLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHNsaWRlcnMuXG5AbWl4aW4gc2xpZGVyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc2xpZGVyLXRyYW5zaXRpb247XG5cbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIHRoZSBzbGlkZXIgaGFuZGxlcy5cbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSk7XG4gIH1cblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xuICBvcGFjaXR5OiAkc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbkBtaXhpbiBzbGlkZXItdmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICBoZWlnaHQ6IDEyLjVyZW07XG4gIG1hcmdpbjogMCAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcblxuICAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogJHNsaWRlci13aWR0aC12ZXJ0aWNhbDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc2xpZGVyIHtcbiAgLy8gQ29udGFpbmVyXG4gIC5zbGlkZXIge1xuICAgIEBpbmNsdWRlIHNsaWRlci1jb250YWluZXI7XG4gIH1cblxuICAvLyBGaWxsIGFyZWFcbiAgLnNsaWRlci1maWxsIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcbiAgfVxuXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcbiAgLnNsaWRlci1oYW5kbGUge1xuICAgIEBpbmNsdWRlIHNsaWRlci1oYW5kbGU7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAuc2xpZGVyLmRpc2FibGVkLFxuICAuc2xpZGVyW2Rpc2FibGVkXSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gVmVydGljYWwgc2xpZGVyXG4gIC5zbGlkZXIudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHNsaWRlci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFJUTCBzdXBwb3J0XG4gIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCB7XG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xuICAuc3RpY2t5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLnN0aWNreSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIC5zdGlja3kuaXMtc3R1Y2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA1O1xuXG4gICAgJi5pcy1hdC10b3Age1xuICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogYXV0bztcblxuICAgICYuaXMtYXQtYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIG1vZGFsLiBHZW5lcmFsbHkgYSBwZXJjZW50YWdlLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4LXdpZHRoIFskcmV2ZWFsLW1heC13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSBtb2RhbC5cbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXG4gICR3aWR0aDogJHJldmVhbC13aWR0aCxcbiAgJG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIEBleHRlbmQgJXJldmVhbC1jZW50ZXJlZDtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIG1heC13aWR0aDogJHJldmVhbC1tYXgtd2lkdGg7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBmdWxsLXNjcmVlbiBtb2RhbCwgd2hpY2ggc3RyZXRjaGVzIHRoZSBmdWxsIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHdpbmRvdy5cbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tZHVwbGljYXRlLXByb3BlcnRpZXNcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuXG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tcmV2ZWFsIHtcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xuICBib2R5LmlzLXJldmVhbC1vcGVuIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIGh0bWwgZ2V0cyB0aGlzIGNsYXNzIG9ubHkgaW4gaU9TXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4gYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbiAgICAvLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICVyZXZlYWwtY2VudGVyZWQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBzd2l0Y2hcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBhY3RpdmUgY29sb3Igb2YgYSBzd2l0Y2guXG4vLy8gQHR5cGUgQ29sb3JcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLnNtYWxsIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAubGFyZ2UgY2xhc3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLWhlaWdodC1sYXJnZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgc3dpdGNoIGNvbnRhaW5lciBhbmQgcGFkZGxlLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLW9mZnNldDogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIGJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaCBwYWRkbGVcbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBzd2l0Y2ggdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xuLy8gYXNrIGFib3V0IGFjY2Vzc2liaWxpdHkgb24gbGFiZWxcbi8vIGNoYW5nZSBjbGFzcyBuYW1lIGZvciB0ZXh0XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIGNsYXNzLlxuQG1peGluIHN3aXRjaC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206ICRzd2l0Y2gtbWFyZ2luO1xuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFRoZXNlIHByb3BlcnRpZXMgY2FzY2FkZSBkb3duIHRvIHRoZSBzd2l0Y2ggdGV4dFxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG5cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzd2l0Y2ggaW5wdXQuIEFwcGx5IHRoaXMgdG8gYW4gYDxpbnB1dD5gIHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRsZSBvZiBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byBhIGA8bGFiZWw+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXBhZGRsZSB7XG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1hY3RpdmUtb2ZmZXN0OiAkc3dpdGNoLXdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kO1xuICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuXG4gIC8vIFJlc2V0dGluZyB0aGVzZSA8bGFiZWw+IHByZXNldHMgc28gdHlwZSBzdHlsZXMgY2FzY2FkZSBkb3duXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XG4gIGlucHV0ICsgJiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gVGhlIHBhZGRsZSBpdHNlbGZcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRzd2l0Y2gtcGFkZGxlLW9mZnNldDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb247XG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBDaGFuZ2UgdGhlIHZpc3VhbCBzdHlsZSB3aGVuIHRoZSBzd2l0Y2ggaXMgYWN0aXZlXG4gIGlucHV0OmNoZWNrZWQgfiAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGFjdGl2ZS9pbmFjdGl2ZSB0ZXh0IGluc2lkZSBhIHN3aXRjaC4gQXBwbHkgdGhpcyB0byB0ZXh0IGVsZW1lbnRzIGluc2lkZSB0aGUgc3dpdGNoIGA8bGFiZWw+YC5cbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWFjdGl2ZSB7XG4gICN7JGdsb2JhbC1sZWZ0fTogOCU7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5hY3RpdmUgc3RhdGUgdGV4dCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLXRleHQtaW5hY3RpdmUge1xuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XG5cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc2l6ZSBvZiBhIHN3aXRjaCBieSBtb2RpZnlpbmcgdGhlIHNpemUgb2YgdGhlIGJvZHkgYW5kIHBhZGRsZS4gQXBwbHkgdGhpcyB0byBhIHN3aXRjaCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmb250LXNpemUgWzFyZW1dIC0gRm9udCBzaXplIG9mIGxhYmVsIHRleHQgd2l0aGluIHRoZSBzd2l0Y2guXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzd2l0Y2gtaGVpZ2h0IFsycmVtXSAtIEhlaWdodCBvZiB0aGUgc3dpdGNoIGJvZHkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtb2Zmc2V0IFswLjI1cmVtXSAtIFNwYWNpbmcgYmV0d2VlbiB0aGUgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHN3aXRjaCBib2R5LlxuQG1peGluIHN3aXRjaC1zaXplKFxuICAkZm9udC1zaXplOiAxcmVtLFxuICAkc3dpdGNoLWhlaWdodDogMnJlbSxcbiAgJHBhZGRsZS1vZmZzZXQ6IDAuMjVyZW1cbikge1xuXG4gICRzd2l0Y2gtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0ICogMjtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkcGFkZGxlLW9mZnNldDtcblxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuXG4gIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogJHN3aXRjaC13aWR0aDtcbiAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAkcGFkZGxlLW9mZnNldDtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtb2Zmc2V0O1xuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xuICAgIGhlaWdodDogJHBhZGRsZS1oZWlnaHQ7XG4gIH1cblxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRwYWRkbGUtYWN0aXZlLW9mZmVzdDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zd2l0Y2gge1xuICAvLyBDb250YWluZXIgY2xhc3NcbiAgLnN3aXRjaCB7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtY29udGFpbmVyO1xuICB9XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50XG4gIC5zd2l0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcbiAgfVxuXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXBhZGRsZTtcbiAgfVxuXG4gIC8vIEJhc2UgbGFiZWwgdGV4dCBzdHlsZXNcbiAgJXN3aXRjaC10ZXh0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dDtcbiAgfVxuXG4gIC8vIEFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xuICAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtYWN0aXZlO1xuICB9XG5cbiAgLy8gSW5hY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQtaW5hY3RpdmU7XG4gIH1cblxuICAvLyBTd2l0Y2ggc2l6ZXNcbiAgLnN3aXRjaC50aW55IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksICRzd2l0Y2gtaGVpZ2h0LXRpbnksICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cblxuICAuc3dpdGNoLnNtYWxsIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMiksICRzd2l0Y2gtaGVpZ2h0LXNtYWxsLCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5sYXJnZSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWVsZW1lbnQtbmVzdGluZywgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYmxlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciB0YWJsZSBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgc3RyaXBlZCB0YWJsZSByb3dzIGFuZCB0aGUgdGFibGUgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWNvbG9yLXNjYWxlOiA1JSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYmxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzY2FsZSBmb3IgZGFya2VuaW5nIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0cmlwZWQgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBMaXN0XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCB0YWJsZXMgYXJlIHN0cmlwZWQgYnkgZGVmYXVsdCBhbmQgYW4gLnVuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLiBJZiBgZmFsc2VgLCBhIC5zdHJpcGVkIGNsYXNzIGlzIGNyZWF0ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHRhYmxlLWlzLXN0cmlwZWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIHN0cmlwZWQgcm93cy5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBzdHJpcGUgb24gcm93cyBvZiB0aGUgdGFibGVzLCBleGNsdWRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLiBJZiBldmVuLCB0aGUgZXZlbiByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIG9kZCwgdGhlIG9kZCByb3dzIHdpbGwgaGF2ZSBhIGJhY2tncm91bmQgY29sb3IuIElmIGVtcHR5LCBvciBhbnkgb3RoZXIgdmFsdWUsIHRoZSB0YWJsZSByb3dzIHdpbGwgaGF2ZSBubyBzdHJpcGluZy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kdGFibGUtc3RyaXBlOiBldmVuICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWhlYWQtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWhlYWQtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGZvb3RlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWZvb3Qtcm93LWhvdmVyOiBkYXJrZW4oJHRhYmxlLWZvb3QtYmFja2dyb3VuZCwgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgaGVhZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb290ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHZhbHVlIGZvciBzaG93aW5nIHRoZSBoZWFkZXIgd2hlbiB1c2luZyBzdGFja2VkIHRhYmxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XG4gIHRyIHtcbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxuICAgIEBpZiAkc3RyaXBlID09IGV2ZW4ge1xuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHN0cmlwZSBpcyBzZXQgdG8gb2RkLCBkYXJrZW4gdGhlIG9kZCByb3dzLlxuICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLXVuc3RyaXBlKCkge1xuICB0ciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsICRpcy1zdHJpcGVkOiAkdGFibGUtaXMtc3RyaXBlZCkge1xuICB0aGVhZCxcbiAgdGJvZHksXG4gIHRmb290IHtcbiAgICBib3JkZXI6ICR0YWJsZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBDYXB0aW9uXG4gIGNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZFxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIFRhYmxlIGZvb3RcbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1mb290LWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBoZWFkIGFuZCBmb290XG4gIHRoZWFkLFxuICB0Zm9vdCB7XG4gICAgLy8gUm93cyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICAgIHRleHQtYWxpZ246ICN7JGdsb2JhbC1sZWZ0fTtcbiAgICB9XG4gIH1cblxuICAvLyBUYWJsZSByb3dzXG4gIHRib2R5IHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0YWJsZXMgYXJlIHN0cmlwZWRcbiAgQGlmICRpcy1zdHJpcGVkID09IHRydWUge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgfVxuXG4gICAgJi51bnN0cmlwZWQge1xuICAgICAgdGJvZHkge1xuICAgICAgICBAaW5jbHVkZSAtemYtdGFibGUtdW5zdHJpcGUoKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBub3Qgc3RyaXBlZFxuICBAZWxzZSBpZiAkaXMtc3RyaXBlZCA9PSBmYWxzZSB7XG4gICAgdGJvZHkge1xuICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgfVxuXG4gICAgJi5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXN0cmlwZSgkc3RyaXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RyaXBlIFskdGFibGUtc3RyaXBlXSAtIFVzZXMga2V5d29yZHMgZXZlbiwgb2RkLCBvciBub25lIHRvIGRhcmtlbiByb3dzIG9mIHRoZSB0YWJsZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZXZlbi5cbkBtaXhpbiB0YWJsZShcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcbiAgJG5lc3Q6IGZhbHNlXG4pIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuICBAaWYgJG5lc3Qge1xuICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBhdC1yb290IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBhYmlsaXR5IHRvIGhvcml6b250YWxseSBzY3JvbGwgdGhlIHRhYmxlIHdoZW4gdGhlIGNvbnRlbnQgb3ZlcmZsb3dzIGhvcml6b250YWxseS5cbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxuQG1peGluIHRhYmxlLWhvdmVyIHtcbiAgdGhlYWQgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgaGVhZGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtaGVhZC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGZvb3QgdHIge1xuICAgIC8vRGFya2VucyB0aGUgdGFibGUgZm9vdGVyIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZm9vdC1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkgdHIge1xuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgQGlmICR0YWJsZS1pcy1zdHJpcGVkID09IHRydWUge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICY6bm90KC51bnN0cmlwZWQpIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGFya2VucyB0aGUgb2RkIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAZWxzZWlmKCR0YWJsZS1zdHJpcGUgPT0gb2RkKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgJHRhYmxlLWlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIC8vIERhcmtlbnMgdGhlIGV2ZW4gc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBpZigkdGFibGUtc3RyaXBlID09IGV2ZW4pIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJi5zdHJpcGVkIHRyOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN0YWNrZWQgdGFibGUuIFVzZWZ1bCBmb3Igc21hbGwtc2NyZWVuIGxheW91dHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaGVhZGVyIFskc2hvdy1oZWFkZXItZm9yLXN0YWNrZWRdIC0gU2hvdyB0aGUgZmlyc3QgdGggb2YgaGVhZGVyIHdoZW4gc3RhY2tlZC5cbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcbiAgQGlmICRoZWFkZXIge1xuICAgIHRoZWFkIHtcbiAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIHRoZWFkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICB0cixcbiAgdGgsXG4gIHRkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdGFibGUoJG5lc3Q6ICRuZXN0KTtcbiAgfVxuXG4gIHRhYmxlLnN0YWNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZS1zdGFjaztcbiAgICB9XG4gIH1cblxuICB0YWJsZS5zY3JvbGwge1xuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcbiAgfVxuXG4gIHRhYmxlLmhvdmVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1ob3ZlcjtcbiAgfVxuXG4gIC50YWJsZS1zY3JvbGwge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdtYXRoJztcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENoZWNrcyB0aGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gY2hlY2sgdGhlIGx1bWluYW5jZSBvZi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG5AZnVuY3Rpb24gY29sb3ItbHVtaW5hbmNlKCRjb2xvcikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jcmVsYXRpdmVsdW1pbmFuY2VkZWZcbiAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICRyZ2JhMjogKCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAkcmdiOiBudGgoJHJnYmEsICRpKTtcbiAgICAkcmdiOiAkcmdiIC8gMjU1O1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86ICRsdW1pbmFuY2UxIC8gJGx1bWluYW5jZTI7XG5cbiAgQGlmICRsdW1pbmFuY2UyID4gJGx1bWluYW5jZTEge1xuICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgfVxuXG4gICRyYXRpbzogcm91bmQoJHJhdGlvICogMTApIC8gMTA7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6IDApIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdCA8IDMpIHtcbiAgICBAd2FybiBcIkNvbnRyYXN0IHJhdGlvIG9mICN7JGJlc3R9IG9uICN7JGJhc2V9IGlzIHByZXR0eSBiYWQsIGp1c3QgI3skY29udHJhc3R9XCI7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYG1hcCBpbnRvIHZhcmlhYmxlcywgc3VjaCBhcyBgJHByaW1hcnktY29sb3JgIGFuZCBgJHNlY29uZGFyeS1jb2xvcmAuIENhbGwgdGhpcyBtaXhpbiBiZWxvdyB0aGUgR2xvYmFsIHNlY3Rpb24gb2YgeW91ciBzZXR0aW5ncyBmaWxlIHRvIHByb3Blcmx5IG1pZ3JhdGUgeW91ciBjb2RlYmFzZS5cbkBtaXhpbiBhZGQtZm91bmRhdGlvbi1jb2xvcnMoKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gICAgJHByaW1hcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XG4gICAgJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRhYnNcbi8vLy9cblxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQWN0aXZlIGJhY2tncm91bmQgY29sb3Igb2YgYSB0YWIgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEFjdGl2ZSBmb250IGNvbG9yIG9mIHRhYiBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4kdGFiLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIGEgdGFiIGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBgZXhwYW5kLW5gIGNsYXNzZXMgdG8gaW5jbHVkZSBpbiB0aGUgQ1NTLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1leHBhbmQtbWF4OiA2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kdGFiLWNvbnRlbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiR0YWItY29udGVudC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGA8dWw+YC5cbkBtaXhpbiB0YWJzLWNvbnRhaW5lciAoXG4gICRtYXJnaW46ICR0YWItbWFyZ2luLFxuICAkYmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLFxuICAkYm9yZGVyLWNvbG9yOiAkdGFiLWNvbnRlbnQtYm9yZGVyXG4pIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1hcmdpbjogJG1hcmdpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcbiAgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSAoXG4gICRwYWRkaW5nOiAkdGFiLWl0ZW0tcGFkZGluZyxcbiAgJGZvbnQtc2l6ZTogJHRhYi1pdGVtLWZvbnQtc2l6ZSxcbiAgJGNvbG9yOiAkdGFiLWNvbG9yLFxuICAkY29sb3ItYWN0aXZlOiAkdGFiLWFjdGl2ZS1jb2xvcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICR0YWItYmFja2dyb3VuZC1hY3RpdmVcbikge1xuICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJGNvbG9yLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG5AbWl4aW4gdGFicy1jb250ZW50IChcbiAgJGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0YWItY29udGVudC1jb2xvcixcbiAgJGJvcmRlci1jb2xvcjogJHRhYi1jb250ZW50LWJvcmRlclxuKSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGVudCBjb250YWluZXIgdG8gaGF2ZSBhIHZlcnRpY2FsIHN0eWxlLCBieSBzaGlmdGluZyB0aGUgYm9yZGVyIGFyb3VuZC4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250ZW50KClgLlxuQG1peGluIHRhYnMtY29udGVudC12ZXJ0aWNhbCAoXG4gICRib3JkZXItY29sb3I6ICR0YWItY29udGVudC1ib3JkZXJcbikge1xuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGluZGl2aWR1YWwgdGFiIGNvbnRlbnQgcGFuZWwgd2l0aGluIHRoZSB0YWIgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gdGFicy1wYW5lbCAoXG4gICRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZ1xuKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdGFicyB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsXG4gIC50YWJzLnZlcnRpY2FsIHtcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbDtcbiAgfVxuXG4gIC8vIFNpbXBsZVxuICAudGFicy5zaW1wbGUge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQcmltYXJ5IGNvbG9yXG4gIC50YWJzLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuXG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJHByaW1hcnktY29sb3IpO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCRwcmltYXJ5LWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFicy10aXRsZSB7XG4gICAgQGluY2x1ZGUgdGFicy10aXRsZTtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudDtcbiAgfVxuXG4gIC50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcbiAgfVxuXG4gIC50YWJzLXBhbmVsIHtcbiAgICBAaW5jbHVkZSB0YWJzLXBhbmVsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0aHVtYm5haWxcbi8vLy9cblxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBCb3JkZXJcbiR0aHVtYm5haWwtYm9yZGVyOiBzb2xpZCA0cHggJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBMZW5ndGhcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAwLjIpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFNoYWRvd1xuJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBUcmFuc2l0aW9uIHByb3BydGllcyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxuQG1peGluIHRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkdGh1bWJuYWlsLW1hcmdpbi1ib3R0b207XG5cbiAgYm9yZGVyOiAkdGh1bWJuYWlsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHRodW1ibmFpbC1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xuXG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5AbWl4aW4gdGh1bWJuYWlsLWxpbmsge1xuICB0cmFuc2l0aW9uOiAkdGh1bWJuYWlsLXRyYW5zaXRpb247XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10aHVtYm5haWwge1xuICAudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWw7XG4gIH1cblxuICBhLnRodW1ibmFpbCB7XG4gICAgQGluY2x1ZGUgdGh1bWJuYWlsLWxpbms7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIFdlaWdodFxuJHRpdGxlYmFyLXRleHQtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRpdGxlYmFyLWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tdGl0bGUtYmFyIHtcbiAgLnRpdGxlLWJhciB7XG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0aXRsZWJhci1jb2xvcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIH1cblxuICAgIC5tZW51LWljb24ge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHRpdGxlYmFyLWljb24tc3BhY2luZztcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50aXRsZS1iYXItbGVmdCxcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50aXRsZS1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC50aXRsZS1iYXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkdGl0bGViYXItdGV4dC1mb250LXdlaWdodDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdG9vbHRpcFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYm90dG9tIG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgTGlzdFxuJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGZvbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgdGhlIHRvb2x0aXAgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBhZGRpbmc6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCB3aWR0aCBmb3IgdG9vbHRpcHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBpcCBoZWlnaHQgZm9yIHRvb2x0aXBzLiBUaGlzIGlzIGhlbHBmdWwgZm9yIGNhbGN1bGF0aW5nIHRoZSBkaXN0YW5jZSBvZiB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0b29sdGlwIHdvcmQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9vbHRpcC1waXAtaGVpZ2h0OiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoYXMtdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm9yZGVyLWJvdHRvbTogJGhhcy10aXAtYm9yZGVyLWJvdHRvbTtcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xuICBjdXJzb3I6IGhlbHA7XG59XG5cbkBtaXhpbiB0b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArICN7JHRvb2x0aXAtcGlwLWhlaWdodH0pO1xuICB6LWluZGV4OiAxMjAwO1xuXG4gIG1heC13aWR0aDogMTByZW07XG4gIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxuXG4gICYudG9wOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGRvd24pO1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gIH1cblxuICAmLmxlZnQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgcmlnaHQpO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuXG4gICYucmlnaHQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgbGVmdCk7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvb2x0aXAge1xuICAuaGFzLXRpcCB7XG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcbiAgfVxuXG4gIC50b29sdGlwIHtcbiAgICBAaW5jbHVkZSB0b29sdGlwO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b3AtYmFyXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXIuIFRoaXMgY29sb3IgYWxzbyBjYXNjYWRlcyB0byBtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHN1Ym1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci4gVXNlZnVsbCBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgdHJhbnNwYXJlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kOiAkdG9wYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItdGl0bGUtc3BhY2luZzogMC41cmVtIDFyZW0gMC41cmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGA8aW5wdXQ+YCBlbGVtZW50cyBpbnNpZGUgdGhlIHRvcCBiYXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdG9wYmFyLWlucHV0LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXG4vLy8gQHR5cGUgQnJlYWtwb2ludFxuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQ6IG1lZGl1bSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHRvcCBiYXIgY29udGFpbmVyLlxuQG1peGluIHRvcC1iYXItY29udGFpbmVyIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cblxuICBwYWRkaW5nOiAkdG9wYmFyLXBhZGRpbmc7XG5cbiAgJixcbiAgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItYmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyBkaWZmZXJudCBmcm9tICR0b3BiYXItYmFja2dyb3VuZC1zdWJtZW51XG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XG4gICAgdWwgdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXG4gIGlucHV0IHtcbiAgICBtYXgtd2lkdGg6ICR0b3BiYXItaW5wdXQtd2lkdGg7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gIH1cblxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcbiAgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgfVxuXG4gIGlucHV0LmJ1dHRvbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbi8vLyBNYWtlcyBzZWN0aW9ucyBvZiBhIHRvcCBiYXIgc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG5AbWl4aW4gdG9wLWJhci1zdGFja2VkIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFN1Yi1zZWN0aW9uc1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBVbmRvZXMgdGhlIENTUyBhcHBsaWVkIGJ5IHRoZSBgdG9wLWJhci1zdGFja2VkKClgIG1peGluLlxuQG1peGluIHRvcC1iYXItdW5zdGFjayB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXItcmlnaHQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRvcC1iYXIge1xuICAvLyBUb3AgYmFyIGNvbnRhaW5lclxuICAudG9wLWJhciB7XG4gICAgQGluY2x1ZGUgdG9wLWJhci1jb250YWluZXI7XG5cbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcbiAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSB0b3AtYmFyLXVuc3RhY2s7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgY2xhc3NlcyBmb3Igc3RhY2tpbmcgb24gZWFjaCBzY3JlZW4gc2l6ZSAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzKVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgJi5zdGFja2VkLWZvci0jeyRzaXplfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViLXNlY3Rpb25zXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgbWFyZ2luOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC50b3AtYmFyLXRpdGxlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xuXG4gICAgICAubWVudS1pY29uIHtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1iYXItbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gKDEgLyAxNik7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAoMSAvIDE2KTtcbiAgLy8gdGVzdCBhY3R1YWwgbG93ZXItYm91bmQtc2l6ZSwgaWYgMCBzZXQgaXQgdG8gMGVtXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcbiAgICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSk7XG4gIH1cblxuICBAaWYgJHVwcGVyLWJvdW5kLXNpemUgPT0gbnVsbCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAkdXBwZXItYm91bmQ6IC16Zi1icC10by1lbSgkdXBwZXItYm91bmQtc2l6ZSk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcyB7XG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUpO1xuICAgICAgfVxuXG4gICAgICAuc2hvdy1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgaGlkZS1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9LW9ubHkge1xuICAgICAgQGluY2x1ZGUgc2hvdy1mb3Itb25seSgkc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgLy8gTmVlZCBhIFwiaGlkZS1mb3Itc3JcIiBjbGFzcz8gQWRkIGFyaWEtaGlkZGVuPSd0cnVlJyB0byB0aGUgZWxlbWVudFxuICAuc2hvdy1mb3Itc3IsXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZTtcbiAgfVxuXG4gIC8vIE9ubHkgZGlzcGxheSB0aGUgZWxlbWVudCB3aGVuIGl0J3MgZm9jdXNlZFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsb2F0XG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXMge1xuICAuZmxvYXQtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZmxvYXQtY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAuY2xlYXJmaXgge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxuXG5AbWl4aW4gLW1vdGlvbi11aS1kZWZhdWx0cyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLWVhc2luZ3MsIGRlZmF1bHQpO1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xuICAvLyBTbGlkZVxuICAuc2xpZGUtaW4tZG93biAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGRvd24pOyB9XG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XG4gIC5zbGlkZS1pbi11cCAgICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgdXApOyB9XG4gIC5zbGlkZS1pbi1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgbGVmdCk7IH1cbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxuICAuc2xpZGUtb3V0LXJpZ2h0ICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHJpZ2h0KTsgfVxuICAuc2xpZGUtb3V0LXVwICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIHVwKTsgfVxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XG4gIC5mYWRlLW91dCB7IEBpbmNsdWRlIG11aS1mYWRlKG91dCwgMSwgMCk7IH1cblxuICAvLyBIaW5nZVxuICAuaGluZ2UtaW4tZnJvbS10b3AgICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCk7IH1cbiAgLmhpbmdlLWluLWZyb20tcmlnaHQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICByaWdodCk7IH1cbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWxlZnQgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgbGVmdCk7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXggIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wLCAgIGNlbnRlcik7IH1cbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cbiAgLmhpbmdlLW91dC1mcm9tLXRvcCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3ApOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1yaWdodCAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgcmlnaHQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGxlZnQpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteCB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XG5cbiAgLy8gU2NhbGVcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XG4gIC5zY2FsZS1pbi1kb3duICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMS41LCAxKTsgfVxuICAuc2NhbGUtb3V0LXVwICAgeyBAaW5jbHVkZSBtdWktem9vbShvdXQsIDEsIDEuNSk7IH1cbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XG5cbiAgLy8gU3BpblxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxuICAuc3Bpbi1vdXQgICAgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGN3KTsgfVxuICAuc3Bpbi1pbi1jY3cgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjY3cpOyB9XG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cblxuICAvLyBUcmFuc2l0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tZHVyYXRpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IHRyYW5zaXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLWFuaW1hdGlvbnMge1xuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxuICAuc3Bpbi1jdyAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4pOyB9XG4gIC5zcGluLWNjdyB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3BpbihjY3cpKTsgfVxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cblxuICAuc2hha2UsXG4gIC5zcGluLWN3LFxuICAuc3Bpbi1jY3csXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XG4gIH1cblxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXG4gIC8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4gIC5pbmZpbml0ZSB7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLXNwZWVkcyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1kZWxheXMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBGb3JtYXQgZm9yIENTUyBjbGFzc2VzIGNyZWF0ZWQgd2l0aCBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cbi8vLyBAcHJvcCB7U3RyaW5nfSBwcmVmaXggWydtdWktJ10gLSBQcmVmaXggdG8gYWRkIGJlZm9yZSB0aGUgc3RhdGUgb2YgYSBjbGFzcy4gRW50ZXIgYW4gZW1wdHkgc3RyaW5nIHRvIHVzZSBubyBwcmVmaXguXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnLWFjdGl2ZSddIC0gU3VmZml4IHRvIGFkZCB0byB0aGUgYWN0aXZlIHN0YXRlIGNsYXNzLlxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXG4gIGNoYWluOiB0cnVlLFxuICBwcmVmaXg6ICdtdWktJyxcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3RhdGVzOiAoXG4gIGluOiAnZW50ZXInLFxuICBvdXQ6ICdsZWF2ZScsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBzcGVlZCB0aGF0IHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zIHBsYXkgYXQsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgc3BlZWQuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXNwZWVkczogKFxuICBkZWZhdWx0OiA1MDBtcyxcbiAgc2xvdzogNzUwbXMsXG4gIGZhc3Q6IDI1MG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWRlbGF5czogKFxuICBkZWZhdWx0OiAwLFxuICBzaG9ydDogMzAwbXMsXG4gIGxvbmc6IDcwMG1zLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZWFzaW5nIGZvciB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBlYXNpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLWVhc2luZ3M6IChcbiAgZGVmYXVsdDogbGluZWFyLFxuICBsaW5lYXI6IGxpbmVhcixcbiAgZWFzZTogZWFzZSxcbiAgZWFzZS1pbjogZWFzZS1pbixcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxuICBlYXNlLWluLW91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZS1pbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpLFxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuICBib3VuY2UtaW4tb3V0OiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSksXG4pICFkZWZhdWx0O1xuXG4vLy8gTWlzY2VsbGFuZW91cyBzZXR0aW5ncyByZWxhdGVkIHRvIE1vdGlvbiBVSS5cbi8vLyBAdHlwZSBNYXBcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBoaW5nZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNjYWxlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuJG1vdGlvbi11aS1zZXR0aW5nczogKFxuICBzbGlkZS1hbmQtZmFkZTogZmFsc2UsXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuICBzY2FsZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc3Bpbi1hbmQtZmFkZTogdHJ1ZSxcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMF0gLSBPcGFjaXR5IHRvIHN0YXJ0IGF0LiBNdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIE9wYWNpdHkgdG8gZW5kIG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWZhZGUoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAwLFxuICAkdG86IDEsXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDApO1xuXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAxMDApO1xuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIGVmZmVjdCBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG5AZnVuY3Rpb24gaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFja1xuKSB7XG4gIC8vIFJvdGF0aW9uIGRpcmVjdGlvbnMgd2hlbiBoaW5naW5nIGZyb20gYmFjayB2cy4gZnJvbnRcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnMtYmFjazogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICk7XG4gICRyb3RhdGlvbnMtZnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICk7XG5cbiAgLy8gUm90YXRpb24gb3JpZ2luXG4gICRyb3RhdGlvbjogJyc7XG4gIEBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1mcm9udCB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtZnJvbSwgJGZyb20pO1xuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWJhY2ssICRmcm9tKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gIH0gQGVsc2Uge1xuICAgICRzdGFydDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfSBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgJGtleWZyYW1lczogKFxuICAgIG5hbWU6ICdoaW5nZS0jeyRzdGF0ZX0tI3skZnJvbX0tI3skYXhpc30tI3skdHVybi1vcmlnaW59JyxcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxuICAgIDEwMDogKHRyYW5zZm9ybTogJGVuZCksXG4gICk7XG5cbiAgQHJldHVybiAka2V5ZnJhbWVzO1xufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLWhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2ssXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIGhpbmdlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzY2FsaW5nIHRyYW5zaXRpb24uIEEgc2NhbGUgb2YgYDFgIG1lYW5zIHRoZSBlbGVtZW50IGlzIHRoZSBzYW1lIHNpemUuIExhcmdlciBudW1iZXJzIG1ha2UgdGhlIGVsZW1lbnQgYmlnZ2VyLCB3aGlsZSBudW1iZXJzIGxlc3MgdGhhbiAxIG1ha2UgdGhlIGVsZW1lbnQgc21hbGxlci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMV0gLSBTaXplIHRvIGVuZCBhdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXpvb20oXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiAxLjUsXG4gICR0bzogMSxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc2NhbGUtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNwaW5uaW5nIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuIFRoZSBgdHVybmAgdW5pdCBpcyB1c2VkIHRvIHNwZWNpZnkgaG93IGZhciB0byByb3RhdGUuIGAxdHVybmAgaXMgZXF1YWwgdG8gYSAzNjAtZGVncmVlIHNwaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYW1vdW50IFswLjc1dHVybl0gLSBBbW91bnQgdG8gZWxlbWVudCB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zcGluKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBjdyxcbiAgJGFtb3VudDogMC43NXR1cm4sXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNwaW4tYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRzcGluOiBzcGluKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEga2V5ZnJhbWUgZnJvbSBvbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBlbGVtZW50IGJ5IGFkZGluZyB0aGUgYGFuaW1hdGlvbi1uYW1lYCBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xuICAkbmFtZTogbWFwLWdldCgtbXVpLXByb2Nlc3MtYXJncygkYXJncy4uLiksIG5hbWUpO1xuICBAaW5jbHVkZSBtdWkta2V5ZnJhbWVzKCRuYW1lLCAkYXJncy4uLik7XG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcbn1cbiIsImJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIG1heC13aWR0aDogMTAwJTtcblxuICAmLm1lbnUtZXhwYW5kZWQge1xuICAgIC5tb2JpbGUtbWVudSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59IiwiLyogU2xpZGVyICovXG5cbi5zbGljay1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5kcmFnZ2luZyBpbWcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2staW5pdGlhbGl6ZWQgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnNsaWNrLXZlcnRpY2FsICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuXG4vLyBTbGljayBpY29uIGVudGl0eSBjb2RlcyBvdXRwdXRzIHRoZSBmb2xsb3dpbmdcbi8vIFwiXFwyMTkwXCIgb3V0cHV0cyBhc2NpaSBjaGFyYWN0ZXIgXCLihpBcIlxuLy8gXCJcXDIxOTJcIiBvdXRwdXRzIGFzY2lpIGNoYXJhY3RlciBcIuKGklwiXG4vLyBcIlxcMjAyMlwiIG91dHB1dHMgYXNjaWkgY2hhcmFjdGVyIFwi4oCiXCJcblxuJHNsaWNrLWZvbnQtcGF0aDogXCIuLi9mb250cy9cIiAhZGVmYXVsdDtcbiRzbGljay1mb250LWZhbWlseTogXCJzbGlja1wiICFkZWZhdWx0O1xuJHNsaWNrLWxvYWRlci1wYXRoOiBcIi4vXCIgIWRlZmF1bHQ7XG4kc2xpY2stYXJyb3ctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kc2xpY2stZG90LWNvbG9yLWFjdGl2ZTogJHNsaWNrLWRvdC1jb2xvciAhZGVmYXVsdDtcbiRzbGljay1wcmV2LWNoYXJhY3RlcjogXCJcXDIxOTBcIiAhZGVmYXVsdDtcbiRzbGljay1uZXh0LWNoYXJhY3RlcjogXCJcXDIxOTJcIiAhZGVmYXVsdDtcbiRzbGljay1kb3QtY2hhcmFjdGVyOiBcIlxcMjAyMlwiICFkZWZhdWx0O1xuJHNsaWNrLWRvdC1zaXplOiByZW0tY2FsYygyOCkgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1kZWZhdWx0OiAwLjc1ICFkZWZhdWx0O1xuJHNsaWNrLW9wYWNpdHktb24taG92ZXI6IDEgIWRlZmF1bHQ7XG4kc2xpY2stb3BhY2l0eS1ub3QtYWN0aXZlOiAwLjI1ICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gc2xpY2staW1hZ2UtdXJsKCR1cmwpIHtcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhpbWFnZS11cmwpIHtcbiAgICBAcmV0dXJuIGltYWdlLXVybCgkdXJsKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiB1cmwoJHNsaWNrLWxvYWRlci1wYXRoICsgJHVybCk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHNsaWNrLWZvbnQtdXJsKCR1cmwpIHtcbiAgQGlmIGZ1bmN0aW9uLWV4aXN0cyhmb250LXVybCkge1xuICAgIEByZXR1cm4gZm9udC11cmwoJHVybCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsKCRzbGljay1mb250LXBhdGggKyAkdXJsKTtcbiAgfVxufVxuXG4vKiBTbGlkZXIgKi9cblxuLnNsaWNrLWxpc3Qge1xuICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIHNsaWNrLWltYWdlLXVybChcIi4uL2ltZy9hamF4LWxvYWRlci5naWZcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgO1xuICB9XG59XG5cbi8qIEljb25zICovXG5AaWYgJHNsaWNrLWZvbnQtZmFtaWx5ID09IFwic2xpY2tcIiB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcInNsaWNrXCI7XG4gICAgc3JjOiBzbGljay1mb250LXVybChcInNsaWNrLmVvdFwiKTtcbiAgICBzcmM6IHNsaWNrLWZvbnQtdXJsKFwic2xpY2suZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgc2xpY2stZm9udC11cmwoXCJzbGljay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHNsaWNrLWZvbnQtdXJsKFwic2xpY2sudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCBzbGljay1mb250LXVybChcInNsaWNrLnN2ZyNzbGlja1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cbn1cblxuLnNsaWNrLXByZXYsXG4uc2xpY2stbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiByZW0tY2FsYygyOCk7XG4gIHdpZHRoOiByZW0tY2FsYygyOCk7XG4gIGJvcmRlci1yYWRpdXM6MTAwJTtcbiAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI4KTtcbiAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gIH1cbn1cblxuLnNsaWNrLXByZXYge1xuICBsZWZ0OiByZW0tY2FsYygxNSk7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbGVmdDogcmVtLWNhbGMoLTIwKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgbGVmdDogcmVtLWNhbGMoLTQwKTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZWExMlwiO1xuICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICBjb2xvcjojZmZmO1xuICB9XG59XG5cbi5zbGljay1uZXh0IHtcbiAgcmlnaHQ6IHJlbS1jYWxjKDE1KTtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICByaWdodDogcmVtLWNhbGMoLTIwKTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcmlnaHQ6IHJlbS1jYWxjKC00MCk7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlYTExXCI7XG4gICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgIGNvbG9yOiNmZmY7XG4gIH1cbn1cblxuLyogRG90cyAqL1xuXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0yNXB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgZGlzcGxheTpub25lO1xuICB9XG4gIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBvcGFjaXR5OiAkc2xpY2stb3BhY2l0eS1vbi1ob3ZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJHNsaWNrLWRvdC1jaGFyYWN0ZXI7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkc2xpY2stZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNsaWNrLWRvdC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHNsaWNrLWRvdC1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktbm90LWFjdGl2ZTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICB9XG4gICAgfVxuICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjpiZWZvcmUge1xuICAgICAgY29sb3I6ICRzbGljay1kb3QtY29sb3ItYWN0aXZlO1xuICAgICAgb3BhY2l0eTogJHNsaWNrLW9wYWNpdHktZGVmYXVsdDtcbiAgICB9XG4gIH1cbn0iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW1CbGFjayc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9Hb3RoYW1CbGFjay5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0dvdGhhbUJsYWNrLmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9Hb3RoYW1CbGFjay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy9Hb3RoYW1CbGFjay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vZm9udHMvR290aGFtQmxhY2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL0dvdGhhbUJsYWNrLnN2ZyNHb3RoYW1CbGFjaycpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dvdGhhbUJvb2snO1xuICBzcmM6IHVybCgnLi4vZm9udHMvR290aGFtQm9vay5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0dvdGhhbUJvb2suZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL0dvdGhhbUJvb2sud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvR290aGFtQm9vay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vZm9udHMvR290aGFtQm9vay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnLi4vZm9udHMvR290aGFtQm9vay5zdmcjR290aGFtQm9vaycpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0lGQ0lOU0FORVJPREVPQk9MREJPTEQnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL0lGQ0lOU0FORVJPREVPQk9MREJPTEQuZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL0lGQ0lOU0FORVJPREVPQk9MREJPTEQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gIHVybCgnLi4vZm9udHMvSUZDSU5TQU5FUk9ERU9CT0xEQk9MRC5zdmcjSUZDSU5TQU5FUk9ERU9CT0xEQk9MRCcpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbkBtaXhpbiBnb3RoYW0tYmxhY2soKSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQmxhY2snO1xufVxuXG5AbWl4aW4gZ290aGFtLWJvb2soKSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtQm9vayc7XG59XG5cbkBtaXhpbiBpZmNpbi1ib2xkKCkge1xuICBmb250LWZhbWlseTogJ0lGQ0lOU0FORVJPREVPQk9MREJPTEQnO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvc3BzLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvc3BzLmVvdCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCcuLi9mb250cy9zcHMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udHMvc3BzLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9zcHMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJy4uL2ZvbnRzL3Nwcy5zdmcnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRiYXNlIGNsYXNzIGRlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDFlbS8xICdzcHMnO1xuICBzcGVhazogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNoYW5nZSBpY29uIHNpemVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogcmVsYXRpdmUgdW5pdHMgKi9cbi5pY29uLXNtIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbi5pY29uLWxnIHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cbi8qIGFic29sdXRlIHVuaXRzICovXG4uaWNvbi0xNiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5pY29uLTMyIHtcbiAgZm9udC1zaXplOiAzMnB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGFkZCBhIHNxdWFyZS9jaXJjbGUgYmFja2dyb3VuZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmljb24tYmctc3F1YXJlLFxuLmljb24tYmctY2lyY2xlIHtcbiAgcGFkZGluZzogMC4zNWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLmljb24tYmctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgdXNlIGljb25zIGFzIGxpc3QgaXRlbSBtYXJrZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLXVsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uaWNvbi11bCA+IGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uaWNvbi11bCA+IGxpID4gLmljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNGVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHNwaW5uaW5nIGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pY29uLWlzLXNwaW5uaW5nIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiBpY29uLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGljb24tc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgaWNvbi1zcGluIHtcbiAgMCUge1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGljb24tc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByb3RhdGVkL2ZsaXBwZWQgaWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmljb24tcm90YXRlLTkwIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0xKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi5pY29uLXJvdGF0ZS0xODAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4uaWNvbi1yb3RhdGUtMjcwIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuLmljb24tZmxpcC15IHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgLW1vei10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG59XG4uaWNvbi1mbGlwLXgge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gIC1vLXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmljb24tbGlua2VkaW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTA2XCI7XG59XG5cbi5pY29uLWluc3RhZ3JhbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMDdcIjtcbn1cblxuLmljb24tZmFjZWJvb2s6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTA4XCI7XG59XG5cbi5pY29uLXR3aXR0ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTA5XCI7XG59XG5cbi5pY29uLWRvd24tYXJyb3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG59XG5cbi5pY29uLWxlZnQtYXJyb3c6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTBiXCI7XG59XG5cbi5pY29uLXJpZ2h0LWFycm93OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWEwY1wiO1xufVxuXG4uaWNvbi11cC1hcnJvdzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGRcIjtcbn1cblxuLmljb24tem9vbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMGVcIjtcbn1cblxuLmljb24tcmlnaHQtYXJyb3ctMi0yOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExMVwiO1xufVxuXG4uaWNvbi1sZWZ0LWFycm93LTItMjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTJcIjtcbn1cblxuLmljb24tbG9nby1saW5rZWRpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTNcIjtcbn1cblxuLmljb24tbW91c2UtYW5pbWF0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE0XCI7XG59XG5cbi5pY29uLXBpbi0zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExNVwiO1xufVxuXG4uaWNvbi1zbWFsbC11cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTZcIjtcbn1cblxuLmljb24tc21hbGwtZG93bjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMTdcIjtcbn1cblxuLmljb24tY2FsZW5kYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTE4XCI7XG59XG5cbi5pY29uLWNsb3NlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExOVwiO1xufVxuXG4uaWNvbi1oYW1idXJnZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFhXCI7XG59XG5cblxuLmljb24tYmVkcm9vbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMWJcIjtcbn1cblxuLmljb24tY29mZmVlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZWExY1wiO1xufVxuXG4uaWNvbi1zdGFuZGluZy1tYW46OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFkXCI7XG59XG5cbi5pY29uLWV5ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMWVcIjtcbn1cblxuLmljb24tem9vbS0xMDA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlYTFmXCI7XG59XG5cbi5pY29uLXRhZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGVhMjBcIjtcbn0iLCJAbWl4aW4gYWxpZ25mdWxsKCkge1xuICAgIG1hcmdpbi1sZWZ0ICA6IGNhbGMoIC0xMDB2dyAvIDIgKyAxMDAlIC8gMiApO1xuICAgIG1hcmdpbi1yaWdodCA6IGNhbGMoIC0xMDB2dyAvIDIgKyAxMDAlIC8gMiApO1xuICAgIG1heC13aWR0aCAgICA6IDEwMHZ3O1xufVxuXG4uYWxpZ25mdWxsIHtcbiAgICBAaW5jbHVkZSBhbGlnbmZ1bGwoKTtcbn0iLCJib2R5IC5tcGhiLWNhbGVuZGFyIC5tcGhiLWRhdGVwaWNrZXItZGFyay1ncmVlbi5kYXRlcGljayB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIFxuICAgIC5kYXRlcGljay1uYXYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNTJCOTY3O1xuICAgICAgICBcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlOztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgYTpob3ZlcixcbiAgICAgICAgYS5kYXRlcGljay1kaXNhYmxlZDpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzUyQjk2NztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuZGF0ZXBpY2stbW9udGgge1xuICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7XG4gICAgfVxuICAgIFxuICAgIC5kYXRlcGljay1tb250aC1oZWFkZXIge1xuICAgICAgICAmLFxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICM1MkI5Njc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLmRhdGVwaWNrLW1vbnRoIHtcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgY29sb3I6ICM1MkI5Njc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLm1waGItcGFzdC1kYXRlLFxuICAgICAgICAgICAgLm1waGItbm90LWF2YWlsYWJsZS1kYXRlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5kYXRlcGljay1vdGhlci1tb250aCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2RkZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLm1waGItYXZhaWxhYmxlLWRhdGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzUyQjk2NztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGVhZGVyIHtcbiAgYmFja2dyb3VuZDojMTMxMjEzO1xuICAuaGVhZGVyLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHotaW5kZXg6OTk5O1xuXG4gICAgLmhlYWRlci10b3Age1xuICAgICAgaGVpZ2h0OnJlbS1jYWxjKDEwMCk7XG4gICAgICBwb3NpdGlvbjpmaXhlZDtcbiAgICAgIHRvcDowO1xuICAgICAgbGVmdDowO1xuICAgICAgcmlnaHQ6MDtcbiAgICAgIHRyYW5zaXRpb246YWxsIDAuM3M7XG4gICAgICB6LWluZGV4Ojk5OTk7XG4gICAgICAmLnN0aWNreS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiMxMzEyMTM7XG4gICAgICB9XG4gICAgICAubG9nbyB7XG4gICAgICAgIG1hcmdpbi10b3A6cmVtLWNhbGMoMjUpO1xuICAgICAgICBhIHtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OnJlbS1jYWxjKDM2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5tYWluLW1lbnUge1xuICAgICAgICBmbG9hdDpyaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDpyZW0tY2FsYyg0MCk7XG4gICAgICAgID4gdWwge1xuICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMTUgNSAxNSk7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgY29sb3I6I2ZmZmZmZjtcbiAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOnJlbS1jYWxjKDMpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcztcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgY29sb3I6I2VlZWVlZTtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjojZmZmZmZmO1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDpyZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgIHotaW5kZXg6OTk7XG4gICAgICAgICAgICAgIG1hcmdpbjowO1xuICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiMxMzEyMTM7XG4gICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgIG1pbi13aWR0aDpyZW0tY2FsYygxNjApO1xuICAgICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDE1IDApO1xuICAgICAgICAgICAgICAvL2JveC1zaGFkb3c6MCByZW0tY2FsYyg0KSByZW0tY2FsYygzMikgMCByZ2JhKDAsMCwwLDAuMTUpO1xuICAgICAgICAgICAgICBsaSB7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiNmZmZmZmY7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDEwIDIwKTtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDpyZW0tY2FsYyg1KSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjojZWVlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IzZEQTIzNDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tZW51LWl0ZW0taGFzLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6cmVtLWNhbGMoNyk7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHJpZ2h0OnJlbS1jYWxjKDQpO1xuICAgICAgICAgICAgICAgICAgdG9wOnJlbS1jYWxjKDApO1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246YWxsIDAuM3M7XG4gICAgICAgICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmJvb2stYnV0dG9uIHtcblxuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMzYpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiM1MkI5Njc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDpyZW0tY2FsYygtOCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czpyZW0tY2FsYyg1KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDpyZW0tY2FsYygyNSk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOnJlbS1jYWxjKDIpIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246YWxsIDAuM3M7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiNmZmY7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICAuc2VhcmNoLWZvcm0ge1xuICAgIHBhZGRpbmc6cmVtLWNhbGMoMTIwIDEwIDAgMTApO1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHotaW5kZXg6OTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDo1MCU7XG4gICAgICBsZWZ0OjUwJTtcbiAgICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgIHBhZGRpbmc6MDtcbiAgICB9XG5cbiAgICAgIC5mb3JtLWRldGFpbHMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg0MCk7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzUpO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIC5hZHZhbmNlZC1zZWFyY2gge1xuICAgICAgICAubXBoYl9zY19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgLm1waGJfc2Nfc2VhcmNoLWNoZWNrLWluLWRhdGUsXG4gICAgICAgICAgLm1waGJfc2Nfc2VhcmNoLWNoZWNrLW91dC1kYXRlLFxuICAgICAgICAgIC5tcGhiX3NjX3NlYXJjaC1hZHVsdHMge1xuICAgICAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNSk7XG4gICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAgICAgICAgICAgYWJiciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBpbnB1dCxcbiAgICAgICAgICAgID4gc2VsZWN0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgIzcwNzA3MDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubXBoYl9zY19zZWFyY2gtY2hlY2staW4tZGF0ZSxcbiAgICAgICAgICAubXBoYl9zY19zZWFyY2gtY2hlY2stb3V0LWRhdGUge1xuICAgICAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWExOFwiO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC5tcGhiX3NjX3NlYXJjaC1hZHVsdHMge1xuICAgICAgICAgICAgPiBzZWxlY3Qge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMTApO1xuICAgICAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoMzIpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm1waGJfc2Nfc2VhcmNoLXN1Ym1pdC1idXR0b24td3JhcHBlciB7XG4gICAgICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzUyQjk2NztcbiAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgIzUyQjk2NztcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cbiAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiByZW0tY2FsYygyKSBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgfVxuICAmLmxhbmRpbmctaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIG1pbi1oZWlnaHQ6cmVtLWNhbGMoNDAwKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGhlaWdodDoxMDB2aDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OicnO1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICB0b3A6MDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHJpZ2h0OjA7XG4gICAgICBib3R0b206MDtcbiAgICAgIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpO1xuICAgICAgei1pbmRleDozO1xuICAgIH1cbiAgICB2aWRlbyB7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDowO1xuICAgICAgbGVmdDpyZW0tY2FsYygtNSk7XG4gICAgICByaWdodDpyZW0tY2FsYygtNSk7XG4gICAgICBib3R0b206MDtcbiAgICAgIHotaW5kZXg6MjtcblxuICAgICAgb2JqZWN0LWZpdDpjb3ZlcjtcbiAgICAgIHdpZHRoOiAxMDF2dztcbiAgICAgIG1pbi1oZWlnaHQ6cmVtLWNhbGMoNDAwKTtcbiAgICAgIGhlaWdodDpyZW0tY2FsYyg0MDApO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OnJlbS1jYWxjKDUwMCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGhlaWdodDoxMDB2aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGltZyB7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDowO1xuICAgICAgbGVmdDowO1xuICAgICAgcmlnaHQ6MDtcbiAgICAgIGJvdHRvbTowO1xuICAgICAgei1pbmRleDoyO1xuXG4gICAgICBvYmplY3QtZml0OmNvdmVyO1xuICAgICAgbWluLWhlaWdodDpyZW0tY2FsYyg0MDApO1xuICAgICAgaGVpZ2h0OnJlbS1jYWxjKDQwMCk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNTAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG5ib2R5IHtcbiAgJi5ub3QtbGFuZGluZyB7XG4gICAgcGFkZGluZy10b3A6cmVtLWNhbGMoNzApO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIHBhZGRpbmctdG9wOnJlbS1jYWxjKDEwMCk7XG4gICAgfVxuICAgIC5oZWFkZXIge1xuICAgICAgLmhlYWRlci10b3Age1xuICAgICAgICBiYWNrZ3JvdW5kOiMxMzEyMTM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5tb2JpbGUtaGVhZGVyIHtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIC5tb2JpbGUtaGVhZGVyLXRvcCB7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgei1pbmRleDo5OTk7XG4gICAgdG9wOjA7XG4gICAgbGVmdDowO1xuICAgIHJpZ2h0OjA7XG4gICAgaGVpZ2h0OnJlbS1jYWxjKDcwKTtcbiAgICB0cmFuc2l0aW9uOmFsbCAwLjNzO1xuICAgIGJhY2tncm91bmQ6IzEzMTIxMztcbiAgICAubG9nbyB7XG4gICAgICBtYXJnaW46cmVtLWNhbGMoMTUgMCAwIDE1KTtcbiAgICAgIGltZyB7XG4gICAgICAgIGhlaWdodDpyZW0tY2FsYygzMCk7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZW51LWJ0biB7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDpyZW0tY2FsYygyNSk7XG4gICAgICByaWdodDpyZW0tY2FsYygxNSk7XG4gICAgICAuaGFtYnVyZ2VyIHtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyOCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6I2ZmZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBib3JkZXItdG9wOiByZW0tY2FsYygyKSBzb2xpZCAjZmZmO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAgICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAgICAgICAtby10cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2U7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlO1xuXG4gICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDE2KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubW9iaWxlLW1lbnUge1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgdG9wOjA7XG4gIHotaW5kZXg6OTk5O1xuICBsZWZ0OnJlbS1jYWxjKC0xMDAwKTtcbiAgYmFja2dyb3VuZDojMTMxMjEzO1xuICB3aWR0aDowO1xuICByaWdodDowO1xuICBib3R0b206MDtcbiAgdHJhbnNpdGlvbjphbGwgMC4zcztcbiAgLmxvZ28ge1xuICAgIG1hcmdpbjpyZW0tY2FsYygxNSAwIDAgMTUpO1xuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6cmVtLWNhbGMoMzApO1xuICAgIH1cbiAgfVxuICAubWVudS1idG4ge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHRvcDpyZW0tY2FsYygyNSk7XG4gICAgcmlnaHQ6cmVtLWNhbGMoMTUpO1xuICB9XG4gIC5tb2JpbGUtbmF2IHtcbiAgICBtYXJnaW4tdG9wOnJlbS1jYWxjKDMwKTtcbiAgICA+IHVsIHtcbiAgICAgID4gbGkge1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE0KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygxNSk7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6cmVtLWNhbGMoNCkgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjojNTJCOTY3O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiM1MkI5Njc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgICAgIHJpZ2h0OnJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgICAgdG9wOnJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOm5vbmU7XG4gICAgICAgICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgICAgICAgIGJvcmRlcjpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgIGNvbG9yOiM1MkI5Njc7XG4gICAgICAgICAgICAgIGJvcmRlci1jb2xvcjojNTJCOTY3O1xuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWEwZFwiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiM1MkI5Njc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4uaGFtYnVyZ2VyIHtcbiAgd2lkdGg6IHJlbS1jYWxjKDMwKTtcbiAgaGVpZ2h0OiByZW0tY2FsYygyOCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJjpob3ZlciB7XG4gICAgc3BhbiB7XG4gICAgICBib3JkZXItY29sb3I6I2ZmZjtcbiAgICB9XG4gIH1cblxuICBzcGFuIHtcbiAgICBib3JkZXItdG9wOiByZW0tY2FsYygyKSBzb2xpZCAjZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAuNnMgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIC42cyBlYXNlO1xuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICB0b3A6IHJlbS1jYWxjKDgpO1xuICAgIH1cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICB0b3A6IHJlbS1jYWxjKDE2KTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbiYubWVudS1leHBhbmRlZCB7XG4gIC5oYW1idXJnZXIge1xuICAgIHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBzcGFuOm50aC1vZi10eXBlKDIpIHtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IC8qIElFIDkgKi9cbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHRvcDogcmVtLWNhbGMoMTIpO1xuICAgIH1cbiAgICBzcGFuOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgLyogSUUgOSAqL1xuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB0b3A6IHJlbS1jYWxjKDEyKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiNmZmY7XG4gIG1hcmdpbjowO1xuICBtaW4td2lkdGg6MTAwJTtcbiAgLnBhcmFsYXgtZm9vdGVyIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgIGhlaWdodDpyZW0tY2FsYyg1MjUpO1xuICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOnVybCgnLi4vaW1nL2xpbWUtdHJlZXMucG5nJykgbm8tcmVwZWF0IGNlbnRlciBib3R0b207XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6MTAwJTtcbiAgICB9XG4gICAgLmdyZWVuLXRyZWVzIHtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgYm90dG9tOjA7XG4gICAgICBsZWZ0OjA7XG4gICAgICByaWdodDowO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIH1cbiAgICB9XG5cblxuICB9XG5cbn1cbi5ncmVlbi1ib3gge1xuICBiYWNrZ3JvdW5kOiMxNzM2MTY7XG4gIHBvc2l0aW9uOnN0YXRpYztcbiAgcGFkZGluZzpyZW0tY2FsYyg1MCAxMCk7XG4gIGJvdHRvbTphdXRvO1xuICBsZWZ0OjA7XG4gIHJpZ2h0OjA7XG4gIHotaW5kZXg6NjA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMCA0MCAwKTtcbiAgfVxuICAuZm9vdGVyLWxvZ28ge1xuICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoMjApO1xuICAgIGEge1xuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OnJlbS1jYWxjKDM2KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmNvbnRhY3Qge1xuICAgIHNwYW4ge1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDE1KTtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OjA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoMjApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OnJlbS1jYWxjKDIwKTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IzhDOUEyQTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIC5sb2NhdGlvbnMge1xuICAgIGZsb2F0Om5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6cmVtLWNhbGMoMjApO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgIGZsb2F0OmxlZnQ7XG4gICAgfVxuICAgIC5sb2NhdGlvbiB7XG4gICAgICBtYXJnaW4tdG9wOnJlbS1jYWxjKDI1KTtcbiAgICAgIGgxIHtcbiAgICAgICAgY29sb3I6I2ZmZjtcbiAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxOCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDI3KTtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTE1XCI7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6cmVtLWNhbGMoLTI1KTtcbiAgICAgICAgICBjb2xvcjojOEM5QTJBO1xuICAgICAgICAgIHRvcDpyZW0tY2FsYygtMik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJvb2soKTtcbiAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiM4QzlBMkE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5zb2NpYWwge1xuICAgIGZsb2F0Om5vbmU7XG4gICAgbWFyZ2luLXRvcDpyZW0tY2FsYyg1MCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgZmxvYXQ6cmlnaHQ7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OnJlbS1jYWxjKDEwKTtcbiAgICAgICAgYSB7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIyKTtcbiAgICAgICAgICBjb2xvcjojZWVlO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IzhDOUEyQTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmJvcmRlcmVkIHtcbiAgICBwYWRkaW5nLXRvcDpyZW0tY2FsYyg0MCk7XG4gICAgYm9yZGVyLXRvcDpyZW0tY2FsYygxKSBzb2xpZCAjMjE0NDIwO1xuICAgIG1hcmdpbi10b3A6cmVtLWNhbGMoMjApO1xuICAgIC5jb3B5cmlnaHRzIHtcbiAgICAgIGNvbG9yOiNmZmY7XG4gICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE0KTtcbiAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDIwKTtcbiAgICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoMjApO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6I2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IzhDOUEyQTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLWxpbmtzIHtcbiAgICAgIGZsb2F0Om5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOnJlbS1jYWxjKDIwKTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZmxvYXQ6cmlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206MDtcbiAgICAgIH1cbiAgICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICBtYXJnaW46MDtcbiAgICAgICAgbGkge1xuICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDowO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygxNSk7XG4gICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMTUpO1xuICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6cmVtLWNhbGMoMyk7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcztcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgY29sb3I6I2VlZWVlZTtcbiAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4ubWFpbi13cmFwcGVyIHtcbiAgbWFyZ2luOjA7XG4gIHBhZGRpbmc6MDtcbiAgbWFyZ2luLWJvdHRvbTpyZW0tY2FsYygzNTApO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgei1pbmRleDoxMDA7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBtYXJnaW4tYm90dG9tOnJlbS1jYWxjKDM1MCk7XG4gIH1cblxufVxuLmZpeGVkLWZvb3RlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHJlbS1jYWxjKDM1MSk7XG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2JlYWNoLWZvb3Rlci5qcGcnKSA1MCUgMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcG9zaXRpb246IGZpeGVkOyBsZWZ0OiAwOyBib3R0b206IDA7XG4gIHotaW5kZXg6IC0xMDA7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC5maXhlZC1mb290ZXItZGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgaDMge1xuICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICBmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzYpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgY29sb3I6I2ZmZjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDQwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoNTApO1xuICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICBmb250LXNpemU6cmVtLWNhbGMoMTgpO1xuICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuICAgICAgY29sb3I6I2ZmZjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzApO1xuICAgICAgfVxuICAgIH1cbiAgICBhIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6cmVtLWNhbGMoNCk7XG4gICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG4gICAgICBoZWlnaHQ6cmVtLWNhbGMoNDQpO1xuICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoNDQpO1xuICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICBjb2xvcjojZmZmO1xuICAgICAgYm9yZGVyOnJlbS1jYWxjKDIpIHNvbGlkICNmZmY7XG4gICAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMzApO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50IDUwJSwgIzZEQTIzNCA1MCUpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAzMDAlIDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbTtcbiAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtcG9zaXRpb24gMC42cyBlYXNlLCBjb2xvciAgMC41cyBlYXNlO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE2KTtcbiAgICAgICAgd2lkdGg6YXV0bztcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgYm90dG9tO1xuICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjojNkRBMjM0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiXG4gIC5zaWRlYmFyIHtcbiAgICAud2lkZ2V0IHtcbiAgICAgIC53aWRnZXQtdGl0bGUge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzUpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgICAgLm1waGJfd2lkZ2V0X3NlYXJjaC1mb3JtIHtcbiAgICAgICAgLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1pbi1kYXRlLFxuICAgICAgICAubXBoYl93aWRnZXRfc2VhcmNoLWNoZWNrLW91dC1kYXRlLFxuICAgICAgICAubXBoYl93aWRnZXRfc2VhcmNoLWFkdWx0cyB7XG4gICAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogIzg4ODtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjUpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICAgYWJiciB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjQTczQjM4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgID4gaW5wdXQsXG4gICAgICAgICAgPiBzZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDEpIHNvbGlkICM3MDcwNzA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tcGhiX3dpZGdldF9zZWFyY2gtY2hlY2staW4tZGF0ZSxcbiAgICAgICAgLm1waGJfd2lkZ2V0X3NlYXJjaC1jaGVjay1vdXQtZGF0ZSB7XG4gICAgICAgICAgPiBsYWJlbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWExOFwiO1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygzMik7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXBoYl93aWRnZXRfc2VhcmNoLWFkdWx0cyB7XG4gICAgICAgICAgPiBzZWxlY3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTBhXCI7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMTApO1xuICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICAgIGNvbG9yOiAjNzA3MDcwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tcGhiX3dpZGdldF9zZWFyY2gtc3VibWl0LWJ1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOnJlbS1jYWxjKDE1KTtcbiAgICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM1MkI5Njc7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG4gICAgICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICM1MkI5Njc7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDIpIHNvbGlkICM1MkI5Njc7XG4gICAgICAgICAgICAgIGNvbG9yOiAjNTJCOTY3O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuIiwiLmdhbGxlcmllcy13cmFwcGVyIHtcbiAgcGFkZGluZzpyZW0tY2FsYygyMDAgMCk7XG4gIGJhY2tncm91bmQ6I2ZmZjtcbiAgLmZpbHRlcnMge1xuICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoNTApO1xuICAgIC5maWx0ZXJzLWxpc3Qge1xuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgICAgbWFyZ2luOjA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46cmVtLWNhbGMoNSk7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiM4QzlBMkE7XG4gICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgIHBhZGRpbmc6cmVtLWNhbGMoNyAxNSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOnJlbS1jYWxjKDQpO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IzE3MzYxNjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IzE3MzYxNjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmdhbGxlcmllcyB7XG4gICAgZGlzcGxheTpncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgZ3JpZC1nYXA6cmVtLWNhbGMoMzApO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgfVxufVxuXG4uZ2FsbGVyeS1jb250YWluZXIge1xuICBwb3NpdGlvbjpmaXhlZDtcbiAgdG9wOjA7XG4gIGxlZnQ6MDtcbiAgcmlnaHQ6MDtcbiAgYm90dG9tOjA7XG4gIHotaW5kZXg6OTk5OTk7XG4gIG92ZXJmbG93LXk6YXV0bztcbiAgb3ZlcmZsb3cteDpoaWRkZW47XG4gIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjgpO1xuICAuZ2FsbGVyeS1zbGlkZXIge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHotaW5kZXg6OTk5OTk5O1xuICB9XG4gIC5nYWxsZXJ5LWl0ZW1zIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB6LWluZGV4Ojk5OTk5OTtcbiAgICBtYXJnaW46cmVtLWNhbGMoODApIHJlbS1jYWxjKDEwKTtcbiAgICBiYWNrZ3JvdW5kOiNmZmY7XG4gICAgcGFkZGluZzpyZW0tY2FsYygyMCk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgIG1hcmdpbjpyZW0tY2FsYygxMDApIHJlbS1jYWxjKDMwKTtcblxuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBtYXJnaW46cmVtLWNhbGMoMTAwKSBhdXRvO1xuICAgICAgd2lkdGg6ODAlO1xuICAgIH1cbiAgICAudGl0bGUge1xuXG4gICAgICBoMyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDI2KTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuICAgICAgICBmb250LXdlaWdodDo3MDA7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgZmxvYXQ6cmlnaHQ7XG4gICAgICAgICAgaSB7XG5cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgY29sb3I6ICMyMjI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnNsaWRlci1mb3Ige1xuICAgICAgbWFyZ2luOjAgMCByZW0tY2FsYygyMCkgMDtcbiAgICAgIGhlaWdodDpyZW0tY2FsYygzMDApO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OnJlbS1jYWxjKDYwMCk7XG4gICAgICB9XG4gICAgICAuZnVsbCB7XG4gICAgICAgIGhlaWdodDpyZW0tY2FsYygzMDApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIGhlaWdodDpyZW0tY2FsYyg2MDApO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OnJlbS1jYWxjKDMwMCk7XG4gICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNjAwKTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuc2xpZGVyLW5hdiB7XG4gICAgICBtYXJnaW46MDtcbiAgICAgIC5zbGljay1saXN0IHtcbiAgICAgICAgLnNsaWNrLXRyYWNrIHtcblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudGh1bWIge1xuICAgICAgICBtYXJnaW46MCByZW0tY2FsYygyMCkgMCAwO1xuICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNzApO1xuICAgICAgICB3aWR0aDpyZW0tY2FsYyg3MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMjAwKTtcbiAgICAgICAgICB3aWR0aDpyZW0tY2FsYygyMDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNzApO1xuXG4gICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICB3aWR0aDpyZW0tY2FsYyg3MCk7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGhlaWdodDpyZW0tY2FsYygyMDApO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDpjb3ZlcjtcbiAgICAgICAgICAgIHdpZHRoOnJlbS1jYWxjKDIwMCkgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgei1pbmRleDo5OTk5OTk7XG4gICAgICB0b3A6IDQwJTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICBbZGlyPVwicnRsXCJdICYge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogLTI1cHg7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnaWNvbW9vbicgIWltcG9ydGFudDtcbiAgICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlODczXCI7XG4gICAgICAgIGNvbG9yOiAjZmZjNzJjO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDMzKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDQzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgIHJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICB0b3A6IDQwJTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICAgICAgICBzcGVhazogbm9uZTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgY29udGVudDogXCJcXGU4NzNcIjtcbiAgICAgICAgY29sb3I6ICNmZmM3MmM7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzMpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoNDMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbn1cblxuLmxhcmdlLWltYWdlOmhvdmVyIH4gLmNvbnRyb2xzLFxuLmNvbnRyb2xzOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNvbnRyb2xzIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI1JTtcbiAgdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZS1pbi1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHRvcDogMzAlO1xuICB9XG5cbn1cbi5jb250cm9scyAucHJldi1idXR0b24sXG4uY29udHJvbHMgLm5leHQtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjE1cyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBzdmcge1xuICAgIGZpbGw6I0ZGQzcyQztcbiAgfVxufVxuLmNvbnRyb2xzIC5wcmV2LWJ1dHRvbjpob3Zlcixcbi5jb250cm9scyAubmV4dC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuLmNvbnRyb2xzIC5wcmV2LWJ1dHRvbiB7XG4gIGxlZnQ6MDtcblxufVxuLmNvbnRyb2xzIC5uZXh0LWJ1dHRvbiB7XG4gIHJpZ2h0OiAwO1xuXG59XG4uY29udHJvbHMgLnByZXYtYnV0dG9uLmluYWN0aXZlLFxuLmNvbnRyb2xzIC5uZXh0LWJ1dHRvbi5pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIzLDEyMywxMjMsMCk7XG59XG4uY29udHJvbHMgLnByZXYtYnV0dG9uLmluYWN0aXZlOmhvdmVyLFxuLmNvbnRyb2xzIC5uZXh0LWJ1dHRvbi5pbmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIzLDEyMywxMjMsMCk7XG59XG4uY29udHJvbHMgc3ZnIHtcbiAgZmlsbDogI2ZmZjtcbn1cbi50aHVtYm5haWxzIHtcbiAgY3Vyc29yOiBncmFiO1xuICBjdXJzb3I6IC1vLWdyYWI7XG4gIGN1cnNvcjogLW1vei1ncmFiO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgbWFyZ2luLXRvcDpyZW0tY2FsYygyMCk7XG5cbiAgLmdhbGxlcnktaXRlbSB7XG4gICAgbWFyZ2luOiAwIDVweDtcbiAgfVxufVxuLmxhcmdlLWltYWdlIHtcbiAgbWluLWhlaWdodDpyZW0tY2FsYygyMDApO1xufVxuXG5cbi5mb3RvcmFtYV9fYXJyOmZvY3VzOmFmdGVyLFxuLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb246Zm9jdXM6YWZ0ZXIsXG4uZm90b3JhbWFfX2h0bWwsXG4uZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX2RvdDphZnRlcixcbi5mb3RvcmFtYV9fbmF2X19mcmFtZTpmb2N1cyAuZm90b3JhbWFfX3RodW1iOmFmdGVyLFxuLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUsXG4uZm90b3JhbWFfX3N0YWdlX19zaGFmdCxcbi5mb3RvcmFtYV9fdmlkZW8gaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDBcbn1cblxuLmZvdG9yYW1hLS1mdWxsc2NyZWVuLFxuLmZvdG9yYW1hX19pbWcge1xuICBtYXgtd2lkdGg6IDk5OTk5cHghaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiA5OTk5OXB4IWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAwIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMCFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwIC5mb3RvcmFtYV9fZ3JhYiB7XG4gIGN1cnNvcjogbW92ZTtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogLW8tZ3JhYjtcbiAgY3Vyc29yOiAtbXMtZ3JhYjtcbiAgY3Vyc29yOiBncmFiXG59XG5cbi5mb3RvcmFtYV9fZ3JhYmJpbmcgKiB7XG4gIGN1cnNvcjogbW92ZTtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IC1vLWdyYWJiaW5nO1xuICBjdXJzb3I6IC1tcy1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZ1xufVxuXG4uZm90b3JhbWFfX3NwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGUhaW1wb3J0YW50O1xuICB0b3A6IDUwJSFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDUwJSFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fYXJyLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fbmF2X19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3N0YWdlX19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3RodW1iLWJvcmRlcixcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fdmlkZW8tcGxheSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKVxufVxuXG4uZm90b3JhbWFfX2NhcHRpb24sXG4uZm90b3JhbWFfX25hdjphZnRlcixcbi5mb3RvcmFtYV9fbmF2OmJlZm9yZSxcbi5mb3RvcmFtYV9fc3RhZ2U6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlOmJlZm9yZSxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX2h0bWwsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19zcGlubmVyLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fc3RhZ2UsXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19zdGFnZSAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbn1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXMsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1cyxcbi5mb3RvcmFtYV9fbmF2X19mcmFtZSB7XG4gIG91dGxpbmU6IDA7XG4gIG1hcmdpbi1yaWdodDpyZW0tY2FsYygxMCk7XG59XG5cbi5mb3RvcmFtYV9fYXJyOmZvY3VzOmFmdGVyLFxuLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb246Zm9jdXM6YWZ0ZXIsXG4uZm90b3JhbWFfX25hdl9fZnJhbWU6Zm9jdXMgLmZvdG9yYW1hX19kb3Q6YWZ0ZXIsXG4uZm90b3JhbWFfX25hdl9fZnJhbWU6Zm9jdXMgLmZvdG9yYW1hX190aHVtYjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NSwgMjM0LCAuNSlcbn1cblxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlLFxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8sXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLS12aWRlbyAuZm90b3JhbWFfX2h0bWwsXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLS12aWRlbyAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19zdGFnZV9fc2hhZnQge1xuICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZSFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fbmF2X19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3N0YWdlX19zaGFmdCxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3RodW1iLWJvcmRlciB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtLCB3aWR0aDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCB3aWR0aDtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjEsIDAsIC4yNSwgMSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBtc1xufVxuXG4uZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX19uby1zZWxlY3QsXG4uZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuLmZvdG9yYW1hX192aWRlby1wbGF5LFxuLmZvdG9yYW1hX193cmFwIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZVxufVxuXG4uZm90b3JhbWFfX3NlbGVjdCB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XG4gIC1tcy11c2VyLXNlbGVjdDogdGV4dDtcbiAgdXNlci1zZWxlY3Q6IHRleHRcbn1cblxuLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX25hdl9fZnJhbWUge1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDBcbn1cblxuLmZvdG9yYW1hX19jYXB0aW9uX193cmFwLFxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lLFxuLmZvdG9yYW1hX19uYXZfX3NoYWZ0IHtcbiAgLW1vei1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAqZGlzcGxheTogaW5saW5lO1xuICAqem9vbTogMVxufVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWUsXG4uZm90b3JhbWFfX3RodW1iLWJvcmRlciB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94XG59XG5cbi5mb3RvcmFtYV9fY2FwdGlvbl9fd3JhcCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcbn1cblxuLmZvdG9yYW1hLS1oaWRkZW4sXG4uZm90b3JhbWFfX2xvYWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTk5OXB4O1xuICB0b3A6IC05OTk5OXB4O1xuICB6LWluZGV4OiAtMVxufVxuXG4uZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuLmZvdG9yYW1hX19uYXYsXG4uZm90b3JhbWFfX25hdl9fZnJhbWUsXG4uZm90b3JhbWFfX25hdl9fc2hhZnQsXG4uZm90b3JhbWFfX3N0YWdlX19mcmFtZSxcbi5mb3RvcmFtYV9fc3RhZ2VfX3NoYWZ0LFxuLmZvdG9yYW1hX192aWRlby1jbG9zZSxcbi5mb3RvcmFtYV9fdmlkZW8tcGxheSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnRcbn1cblxuLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbixcbi5mb3RvcmFtYV9fdmlkZW8tY2xvc2UsXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ZvdG9yYW1hLnBuZykgbm8tcmVwZWF0XG59XG5cbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjEuNSksXG4obWluLXJlc29sdXRpb246MmRwcHgpIHtcbiAgLmZvdG9yYW1hX19hcnIsXG4gIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuICAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlLFxuICAuZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvZm90b3JhbWFAMngucG5nKSAwIDAvOTZweCAxNjBweCBuby1yZXBlYXRcbiAgfVxufVxuXG4uZm90b3JhbWFfX3RodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdmN2Y3ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjcsIDEyNywgMTI3LCAuMilcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLmZvdG9yYW1hX19hcnIsXG4gIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uLFxuICAuZm90b3JhbWFfX3RodW1iLWJvcmRlcixcbiAgLmZvdG9yYW1hX192aWRlby1jbG9zZSxcbiAgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lIWltcG9ydGFudFxuICB9XG59XG5cbi5mb3RvcmFtYSB7XG4gIG1pbi13aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuXG59XG5cbi5mb3RvcmFtYTpub3QoLmZvdG9yYW1hLS11bm9idHJ1c2l2ZSk+Kjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGRpc3BsYXk6IG5vbmVcbn1cblxuLmZ1bGxzY3JlZW4ge1xuICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMCUhaW1wb3J0YW50O1xuICBtYXJnaW46IDAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6ICMwMDBcbn1cblxuLmZvdG9yYW1hLS1mdWxsc2NyZWVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDtcbiAgdG9wOiAwIWltcG9ydGFudDtcbiAgbGVmdDogMCFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwIWltcG9ydGFudDtcbiAgYm90dG9tOiAwIWltcG9ydGFudDtcbiAgZmxvYXQ6IG5vbmUhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ3IWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUhaW1wb3J0YW50O1xuICBtYXJnaW46IDAhaW1wb3J0YW50XG59XG5cbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX25hdixcbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX3N0YWdlIHtcbiAgYmFja2dyb3VuZDogIzAwMFxufVxuXG4uZm90b3JhbWFfX3dyYXAge1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlyZWN0aW9uOiBsdHI7XG4gIHotaW5kZXg6IDBcbn1cblxuLmZvdG9yYW1hX193cmFwLS1ydGwgLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUge1xuICBkaXJlY3Rpb246IHJ0bFxufVxuXG4uZm90b3JhbWFfX25hdixcbi5mb3RvcmFtYV9fc3RhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwJVxufVxuXG4uZm90b3JhbWFfX3dyYXAtLXBhbi15IHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXlcbn1cblxuLmZvdG9yYW1hX193cmFwIC5mb3RvcmFtYV9fcG9pbnRlciB7XG4gIGN1cnNvcjogcG9pbnRlclxufVxuXG4uZm90b3JhbWFfX3dyYXAtLXNsaWRlIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lIHtcbiAgb3BhY2l0eTogMSFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUge1xuICBvdmVyZmxvdzogaGlkZGVuXG59XG5cbi5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lLmZvdG9yYW1hX19hY3RpdmUge1xuICB6LWluZGV4OiA4XG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX3N0YWdlX19mcmFtZSB7XG4gIGRpc3BsYXk6IG5vbmVcbn1cblxuLmZvdG9yYW1hX193cmFwLS1mYWRlIC5mb3RvcmFtYV9fZmFkZS1mcm9udCxcbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX2ZhZGUtcmVhcixcbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS5mb3RvcmFtYV9fYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMFxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWZhZGUgLmZvdG9yYW1hX19mYWRlLWZyb250IHtcbiAgei1pbmRleDogOFxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWZhZGUgLmZvdG9yYW1hX19mYWRlLXJlYXIge1xuICB6LWluZGV4OiA3XG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX2ZhZGUtcmVhci5mb3RvcmFtYV9fYWN0aXZlIHtcbiAgei1pbmRleDogOVxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWZhZGUgLmZvdG9yYW1hX19zdGFnZSAuZm90b3JhbWFfX3NoYWRvdyB7XG4gIGRpc3BsYXk6IG5vbmVcbn1cblxuLmZvdG9yYW1hX19pbWcge1xuICAtbXMtZmlsdGVyOiBcImFscGhhKE9wYWNpdHk9MClcIjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBvcGFjaXR5OiAwO1xuICBib3JkZXI6IG5vbmUhaW1wb3J0YW50XG59XG5cbi5mb3RvcmFtYV9fZXJyb3IgLmZvdG9yYW1hX19pbWcsXG4uZm90b3JhbWFfX2xvYWRlZCAuZm90b3JhbWFfX2ltZyB7XG4gIC1tcy1maWx0ZXI6IFwiYWxwaGEoT3BhY2l0eT0xMDApXCI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xuICBvcGFjaXR5OiAxXG59XG5cbi5mb3RvcmFtYS0tZnVsbHNjcmVlbiAuZm90b3JhbWFfX2xvYWRlZC0tZnVsbCAuZm90b3JhbWFfX2ltZyxcbi5mb3RvcmFtYV9faW1nLS1mdWxsIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19sb2FkZWQtLWZ1bGwgLmZvdG9yYW1hX19pbWctLWZ1bGwge1xuICBkaXNwbGF5OiBibG9ja1xufVxuXG4uZm90b3JhbWFfX3dyYXAtLW9ubHktYWN0aXZlIC5mb3RvcmFtYV9fbmF2LFxuLmZvdG9yYW1hX193cmFwLS1vbmx5LWFjdGl2ZSAuZm90b3JhbWFfX3N0YWdlIHtcbiAgbWF4LXdpZHRoOiA5OTk5OXB4IWltcG9ydGFudFxufVxuXG4uZm90b3JhbWFfX3dyYXAtLW9ubHktYWN0aXZlIC5mb3RvcmFtYV9fc3RhZ2VfX2ZyYW1lIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tb25seS1hY3RpdmUgLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUuZm90b3JhbWFfX2FjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGVcbn1cbi5mb3RvcmFtYV9fbmF2IHtcbiAgZm9udC1zaXplOiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiA1XG59XG5cbi5mb3RvcmFtYV9fbmF2X19zaGFmdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0XG59XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyXG59XG5cbi5mb3RvcmFtYV9fbmF2LS1kb3RzIHtcbiAgZGlzcGxheTogYmxvY2tcbn1cblxuLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMzBweFxufVxuXG4uZm90b3JhbWFfX25hdi0tZG90cyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLXRodW1iLFxuLmZvdG9yYW1hX19uYXYtLWRvdHMgLmZvdG9yYW1hX190aHVtYi1ib3JkZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgbWFyZ2luOnJlbS1jYWxjKDEwKTtcbn1cblxuLmZvdG9yYW1hX19uYXYtLXRodW1icyB7XG4gIGRpc3BsYXk6IGJsb2NrXG59XG5cbi5mb3RvcmFtYV9fbmF2LS10aHVtYnMgLmZvdG9yYW1hX19uYXZfX2ZyYW1lIHtcbiAgcGFkZGluZy1sZWZ0OiAwIWltcG9ydGFudFxufVxuXG4uZm90b3JhbWFfX25hdi0tdGh1bWJzIC5mb3RvcmFtYV9fbmF2X19mcmFtZTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMCFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX19uYXYtLXRodW1icyAuZm90b3JhbWFfX25hdl9fZnJhbWUtLWRvdCB7XG4gIGRpc3BsYXk6IG5vbmVcbn1cblxuLmZvdG9yYW1hX19kb3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzdmN2Y3ZlxufVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWU6Zm9jdXMgLmZvdG9yYW1hX19kb3Q6YWZ0ZXIge1xuICBwYWRkaW5nOiAxcHg7XG4gIHRvcDogLTFweDtcbiAgbGVmdDogLTFweFxufVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWUuZm90b3JhbWFfX2FjdGl2ZSAuZm90b3JhbWFfX2RvdCB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogM3B4XG59XG5cbi5mb3RvcmFtYV9fbmF2X19mcmFtZS5mb3RvcmFtYV9fYWN0aXZlIC5mb3RvcmFtYV9fZG90OmFmdGVyIHtcbiAgcGFkZGluZzogM3B4O1xuICB0b3A6IC0zcHg7XG4gIGxlZnQ6IC0zcHhcbn1cblxuLmZvdG9yYW1hX190aHVtYiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZvdG9yYW1hX19uYXZfX2ZyYW1lOmZvY3VzIC5mb3RvcmFtYV9fdGh1bWIge1xuICB6LWluZGV4OiAyO1xuXG59XG5cbi5mb3RvcmFtYV9fdGh1bWItYm9yZGVyIHtcbiAgZGlzcGxheTpub25lO1xufVxuXG4uZm90b3JhbWFfX2NhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMwMDBcbn1cblxuLmZvdG9yYW1hX19jYXB0aW9uIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNSlcbn1cblxuLmZvdG9yYW1hX19jYXB0aW9uIGE6aG92ZXIge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDUxLCA1MSwgNTEsIC41KVxufVxuXG4uZm90b3JhbWFfX3dyYXAtLXJ0bCAuZm90b3JhbWFfX2NhcHRpb24ge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMFxufVxuXG4uZm90b3JhbWFfX3dyYXAtLW5vLWNhcHRpb25zIC5mb3RvcmFtYV9fY2FwdGlvbixcbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19jYXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uZm90b3JhbWFfX2NhcHRpb25fX3dyYXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC45KTtcbiAgcGFkZGluZzogNXB4IDEwcHhcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW5uZXIge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKVxuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXG4gIH1cbn1cblxuQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMClcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxuICB9XG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3NwaW5uZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbm5lciAyNHMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHNwaW5uZXIgMjRzIGluZmluaXRlIGxpbmVhclxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX19odG1sLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fc3RhZ2UgLmZvdG9yYW1hX19pbWcge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3Ncbn1cblxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8gLmZvdG9yYW1hX19odG1sLFxuLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX3N0YWdlX19mcmFtZS0tdmlkZW8gLmZvdG9yYW1hX19pbWcge1xuICAtbXMtZmlsdGVyOiBcImFscGhhKE9wYWNpdHk9MClcIjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBvcGFjaXR5OiAwO1xuXG59XG5cbi5mb3RvcmFtYV9fc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvXG59XG5cbi5mb3RvcmFtYV9fdmlkZW8ge1xuICB0b3A6IDMycHg7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTBcbn1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgLmZvdG9yYW1hX19hY3RpdmUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIHRyYW5zcGFyZW50XG4gIH1cbn1cblxuLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbixcbi5mb3RvcmFtYV9fdmlkZW8tY2xvc2UsXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDExO1xuICBjdXJzb3I6IHBvaW50ZXJcbn1cblxuLmZvdG9yYW1hX19hcnIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTZweFxufVxuXG4uZm90b3JhbWFfX2Fyci0tcHJldiB7XG4gIGxlZnQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwXG59XG5cbi5mb3RvcmFtYV9fYXJyLS1uZXh0IHtcbiAgcmlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMFxufVxuXG4uZm90b3JhbWFfX2Fyci0tZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAqZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogLjFcbn1cblxuLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB0b3A6IDJweDtcbiAgcmlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzJweDtcbiAgei1pbmRleDogMjBcbn1cblxuLmZvdG9yYW1hX19hcnI6Zm9jdXMsXG4uZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpmb2N1cyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJVxufVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMzJweFxufVxuXG4uZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICB3aWR0aDogOTZweDtcbiAgaGVpZ2h0OiA5NnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTQ4cHg7XG4gIG1hcmdpbi10b3A6IC00OHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4O1xuICBvcGFjaXR5OiAwXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMiAuZm90b3JhbWFfX3ZpZGVvLXBsYXksXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fc3RhZ2UgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uZm90b3JhbWFfX2Vycm9yIC5mb3RvcmFtYV9fdmlkZW8tcGxheSxcbi5mb3RvcmFtYV9fbG9hZGVkIC5mb3RvcmFtYV9fdmlkZW8tcGxheSxcbi5mb3RvcmFtYV9fbmF2X19mcmFtZSAuZm90b3JhbWFfX3ZpZGVvLXBsYXkge1xuICBvcGFjaXR5OiAxO1xuICBkaXNwbGF5OiBibG9ja1xufVxuXG4uZm90b3JhbWFfX25hdl9fZnJhbWUgLmZvdG9yYW1hX192aWRlby1wbGF5IHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHhcbn1cblxuLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IDA7XG4gIHotaW5kZXg6IDIwO1xuICBvcGFjaXR5OiAwXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMiAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMgLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMnB4LCAtMzJweCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzJweCwgLTMycHgsIDApXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAxXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMy5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX192aWRlby1jbG9zZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKVxufVxuXG4uZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fYXJyLFxuLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbiB7XG4gIG9wYWNpdHk6IDBcbn1cblxuLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Fycjpmb2N1cyxcbi5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb246Zm9jdXMge1xuICBvcGFjaXR5OiAxXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19hcnIsXG4uZm90b3JhbWFfX3dyYXAtLXZpZGVvIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uIHtcbiAgb3BhY2l0eTogMCFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MyLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMi5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICBkaXNwbGF5OiBub25lXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMi5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19hcnI6Zm9jdXMsXG4uZm90b3JhbWFfX3dyYXAtLWNzczIuZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fZnVsbHNjcmVlbi1pY29uOmZvY3VzIHtcbiAgZGlzcGxheTogYmxvY2tcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MyLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX2Fycixcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMi5mb3RvcmFtYV9fd3JhcC0tdmlkZW8gLmZvdG9yYW1hX19mdWxsc2NyZWVuLWljb24ge1xuICBkaXNwbGF5OiBub25lIWltcG9ydGFudFxufVxuXG4uZm90b3JhbWFfX3dyYXAtLWNzczMuZm90b3JhbWFfX3dyYXAtLW5vLWNvbnRyb2xzLmZvdG9yYW1hX193cmFwLS1zbGlkZS5mb3RvcmFtYV9fd3JhcC0tdG9nZ2xlLWFycm93cyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpub3QoOmZvY3VzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMnB4LCAtMzJweCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzJweCwgLTMycHgsIDApXG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMy5mb3RvcmFtYV9fd3JhcC0tbm8tY29udHJvbHMuZm90b3JhbWFfX3dyYXAtLXNsaWRlLmZvdG9yYW1hX193cmFwLS10b2dnbGUtYXJyb3dzIC5mb3RvcmFtYV9fYXJyLS1wcmV2Om5vdCg6Zm9jdXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00OHB4LCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDhweCwgMCwgMClcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS1uby1jb250cm9scy5mb3RvcmFtYV9fd3JhcC0tc2xpZGUuZm90b3JhbWFfX3dyYXAtLXRvZ2dsZS1hcnJvd3MgLmZvdG9yYW1hX19hcnItLW5leHQ6bm90KDpmb2N1cykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDhweCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDhweCwgMCwgMClcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbiB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMnB4LCAtMzJweCwgMCkhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMycHgsIC0zMnB4LCAwKSFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX2Fyci0tcHJldiB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNDhweCwgMCwgMCkhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00OHB4LCAwLCAwKSFpbXBvcnRhbnRcbn1cblxuLmZvdG9yYW1hX193cmFwLS1jc3MzLmZvdG9yYW1hX193cmFwLS12aWRlbyAuZm90b3JhbWFfX2Fyci0tbmV4dCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0OHB4LCAwLCAwKSFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDhweCwgMCwgMCkhaW1wb3J0YW50XG59XG5cbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX2Fycjpub3QoOmZvY3VzKSxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX2Z1bGxzY3JlZW4taWNvbjpub3QoOmZvY3VzKSxcbi5mb3RvcmFtYV9fd3JhcC0tY3NzMyAuZm90b3JhbWFfX3ZpZGVvLWNsb3NlOm5vdCg6Zm9jdXMpLFxuLmZvdG9yYW1hX193cmFwLS1jc3MzIC5mb3RvcmFtYV9fdmlkZW8tcGxheTpub3QoOmZvY3VzKSB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtLCBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IC4zc1xufVxuXG4uZm90b3JhbWFfX25hdjphZnRlcixcbi5mb3RvcmFtYV9fbmF2OmJlZm9yZSxcbi5mb3RvcmFtYV9fc3RhZ2U6YWZ0ZXIsXG4uZm90b3JhbWFfX3N0YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDEwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxcHggMTAwJSwgNXB4IDEwMCVcbn1cblxuLmZvdG9yYW1hX19uYXY6YmVmb3JlLFxuLmZvdG9yYW1hX19zdGFnZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgLjIpIDI1JSwgcmdiYSgwLCAwLCAwLCAuMykgNzUlLCB0cmFuc3BhcmVudCksIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDAgNTAlLCByZ2JhKDAsIDAsIDAsIC40KSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDAgMDtcbiAgbGVmdDogLTEwcHhcbn1cblxuLmZvdG9yYW1hX19uYXYuZm90b3JhbWFfX3NoYWRvd3MtLWxlZnQ6YmVmb3JlLFxuLmZvdG9yYW1hX19zdGFnZS5mb3RvcmFtYV9fc2hhZG93cy0tbGVmdDpiZWZvcmUge1xuICBsZWZ0OiAwXG59XG5cbi5mb3RvcmFtYV9fbmF2OmFmdGVyLFxuLmZvdG9yYW1hX19zdGFnZTphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAuMikgMjUlLCByZ2JhKDAsIDAsIDAsIC4zKSA3NSUsIHRyYW5zcGFyZW50KSwgcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgMTAwJSA1MCUsIHJnYmEoMCwgMCwgMCwgLjQpLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMCwgMTAwJSAwO1xuICByaWdodDogLTEwcHhcbn1cblxuLmZvdG9yYW1hX19uYXYuZm90b3JhbWFfX3NoYWRvd3MtLXJpZ2h0OmFmdGVyLFxuLmZvdG9yYW1hX19zdGFnZS5mb3RvcmFtYV9fc2hhZG93cy0tcmlnaHQ6YWZ0ZXIge1xuICByaWdodDogMFxufVxuXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19uYXY6YWZ0ZXIsXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19uYXY6YmVmb3JlLFxuLmZvdG9yYW1hLS1mdWxsc2NyZWVuIC5mb3RvcmFtYV9fc3RhZ2U6YWZ0ZXIsXG4uZm90b3JhbWEtLWZ1bGxzY3JlZW4gLmZvdG9yYW1hX19zdGFnZTpiZWZvcmUsXG4uZm90b3JhbWFfX3dyYXAtLWZhZGUgLmZvdG9yYW1hX19zdGFnZTphZnRlcixcbi5mb3RvcmFtYV9fd3JhcC0tZmFkZSAuZm90b3JhbWFfX3N0YWdlOmJlZm9yZSxcbi5mb3RvcmFtYV9fd3JhcC0tbm8tc2hhZG93cyAuZm90b3JhbWFfX25hdjphZnRlcixcbi5mb3RvcmFtYV9fd3JhcC0tbm8tc2hhZG93cyAuZm90b3JhbWFfX25hdjpiZWZvcmUsXG4uZm90b3JhbWFfX3dyYXAtLW5vLXNoYWRvd3MgLmZvdG9yYW1hX19zdGFnZTphZnRlcixcbi5mb3RvcmFtYV9fd3JhcC0tbm8tc2hhZG93cyAuZm90b3JhbWFfX3N0YWdlOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmVcbn0iLCIucGFnZS13cmFwcGVyIHtcbiAgcGFkZGluZzpyZW0tY2FsYygwIDAgMjAwIDApO1xuICBiYWNrZ3JvdW5kOiNmZmY7XG59IiwiLnBhZ2Utd3JhcHBlciB7XG4gIC5pbnRybyB7XG4gICAgaGVpZ2h0OnJlbS1jYWxjKDQwMCk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTpyZW0tY2FsYyg4MCk7XG4gICAgei1pbmRleDoyO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDonJztcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgdG9wOjA7XG4gICAgICBsZWZ0OjA7XG4gICAgICByaWdodDowO1xuICAgICAgYm90dG9tOjA7XG4gICAgICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4zNSk7XG4gICAgICB6LWluZGV4OjM7XG4gICAgfVxuICAgIC5pbnRyby1kZXRhaWxzIHtcbiAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgdG9wOjUwJTtcbiAgICAgIGxlZnQ6NTAlO1xuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgei1pbmRleDo0O1xuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICBoMSB7XG4gICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzNik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYyg0MCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoNTApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwIHtcbiAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJvb2soKTtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIwKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuc2luZ2xlLXJvb20td3JhcHBlcixcbi5tcGhiX3NjX3NlYXJjaF9yZXN1bHRzLXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kOiNmZmY7XG4gIFxuICAubXBoYi1yb29tLXR5cGUtdGl0bGUge1xuICAgIGNvbG9yOiAjNTJCOTY3O1xuICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjYpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNSk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAubXBoYi1zaW5nbGUtcm9vbS10eXBlLXBvc3QtdGh1bWJuYWlsIHtcbiAgICBhIHtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6cmVtLWNhbGMoNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5tcGhiLXNpbmdsZS1yb29tLXR5cGUtZ2FsbGVyeS13cmFwcGVyIHtcbiAgICAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAyNSU7XG4gICAgICBpbWcge1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgICBtYXJnaW46cmVtLWNhbGMoMTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOnJlbS1jYWxjKDUpO1xuICAgICAgfVxuICAgICAgLmdhbGxlcnktY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAucm9vbS1kZXRhaWxzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICBwIHtcbiAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICBmb250LXNpemU6cmVtLWNhbGMoMTgpO1xuICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuICAgICAgY29sb3I6IzMzMztcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubXBoYi1yZWd1bGFyLXByaWNlIHtcbiAgICBzdHJvbmcge1xuXG4gICAgfVxuICAgIC5tcGhiLXByaWNlIHtcbiAgICAgIC5tcGhiLWN1cnJlbmN5IHtcblxuICAgICAgfVxuICAgIH1cbiAgICAubXBoYi1wcmljZS1wZXJpb2Qge1xuXG4gICAgfVxuICB9XG4gIC5tcGhiLWRldGFpbHMtdGl0bGUsXG4gIC5tcGhiLXJvb20tdHlwZS1kZXRhaWxzLXRpdGxlIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbiAgLm1waGItc2luZ2xlLXJvb20tdHlwZS1hdHRyaWJ1dGVzLFxuICAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIHtcbiAgICBsaXN0LXN0eWxlOm5vbmU7XG4gICAgbWFyZ2luOnJlbS1jYWxjKDAgMCAzMCAwKTtcbiAgICBcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICM1MkI5Njc7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsaSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiNjY2M7XG4gICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxOCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6cmVtLWNhbGMoNik7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICB0b3A6cmVtLWNhbGMoMik7XG4gICAgICB9XG4gICAgfVxuICAgIC5tcGhiLXJvb20tdHlwZS1hZHVsdHMtY2FwYWNpdHkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWExZFwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICB9XG4gICAgfVxuICAgIC5tcGhiLXJvb20tdHlwZS1mYWNpbGl0aWVzIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGVhMWNcIjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgfVxuICAgIH1cbiAgICAubXBoYi1yb29tLXR5cGUtdmlldyB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFlXCI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgIH1cbiAgICB9XG4gICAgLm1waGItcm9vbS10eXBlLXNpemUge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWExZlwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICB9XG4gICAgfVxuICAgIC5tcGhiLXJvb20tdHlwZS1iZWQtdHlwZSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFiXCI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgIH1cbiAgICB9XG4gICAgLm1waGItcm9vbS10eXBlLWNhdGVnb3JpZXMge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWEyMFwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICB9XG4gICAgfVxuICAgIC5tcGhiLWF0dHJpYnV0ZS10aXRsZSB7XG4gICAgICBjb2xvcjojNjY2O1xuICAgICAgQGluY2x1ZGUgZ290aGFtLWJvb2soKTtcbiAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxOCk7XG4gICAgICB3aWR0aDpyZW0tY2FsYygxMjApO1xuICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIC5tcGhiLWF0dHJpYnV0ZS12YWx1ZSB7XG5cbiAgICB9XG4gIH1cbiAgLm1waGItY2FsZW5kYXItdGl0bGUge1xuICAgIGNvbG9yOiAjNTJCOTY3O1xuICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICAubXBoYi1jYWxlbmRhciB7XG4gICAgbWFyZ2luOnJlbS1jYWxjKDAgMCAzMCAwKTtcbiAgfVxuICAubXBoYi1yZXNlcnZhdGlvbi1mb3JtLXRpdGxlIHtcbiAgICBjb2xvcjogIzUyQjk2NztcbiAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzApO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbiAgLm1waGItYm9va2luZy1mb3JtIHtcbiAgICAubXBoYi1jaGVjay1pbi1kYXRlLXdyYXBwZXIsXG4gICAgLm1waGItY2hlY2stb3V0LWRhdGUtd3JhcHBlcixcbiAgICAubXBoYi1hZHVsdHMtd3JhcHBlciB7XG4gICAgICBiciB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgIH1cbiAgICAgID4gbGFiZWwge1xuICAgICAgICBjb2xvcjogIzg4ODtcbiAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjUpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgIGFiYnIge1xuICAgICAgICAgIGNvbG9yOiAjQTczQjM4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gaW5wdXQsXG4gICAgICA+IHNlbGVjdCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUpO1xuICAgICAgICBib3JkZXI6IHJlbS1jYWxjKDEpIHNvbGlkICM3MDcwNzA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1waGItY2hlY2staW4tZGF0ZS13cmFwcGVyLFxuICAgIC5tcGhiLWNoZWNrLW91dC1kYXRlLXdyYXBwZXIge1xuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlxcZWExOFwiO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICB0b3A6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tcGhiLWFkdWx0cy13cmFwcGVyIHtcbiAgICAgID4gc2VsZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlxcZWEwYVwiO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICB0b3A6IHJlbS1jYWxjKDMyKTtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICBjb2xvcjogIzcwNzA3MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tcGhiLXJlc2VydmUtYnRuLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDpyZW0tY2FsYygxNSk7XG4gICAgICA+IGlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZDogIzUyQjk2NztcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoNSk7XG4gICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgIzUyQjk2NztcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMikgc29saWQgIzUyQjk2NztcbiAgICAgICAgICBjb2xvcjogIzUyQjk2NztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2luZ2xlLXJvb20td3JhcHBlciB7XG4gIHBhZGRpbmc6cmVtLWNhbGMoMTAwIDAgMjAwIDApO1xufSIsIi5tcGhiLXJvb20tdHlwZXMsXG4ubXBoYl9zY19zZWFyY2hfcmVzdWx0cy13cmFwcGVyIHtcbiAgICBcbiAgICAubXBoYl9zY19zZWFyY2hfcmVzdWx0cy1pbmZvIHtcbiAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgIGNvbG9yOiAjNTJCOTY3O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG4gICAgXG4gIC5tcGhiLXJvb20tdHlwZSB7XG4gICAgLm1waGItbG9vcC1yb29tLXRodW1ibmFpbCB7XG4gICAgICBhIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOnJlbS1jYWxjKDUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5tcGhiLXJvb20tdHlwZS10aXRsZSB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICM1MkI5Njc7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM1KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICBmb250LXNpemU6cmVtLWNhbGMoMTgpO1xuICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuICAgICAgY29sb3I6IzMzMztcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzApO1xuICAgICAgfVxuICAgICAgJi5tcGhiLXJlZ3VsYXItcHJpY2Uge1xuICAgICAgICBjb2xvcjojODg4O1xuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBcbiAgfVxuICBcbiAgICAgICAgLm1waGItdmlldy1kZXRhaWxzLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czpyZW0tY2FsYyg0KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIGhlaWdodDpyZW0tY2FsYyg0NCk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoNDQpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBjb2xvcjojNkRBMjM0O1xuICAgICAgICAgICAgICAgIGJvcmRlcjpyZW0tY2FsYygyKSBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMzApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB0cmFuc3BhcmVudCA1MCUsICM2REEyMzQgNTAlKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMCUgMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IGJvdHRvbTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOmJhY2tncm91bmQtcG9zaXRpb24gMC42cyBlYXNlLCBjb2xvciAgMC41cyBlYXNlO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDphdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246bGVmdCBib3R0b207XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IzZEQTIzNDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbn0iLCIubGF0ZXN0LWFjY29tbW9kYXRpb25zIHtcbiAgcGFkZGluZzpyZW0tY2FsYyg2MCAxMCk7XG4gIGJhY2tncm91bmQ6I2ZmZiB1cmwoJy4uL2ltZy9sZWFmLXBhdHRlcm4ucG5nJyk7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmc6cmVtLWNhbGMoMTgwIDAgMTgwIDApO1xuICB9XG4gIC5yb3cge1xuICAgIG1heC13aWR0aDpyZW0tY2FsYygxMjAwKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjowIGF1dG87XG4gICAgLmludHJvLWRldGFpbHMge1xuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAuZnVsbC1sb2dvIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTpyZW0tY2FsYyg2MCk7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjA7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMTgwKTtcbiAgICAgICAgICB3aWR0aDphdXRvO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGhlaWdodDpyZW0tY2FsYygyNTApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaDEge1xuICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDI0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzYpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiM2REEyMzQ7XG4gICAgICAgIG1hcmdpbjpyZW0tY2FsYygyMCAwKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYyg0MCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoNTApO1xuICAgICAgICAgIG1hcmdpbjpyZW0tY2FsYyg0MCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcCB7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxOCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDI4KTtcbiAgICAgICAgY29sb3I6IzAwMUYwMDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygyNCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5yb29tcyB7XG4gICAgICBtYXJnaW4tdG9wOnJlbS1jYWxjKDQwKTtcbiAgICAgIC5tcGhiX3NjX3Jvb21zLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OmdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgICAgIGdyaWQtZ2FwOnJlbS1jYWxjKDMwKTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgICB9XG4gICAgICAgIC5tcGhiLXJvb20tdHlwZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDojZmZmO1xuICAgICAgICAgIG1hcmdpbi10b3A6MDtcbiAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOnJlbS1jYWxjKDAgMCA1IDUpO1xuICAgICAgICAgIGJveC1zaGFkb3c6MCByZW0tY2FsYyg0KSByZW0tY2FsYygzMikgMCByZ2JhKDAsMCwwLDAuMTUpO1xuICAgICAgICAgIC5tcGhiLWxvb3Atcm9vbS10aHVtYm5haWwge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czpyZW0tY2FsYyg1IDUgMCAwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAubXBoYi1yb29tLXR5cGUtdGl0bGUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6cmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygyMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHAge1xuICAgICAgICAgICAgcGFkZGluZzpyZW0tY2FsYygwIDIwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaDMge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICAubXBoYi1sb29wLXJvb20tdHlwZS1hdHRyaWJ1dGVzIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjpyZW0tY2FsYygwIDAgMzAgMCk7XG4gICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDAgMjApO1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IzUyQjk2NztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6cmVtLWNhbGMoNik7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOnJlbS1jYWxjKDIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubXBoYi1yb29tLXR5cGUtYWR1bHRzLWNhcGFjaXR5IHtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFkXCI7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubXBoYi1yb29tLXR5cGUtZmFjaWxpdGllcyB7XG4gICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZWExY1wiO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1waGItcm9vbS10eXBlLXZpZXcge1xuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGVhMWVcIjtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tcGhiLXJvb20tdHlwZS1zaXplIHtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTFmXCI7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubXBoYi1yb29tLXR5cGUtYmVkLXR5cGUge1xuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcXGVhMWJcIjtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tcGhiLXJvb20tdHlwZS1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxlYTIwXCI7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdzcHMnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubXBoYi1hdHRyaWJ1dGUtdGl0bGUge1xuICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubXBoYi1hdHRyaWJ1dGUtdmFsdWUge1xuICAgICAgICAgICAgICBjb2xvcjojNzc3O1xuICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjojMzMzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbn1cbiIsIi50ZXN0aW1vbmlhbHMtYmxvY2sge1xuICBwYWRkaW5nOnJlbS1jYWxjKDUwIDEwKTtcbiAgYmFja2dyb3VuZDojNTJCOTY3O1xuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmc6cmVtLWNhbGMoMTIwIDAgMTIwIDApO1xuICB9XG4gIC5yb3cge1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAudGVzdGltb25pYWxzIHtcbiAgICAgIC50ZXN0aW1vbmlhbCB7XG4gICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAudGVzdGltb25pYWwtdGV4dCB7XG4gICAgICAgICAgY29sb3I6I2ZmZjtcbiAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxOCk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjYpO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoMjApO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygyNCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzNCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOnJlbS1jYWxjKDYwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNsaWVudC1uYW1lIHtcbiAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNik7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjQpO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMzApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stZG90cyB7XG5cbiAgICAgIGJvdHRvbTpyZW0tY2FsYygtMzUpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stcHJldixcbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IHJlbS1jYWxjKDI4KTtcbiAgICAgIHdpZHRoOiByZW0tY2FsYygyOCk7XG4gICAgICBib3JkZXItcmFkaXVzOjEwMCU7XG4gICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjgpO1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzMCk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG5cbiAgICB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICBsZWZ0OiByZW0tY2FsYygxNSk7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygtMjApO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygtNDApO1xuICAgICAgfVxuICAgICAgXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlYTEyXCI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnc3BzJztcbiAgICAgICAgY29sb3I6I2ZmZjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICByaWdodDogcmVtLWNhbGMoMTUpO1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC0yMCk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHJpZ2h0OiByZW0tY2FsYygtNDApO1xuICAgICAgfVxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZWExMVwiO1xuICAgICAgICBmb250LWZhbWlseTogJ3Nwcyc7XG4gICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmxhdGVzdC1uZXdzIHtcbiAgcGFkZGluZzpyZW0tY2FsYygzMCAxMCAwIDEwKTtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6I2ZmZjtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgIHBhZGRpbmc6cmVtLWNhbGMoMTgwIDAgMTgwIDApO1xuICB9XG4gIC5yb3cge1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAuYmxvY2stdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICBoMSB7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzNik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IzZEQTIzNDtcbiAgICAgICAgbWFyZ2luOnJlbS1jYWxjKDIwIDApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDQwKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYyg1MCk7XG4gICAgICAgICAgbWFyZ2luOnJlbS1jYWxjKDQwIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5zaW5nbGUtcG9zdC1pdGVtIHtcbiAgICAgIGJhY2tncm91bmQ6I2Y5ZjlmOTtcbiAgICAgIHRyYW5zaXRpb246YWxsIDAuM3M7XG4gICAgICBtYXJnaW4tYm90dG9tOnJlbS1jYWxjKDMwKTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiM2REEyMzQ7XG4gICAgICAgIC5wb3N0LWRldGFpbHMge1xuICAgICAgICAgIGg1LFxuICAgICAgICAgIGgzLFxuICAgICAgICAgIHAsXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnBvc3QtdGh1bWJuYWlsIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMjc1KTtcbiAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgIG9iamVjdC1maXQ6Y292ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5wb3N0LWRldGFpbHMge1xuICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDMwIDIwKTtcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIGg1IHtcbiAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYmxhY2soKTtcbiAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDI0KTtcbiAgICAgICAgICBjb2xvcjojODg4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoMyB7XG4gICAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJsYWNrKCk7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIwKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzMCk7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygyMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzNCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IzAwMUYwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgQGluY2x1ZGUgZ290aGFtLWJvb2soKTtcbiAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDIwKTtcbiAgICAgICAgICBjb2xvcjojNjY2O1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygyOCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZ29vZ2xlLW1hcC1ibG9jayB7XG4gICNtYXAge1xuICAgIGhlaWdodDpyZW0tY2FsYyg0MDApO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBoZWlnaHQ6cmVtLWNhbGMoNTAwKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgaGVpZ2h0OjEwMHZoO1xuICAgIH1cbiAgfVxufSIsIi5jb250YWN0LWZvcm0tYmxvY2sge1xuICBiYWNrZ3JvdW5kOiNmZmY7XG4gIHBhZGRpbmc6cmVtLWNhbGMoMjAgMTApO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgei1pbmRleDoxO1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgcGFkZGluZzpyZW0tY2FsYygxMDAgMCAxNTAgMCk7XG4gIH1cbiAgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygxMjAwKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIC5mb3JtLWRldGFpbHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTpyZW0tY2FsYyg1MCk7XG4gICAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjQpO1xuICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzNik7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IzZEQTIzNDtcbiAgICAgICAgbWFyZ2luOnJlbS1jYWxjKDIwIDApO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDMwKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYyg0MCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTgpO1xuICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygyOCk7XG4gICAgICAgIGNvbG9yOiM3Nzc7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMjApO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDMwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbmJvZHkge1xuICAuY29udGFjdC1mb3JtLWJsb2NrLFxuICAuc2luZ2xlLXJvb20td3JhcHBlciB7XG4gICAgLnRoZS1mb3JtLFxuICAgIC5ib29raW5nLWZvcm0ge1xuICAgICAgLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyIHtcbiAgICAgICAgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlIHtcbiAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDI0KTtcbiAgICAgICAgICBjb2xvcjokYmxhY2s7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDMyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5nZm9ybV93cmFwcGVyIHtcbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgLnZhbGlkYXRpb25fZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyOm5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjQpO1xuICAgICAgICAgICAgY29sb3I6I0VFNkQ3NjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE2KTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAuZ2Zvcm1fYm9keSB7XG4gICAgICAgICAgICAuZ2Zvcm1fZmllbGRzIHtcbiAgICAgICAgICAgICAgLmdmaWVsZCB7XG4gICAgICAgICAgICAgICAgJi5nZmllbGRfZXJyb3Ige1xuICAgICAgICAgICAgICAgICAgYm9yZGVyOm5vbmU7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDowO1xuICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206MDtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcbiAgICAgICAgICAgICAgICAgIC5naW5wdXRfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJwaG9uZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiNFRTZENzY7XG4gICAgICAgICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZ2ZpZWxkX2xhYmVsIHtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNik7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygzMik7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBnb3RoYW0tYm9vaygpO1xuICAgICAgICAgICAgICAgICAgY29sb3I6IzAwMUYwMDtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE2KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjYpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLmdmaWVsZF9yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiNFRTZENzY7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5naW5wdXRfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cInBob25lXCJdLFxuICAgICAgICAgICAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuICAgICAgICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNDQpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOnJlbS1jYWxjKDMgNik7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjpyZW0tY2FsYygyKSBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOnJlbS1jYWxjKDMpO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93Om5vbmU7XG4gICAgICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjojNkRBMjM0O1xuICAgICAgICAgICAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcblxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmdmaWVsZF9kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgICAgY29sb3I6I0VFNkQ3NjtcbiAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOnJlbS1jYWxjKDE0KTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudmFsaWRhdGlvbl9tZXNzYWdlLFxuICAgICAgICAgICAgICAgIC5pbnN0cnVjdGlvbnMge1xuICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OnJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLmdmb3JtX2Zvb3RlciB7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6cmVtLWNhbGMoNCk7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoNDQpO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDpyZW0tY2FsYyg0NCk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ibGFjaygpO1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICAgICAgICAgIGNvbG9yOiM2REEyMzQ7XG4gICAgICAgICAgICAgIGJvcmRlcjpyZW0tY2FsYygyKSBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6cmVtLWNhbGMoMCAzMCk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB0cmFuc3BhcmVudCA1MCUsICM2REEyMzQgNTAlKTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzMDAlIDEwMCU7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tO1xuICAgICAgICAgICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXBvc2l0aW9uIDAuNnMgZWFzZSwgY29sb3IgIDAuNXMgZWFzZTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOmF1dG87XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IGJvdHRvbTtcbiAgICAgICAgICAgICAgICBjb2xvcjokd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiM2REEyMzQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5pbnN0YWdyYW0tZmVlZCB7XG4gIHBhZGRpbmc6cmVtLWNhbGMoMCAwIDEwMCk7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiNmZmY7XG5cbiAgLmluc3RhZ3JhbV9nYWxsZXJ5IHtcbiAgICBkaXNwbGF5OmdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBncmlkLWdhcDowO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIGltZyB7XG4gICAgICAgIHRyYW5zaXRpb246ZmlsdGVyIDAuM3M7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOyAvKiBTYWZhcmkgNi4wIC0gOS4wICovXG4gICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYudmlldy1tb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDojNTJCOTY3O1xuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGNvbG9yOiNmZmY7XG4gICAgICAgIHRyYW5zaXRpb246YWxsIDAuM3M7XG4gICAgICAgIC5pY29uLWNvbnRhaW5lciB7XG4gICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICAgICAgdG9wOjUwJTtcbiAgICAgICAgICBsZWZ0OjUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7XG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoODApO1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206cmVtLWNhbGMoMTApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdvdGhhbS1ib29rKCk7XG4gICAgICAgICAgICBmb250LXNpemU6cmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6cmVtLWNhbGMoMjQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiMzMzM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */
